Skip to content

MPEG sync layer functions

Dimitri Podborski edited this page Sep 17, 2020 · 1 revision

MP4NewSampleDescription

ISOErr MP4NewSampleDescription( ISOTrack theTrack,
            ISOHandle sampleDescriptionH,
            u32 dataReferenceIndex,
            u32 objectTypeIndication,
            u32 streamType,
            u32 decoderBufferSize,
            u32 maxBitrate,
            u32 avgBitrate,
            ISOHandle decoderSpecificInfoH );

This function can be used to create a basic sample description that can be used for calls to AddMediaSample. This will create the proper kind of sample entry atom for the track type, and a basic elementary stream descriptor that contains the information you provide in the following parameters:

sampleDescriptionH The handle that will contain the new sample description.

dataReferenceIndex The index of the data reference that describes the media samples. If you haven’t called ISOAddMediaDataReference this parameter should be set to 1. Otherwise set it to the proper reference index for these samples.

objectTypeIndication Set this properly according to the table in the Systems specification.

streamTypeIndication Set this properly according to the table in the Systems specification.

decoderBufferSize Set this to the size (in bytes) needed for the decoder input buffer for this stream.

maxBitrate Set this to the maximum number of bits per second needed to transmit this media media, defined according to the Systems specification.

avgBitrate Set this to the average bitrate for this media, defined according to the Systems specification.

decoderSpecificInfoH A handle that must contain the decoder specific info needed for a decoder for this media type. This must be a properly formed descriptor, including tag and length fields.

MP4NewSampleDescriptionWithOCRAssociation

ISOErr MP4NewSampleDescriptionWithOCRAssociation( 
ISOTrack theTrack,
ISOHandle sampleDescriptionH,
u32 dataReferenceIndex,
u32 objectTypeIndication,
u32 streamType,
u32 decoderBufferSize,
u32 maxBitrate,
u32 avgBitrate,
ISOHandle decoderSpecificInfoH,
u32 theOCRESID );

This function is a version of MP4NewSampleDescription that permits the caller to indicate an association of the sample description with a clock reference. Parameters are the same as MP4NewSampleDescription, with the addition of:

theOCRESID Set this to the ESID of the clock reference stream. A value of zero is permitted, and indicates that the stream has no explicit OCR association.

MP4SetSampleDescriptionPriority

ISOErr MP4SetSampleDescriptionPriority(MP4Handle sampleEntryH, u32 priority);

This function sets the MPEG-4 elementary stream priority of the associated stream (in the elementary stream descriptor).