1 /** 2 * Copyright (c) 2011, The University of Southampton and the individual contributors. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without modification, 6 * are permitted provided that the following conditions are met: 7 * 8 * * Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 * 11 * * Redistributions in binary form must reproduce the above copyright notice, 12 * this list of conditions and the following disclaimer in the documentation 13 * and/or other materials provided with the distribution. 14 * 15 * * Neither the name of the University of Southampton nor the names of its 16 * contributors may be used to endorse or promote products derived from this 17 * software without specific prior written permission. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 23 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 */ 30 /** 31 * 32 */ 33 package org.openimaj.video.processing.shotdetector; 34 35 import org.openimaj.image.Image; 36 import org.openimaj.video.timecode.VideoTimecode; 37 38 /** 39 * A class for encapsulating shot boundary information. 40 * 41 * @author David Dupplaw (dpd@ecs.soton.ac.uk) 42 * @param <T> The type of image 43 * 44 * @created 1 Jun 2011 45 */ 46 public class ShotBoundary<T extends Image<?,T>> 47 { 48 /** The timecode of the shot boundary */ 49 protected VideoTimecode timecode = null; 50 51 /** The keyframe of the boundary. May not be set */ 52 protected VideoKeyframe<T> keyframe = null; 53 54 /** 55 * Construct a shot boundary using the given video timecode. 56 * 57 * @param timecode The timecode 58 */ 59 public ShotBoundary( VideoTimecode timecode ) 60 { 61 this.timecode = timecode; 62 } 63 64 /** 65 * Get the timecode of this shot boundary. 66 * @return The timecode of this shot boundary; 67 */ 68 public VideoTimecode getTimecode() 69 { 70 return this.timecode; 71 } 72 73 /** 74 * {@inheritDoc} 75 * @see java.lang.Object#toString() 76 */ 77 @Override 78 public String toString() 79 { 80 return this.timecode.toString(); 81 } 82 83 /** 84 * @return the keyframe 85 */ 86 public VideoKeyframe<T> getKeyframe() 87 { 88 return keyframe; 89 } 90 91 /** 92 * @param keyframe the keyframe to set 93 */ 94 public void setKeyframe( VideoKeyframe<T> keyframe ) 95 { 96 this.keyframe = keyframe; 97 } 98 }