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 }