Copyright 2012-04-26 Werner Randelshofer

org.monte.media.quicktime
Class AbstractQuickTimeStream.Track

java.lang.Object
  extended by org.monte.media.quicktime.AbstractQuickTimeStream.Track
Direct Known Subclasses:
AbstractQuickTimeStream.AudioTrack, AbstractQuickTimeStream.VideoTrack
Enclosing class:
AbstractQuickTimeStream

protected abstract class AbstractQuickTimeStream.Track
extends java.lang.Object

Represents a track.


Field Summary
protected  java.util.ArrayList<AbstractQuickTimeStream.Chunk> chunks
          List of chunks.
protected  Codec codec
          The codec.
protected  AbstractQuickTimeStream.Edit[] editList
          The edit list of the track.
protected  Format format
          The format of the media in the track.
protected  double height
           
protected  Buffer inputBuffer
           
protected  Rational inputTime
          Start time of the first buffer that was added to the track.
protected  double[] matrix
          The transformation matrix of the track.
protected  java.lang.String mediaCompressionType
          The compression type of the media.
protected  java.lang.String mediaCompressorName
          The compressor name.
protected  long mediaDuration
          The duration of the media in this track in media time units.
protected  long mediaTimeScale
          The timeScale of the media in the track.
protected  FormatKeys.MediaType mediaType
          The media type of the track.
protected  Buffer outputBuffer
           
protected  long sampleCount
          The number of samples in this track.
protected  java.util.ArrayList<AbstractQuickTimeStream.SampleSizeGroup> sampleSizes
          List of SampleSize entries.
protected  int syncInterval
          Interval between sync samples (keyframes).
protected  java.util.ArrayList<java.lang.Long> syncSamples
          List of sync samples.
protected  java.util.ArrayList<AbstractQuickTimeStream.TimeToSampleGroup> timeToSamples
          List of TimeToSample entries.
protected  double width
           
protected  Rational writeTime
          Current write time.
 
Constructor Summary
AbstractQuickTimeStream.Track(FormatKeys.MediaType mediaType)
           
 
Method Summary
 void addChunk(AbstractQuickTimeStream.Chunk chunk, boolean isSyncSample)
           
 void addSample(AbstractQuickTimeStream.Sample sample, int sampleDescriptionId, boolean isSyncSample)
           
 long getSampleCount()
           
 long getTrackDuration(long movieTimeScale)
          Gets the track duration in the movie time scale.
 boolean isEmpty()
           
protected  void writeMediaInformationAtoms(AbstractQuickTimeStream.CompositeAtom mdiaAtom)
           
protected abstract  void writeMediaInformationHeaderAtom(AbstractQuickTimeStream.CompositeAtom minfAtom)
           
protected abstract  void writeSampleDescriptionAtom(AbstractQuickTimeStream.CompositeAtom stblAtom)
           
protected  void writeSampleTableAtoms(AbstractQuickTimeStream.CompositeAtom minfAtom)
           
protected  void writeTrackAtoms(int trackIndex, AbstractQuickTimeStream.CompositeAtom moovAtom, java.util.Date modificationTime)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mediaType

protected final FormatKeys.MediaType mediaType
The media type of the track.


format

protected Format format
The format of the media in the track.


mediaTimeScale

protected long mediaTimeScale
The timeScale of the media in the track. A time value that indicates the time scale for this media. That is, the number of time units that pass per second in its time coordinate system.


mediaCompressionType

protected java.lang.String mediaCompressionType
The compression type of the media.


mediaCompressorName

protected java.lang.String mediaCompressorName
The compressor name.


chunks

protected java.util.ArrayList<AbstractQuickTimeStream.Chunk> chunks
List of chunks.


timeToSamples

protected java.util.ArrayList<AbstractQuickTimeStream.TimeToSampleGroup> timeToSamples
List of TimeToSample entries.


sampleSizes

protected java.util.ArrayList<AbstractQuickTimeStream.SampleSizeGroup> sampleSizes
List of SampleSize entries.


syncSamples

protected java.util.ArrayList<java.lang.Long> syncSamples
List of sync samples. This list is null as long as all samples in this track are sync samples.


sampleCount

protected long sampleCount
The number of samples in this track.


mediaDuration

protected long mediaDuration
The duration of the media in this track in media time units.


editList

protected AbstractQuickTimeStream.Edit[] editList
The edit list of the track.


syncInterval

protected int syncInterval
Interval between sync samples (keyframes). 0 = automatic. 1 = write all samples as sync samples. n = sync every n-th sample.


codec

protected Codec codec
The codec.


outputBuffer

protected Buffer outputBuffer

inputBuffer

protected Buffer inputBuffer

inputTime

protected Rational inputTime
Start time of the first buffer that was added to the track.


writeTime

protected Rational writeTime
Current write time.


matrix

protected double[] matrix
The transformation matrix of the track.


width

protected double width

height

protected double height
Constructor Detail

AbstractQuickTimeStream.Track

public AbstractQuickTimeStream.Track(FormatKeys.MediaType mediaType)
Method Detail

addSample

public void addSample(AbstractQuickTimeStream.Sample sample,
                      int sampleDescriptionId,
                      boolean isSyncSample)

addChunk

public void addChunk(AbstractQuickTimeStream.Chunk chunk,
                     boolean isSyncSample)

isEmpty

public boolean isEmpty()

getSampleCount

public long getSampleCount()

getTrackDuration

public long getTrackDuration(long movieTimeScale)
Gets the track duration in the movie time scale.

Parameters:
movieTimeScale - The time scale of the movie.

writeTrackAtoms

protected void writeTrackAtoms(int trackIndex,
                               AbstractQuickTimeStream.CompositeAtom moovAtom,
                               java.util.Date modificationTime)
                        throws java.io.IOException
Throws:
java.io.IOException

writeMediaInformationAtoms

protected void writeMediaInformationAtoms(AbstractQuickTimeStream.CompositeAtom mdiaAtom)
                                   throws java.io.IOException
Throws:
java.io.IOException

writeMediaInformationHeaderAtom

protected abstract void writeMediaInformationHeaderAtom(AbstractQuickTimeStream.CompositeAtom minfAtom)
                                                 throws java.io.IOException
Throws:
java.io.IOException

writeSampleDescriptionAtom

protected abstract void writeSampleDescriptionAtom(AbstractQuickTimeStream.CompositeAtom stblAtom)
                                            throws java.io.IOException
Throws:
java.io.IOException

writeSampleTableAtoms

protected void writeSampleTableAtoms(AbstractQuickTimeStream.CompositeAtom minfAtom)
                              throws java.io.IOException
Throws:
java.io.IOException

Copyright 2012-04-26 Werner Randelshofer