1 package com.hammurapi.jcapture; 2 3 import java.awt.Dimension; 4 import java.io.Closeable; 5 import java.io.IOException; 6 import java.text.MessageFormat; 7 import java.util.List; 8 9 public class Movie implements Closeable { 10 11 private float framesPerSecond; 12 private List<VideoEncoder.Fragment> fragments; 13 private Dimension frameDimension; 14 private Closeable imagesFileCloseable; 15 Movie(Dimension frameDimension, float framesPerSecond, List<VideoEncoder.Fragment> fragments, Closeable imagesFileCloseable)16 public Movie(Dimension frameDimension, float framesPerSecond, List<VideoEncoder.Fragment> fragments, Closeable imagesFileCloseable) { 17 super(); 18 this.frameDimension = frameDimension; 19 this.framesPerSecond = framesPerSecond; 20 this.fragments = fragments; 21 this.imagesFileCloseable = imagesFileCloseable; 22 } 23 getFragments()24 public List<VideoEncoder.Fragment> getFragments() { 25 return fragments; 26 } 27 getFramesPerSecond()28 public float getFramesPerSecond() { 29 return framesPerSecond; 30 } 31 getFrameDimension()32 public Dimension getFrameDimension() { 33 return frameDimension; 34 } 35 36 @Override toString()37 public String toString() { 38 int frames = 0; 39 for (VideoEncoder.Fragment f: fragments) { 40 frames+=f.getFrames().size(); 41 } 42 43 long length = (long) (frames/framesPerSecond); 44 45 return MessageFormat.format("{0,number,00}:{1,number,00}:{2,number,00}, {3} frames", length/3600, (length/60) % 60, length % 60, frames); 46 } 47 48 @Override close()49 public void close() throws IOException { 50 if (imagesFileCloseable!=null) { 51 imagesFileCloseable.close(); 52 } 53 } 54 55 }