next up previous contents index
Next: Intra-Application Data Flow Up: Local Data Flow Previous: Local Data Flow

Media Elements

  Media element objects, which are communicated among Producer, Consumer, StreamExporter, Stream, and the various networking objects, normally belong to the Chunk class. Chunk objects consist of a byte array buffer, which stores the media data, as well as offset and length member variables, which indicate the position and length of the header area and the payload data area of the buffer. In addition, a Chunk carries a timestamp field, which denotes the instant of the creation of the Chunk. The structure of a Chunk's buffer is shown in Figure gif.

 
Figure:  The structure of the byte array buffer contained in a chunk object.

 

For the purpose of intra- and inter-stream synchronisation, TimedObjects are communicated by Stream objects to Consumer objects. TimedObjects carry a reference to a payload object of any type, for example a Chunk object or any other representation of a media element, but additionally offer a sync() method. This method blocks its caller (normally a Consumer presenting the media element) until a certain ``wakeup'' point of time is reached. The wakeup instant must be previously stored in the TimedObject and is computed by mapping the timestamp of the corresponding Chunk to a local playout time.



tspeuker@cip.informatik.uni-erlangen.de