10#ifndef INCLUDED_MP4MOVIE_H
11#define INCLUDED_MP4MOVIE_H
115 MP4IPMP_NoControlPoint = 0x00,
116 MP4IPMP_DB_Decoder_ControlPoint = 0x01,
117 MP4IPMP_Decoder_CB_ControlPoint = 0x02,
118 MP4IPMP_CB_Compositor_ControlPoint = 0x03,
119 MP4IPMP_BIFSTree_ControlPoint = 0x04
157#define GETMOOV(arg) \
158 MP4PrivateMovieRecordPtr moov; \
161 if(arg == NULL) BAILWITHERROR(MP4BadParamErr) \
162 moov = (MP4PrivateMovieRecordPtr)arg
167#define GETMOVIEATOM(arg) \
168 MP4MovieAtomPtr movieAtom; \
170 movieAtom = (MP4MovieAtomPtr)moov->moovAtomPtr
175#define GETMOVIEHEADERATOM(arg) \
176 MP4MovieHeaderAtomPtr movieHeaderAtom; \
178 movieHeaderAtom = (MP4MovieHeaderAtomPtr)movieAtom->mvhd
183#define GETIODATOM(arg) \
184 MP4ObjectDescriptorAtomPtr iodAtom; \
186 iodAtom = (MP4ObjectDescriptorAtomPtr)movieAtom->iods;
413 u8 *outVisual, u8 *outGraphics);
481 u8 audio_profileAndLevel, u8 visual_profileAndLevel, u8 graphics_profileAndLevel);
628 u32 *outReferenceIndex);
644 u32 *outReferenceIndex);
676 u32 **sample_delta, u32 **subsample_count,
677 u32 ***subsample_size_array,
678 u32 ***subsample_priority_array,
679 u32 ***subsample_discardable_array);
714 MP4Handle codec_specific_parameters_array);
905 u64 segmentDuration, s32 mediaRate);
1169 u32 **outSampleNubers, u32 *outSampleCnt);
1235 u32 *outSize, u64 *outDTS, s32 *outCTSOffset, u64 *outDuration,
1236 u32 *outSampleFlags, u32 *outSampleDescIndex, u8 *outPad);
1244 u64 *outDTS, s32 *outCTSOffset, u64 *outDuration, u32 *outSampleFlags,
1245 u32 *outSampleDescIndex);
1259 u32 *outDuration, u32 *outSampleFlags, u32 *outSampleDescIndex,
1332 MP4Handle referenceURN, u32 *outReferenceType,
1333 u32 *outReferenceAttributes);
1406 u32 searchDirection, u64 *outInterestingTime,
1407 u64 *outInterestingDuration);
1442 u64 *outDecodingTime, u64 *outCompositionTime, u64 *outDuration,
1443 MP4Handle outSampleDescription, u32 *outSampleDescriptionIndex,
1444 u32 *outSampleFlags);
1458 u64 desiredDecodingTime, u64 *outDecodingTime, u64 *outCompositionTime,
1459 u64 *outDuration,
MP4Handle outSampleDescription,
1460 u32 *outSampleDescriptionIndex, u32 *outSampleFlags, u8 *outPad);
1482 u32 *outDataReferenceIndex);
1514 u64 *outSampleDTS, s32 *outSampleDuration);
1527 s32 *outSampleDuration);
1549 MP4GetElementaryStreamPacket(
MP4Media theMedia,
MP4Handle outSample, u32 *outSize,
1550 u32 sequenceNumber, u64 desiredTime, u64 *outActualTime,
1577 u32 *outStreamType, u32 *outBufferSize, u32 *outUpstream,
1578 u32 *outMaxBitrate, u32 *outAvgBitrate,
MP4Handle specificInfoH);
1595 u32 *outStreamType, u32 *outBufferSize,
MP4Handle specificInfoH);
1626 u32 objectTypeIndication, u32 streamType, u32 decoderBufferSize,
1627 u32 maxBitrate, u32 avgBitrate,
MP4Handle decoderSpecificInfoH);
1640 u32 dataReferenceIndex, u32 objectTypeIndication,
1641 u32 streamType, u32 decoderBufferSize, u32 maxBitrate,
1642 u32 avgBitrate,
MP4Handle decoderSpecificInfoH,
1669 u32 dataReferenceIndex, u32 sampleEntryType,
1700 u32 dataReferenceIndex,
char *content_encoding,
1701 char *xml_namespace,
char *schema_location);
1713 u32 dataReferenceIndex,
char *content_encoding,
1772 u32 *outSampleFlags, s32 *outCTS, s32 *outDTS);
1782 u32 *outSize, u32 *outSampleFlags, s32 *outCTS,
1783 s32 *outDTS, u32 *outDuration);
1794 u32 *outSize, u32 *outSampleFlags, s32 *outCTS,
1795 s32 *outDTS, u8 *outPad);
1841 u32 aux_info_type, u32 aux_info_type_parameter,
1842 u8 default_sample_info_size);
1852 u32 aux_info_type, u32 aux_info_type_parameter,
MP4Handle dataH,
1867 MP4Handle isUsingAuxInfoPropertiesFlags,
1874 u32 aux_info_type, u32 aux_info_type_parameter,
1875 u32 sampleNr,
MP4Handle outDataH, u32 *outSize);
1985 u32 useAccessUnitStartFlag;
1986 u32 useAccessUnitEndFlag;
1987 u32 useRandomAccessPointFlag;
1988 u32 useRandomAccessUnitsOnlyFlag;
1990 u32 useTimestampsFlag;
1993 u32 timestampResolution;
1995 u32 timestampLength;
1998 u32 instantBitrateLength;
1999 u32 degradationPriorityLength;
2001 u32 packetSeqNumLength;
2033#ifndef INCLUDED_ISOMOVIE_H
2039 MP4NewMovieExt(
MP4Movie *outMovie, u32 initialODID, u8 OD_profileAndLevel,
2040 u8 scene_profileAndLevel, u8 audio_profileAndLevel, u8 visual_profileAndLevel,
2041 u8 graphics_profileAndLevel,
char *url, u8 IsExchangeFile);
2168 s32 compositionToDTSShift,
2169 s32 leastDecodeToDisplayDelta,
2170 s32 greatestDecodeToDisplayDelta,
2171 s32 compositionStartTime, s32 compositionEndTime);
2226 u64 ipmpToolIdUpperPart,
MP4Handle ipmpInitializeH);
2292 u8 key_indicator_length, u8 IV_length,
char *kms_URL,
2301 u8 *key_indicator_length, u8 *IV_length,
char **kms_URL,
2313 u8 key_indicator_length, u8 IV_length,
char *kms_URL, u64 salt,
2323 u8 *key_indicator_length, u8 *IV_length,
char **kms_URL, u64 *salt,
2326#define ISMA_selective_encrypt 0x80
A wrapper for the code defined in the MPEG-4 library.
Mac OS X Macros for the ISO file format library.
MP4Err MP4AddToolToIPMPToolList(MP4Handle ipmpToolListDescrH, MP4Handle ipmpToolH)
Description TBD.
MP4Err MP4AddDescToMovieIOD(MP4Movie theMovie, MP4Handle descriptorH)
Adds a descriptor to the movie IOD.
MP4Err MP4NewIPMPToolListDescriptor(MP4Handle ipmpToolListDescrH)
Creates a new IPMPToolListDescriptor.
MP4Err MP4AddDescToSampleDescription(MP4Handle sampleEntryH, MP4Handle descriptorH)
Can be used to add an IPMP Descriptor Pointer into an existing sampleDescription.
MP4Err MP4NewIPMPInitialize(MP4Handle ipmpInitializeH, u8 controlPoint, u8 sequenceCode)
Creates a new IPMPInitialize structure.
MP4Err MP4NewIPMPToolDescriptor(MP4Handle ipmpToolDescH, u16 ipmpToolDescrId, u64 ipmpToolIdLowerPart, u64 ipmpToolIdUpperPart, MP4Handle ipmpInitializeH)
Creates a new IPMP Tool Descriptor.
MP4Err MP4NewIPMPToolDescriptorUpdate(MP4Handle ipmpToolDescrUpdateH)
Creates a new IPMPToolDescriptorUpdate command.
MP4Err MP4AddIPMPToolDescriptorToUpdate(MP4Handle ipmpToolDescrUpdateH, MP4Handle ipmpToolDescrH)
Adds an IPMP Tool Descriptor to IPMPToolDescriptorUpdate command.
MP4Err MP4NewIPMPTool(MP4Handle ipmpToolH, u64 ipmpToolIdLowerPart, u64 ipmpToolIdUpperPart, MP4Handle altGroupInfoH, MP4Handle parametricInfoH)
Creates a new IPMPTool structure.
MP4Err MP4AddIPMPDataToIPMPToolDescriptor(MP4Handle ipmpToolDescrH, MP4Handle ipmpDataH)
Adds IPMP data to an IPMP Tool Descriptor.
MP4Err MP4AddIPMPDataToIPMPInitialize(MP4Handle ipmpInitializeH, MP4Handle ipmpDataH)
Adds IPMP data to the IPMPInitialize structure.
MP4Err MP4NewIPMPDescriptorPointer(MP4Handle ipmpDescPtrH, u8 ipmpDescriptorId, u16 ipmpToolDescrId)
Creates a new IPMPDescriptorPointer.
MP4Err MP4AddUrlToIPMPTool(MP4Handle ipmpToolH, MP4Handle urlH)
Add a URL from which one or more tools specified in IPMPTool can be downloaded.
MP4Err ISMATransformSampleEntrySalt(u32 newTrackFlags, MP4Handle insampleEntryH, u8 selective_encryption, u8 key_indicator_length, u8 IV_length, char *kms_URL, u64 salt, MP4Handle outsampleEntryH)
‘Transforms’ a sample entry into the format expected by ISMA for a sample entry for protected (encryp...
MP4Err ISMATransformSampleEntry(u32 newTrackFlags, MP4Handle insampleEntryH, u8 selective_encryption, u8 key_indicator_length, u8 IV_length, char *kms_URL, MP4Handle outsampleEntryH)
‘Transforms’ a sample entry into the format expected by ISMA for a sample entry for protected (encryp...
MP4Err ISMAUnTransformSampleEntrySalt(MP4Handle insampleEntryH, u8 *selective_encryption, u8 *key_indicator_length, u8 *IV_length, char **kms_URL, u64 *salt, MP4Handle outsampleEntryH)
‘Untransforms’ a sample entry, from the encrypted form to the standard form.
MP4Err ISMAUnTransformSampleEntry(MP4Handle insampleEntryH, u8 *selective_encryption, u8 *key_indicator_length, u8 *IV_length, char **kms_URL, MP4Handle outsampleEntryH)
‘Untransforms’ a sample entry, from the encrypted form to the standard form.
MP4Err ISONewMetaMovie(MP4Movie *outMovie, u32 handlertype, u32 brand, u32 minorversion)
Like NewMPEG21() but allows you to specify the meta handlertype, and the major brand and minor versio...
MP4Err MP4GetMovieProfilesAndLevels(MP4Movie theMovie, u8 *outOD, u8 *outScene, u8 *outAudio, u8 *outVisual, u8 *outGraphics)
Use this to obtain the profiles and levels from a Movie's initial object descriptor.
MP4Err MP4SetMovieIODInlineProfileFlag(MP4Movie theMovie, u8 theFlag)
Indicates that the given track is to be considered as the initial BIFS track.
MP4Err MP4GetMovieInitialObjectDescriptor(MP4Movie theMovie, MP4Handle outDescriptorH)
Retrieves the initial object descriptor from a Movie and places it into a Handle.
MP4Err ISOSetCompositonToDecodePropertiesForFragments(MP4Movie theMovie, u32 trackID, s32 compositionToDTSShift, s32 leastDecodeToDisplayDelta, s32 greatestDecodeToDisplayDelta, s32 compositionStartTime, s32 compositionEndTime)
Sets the compositon to decode parameters for a specific track.
MP4Err MP4OpenMovieFile(MP4Movie *theMovie, const char *movieURL, int openMovieFlags)
Opens a movie file and creates a Movie in memory from this file.
MP4Err MP4PutMovieIntoHandle(MP4Movie theMovie, MP4Handle movieH)
Places the movie and its media samples into a handle.
MP4Err MP4GetMovieInitialObjectDescriptorUsingSLConfig(MP4Movie theMovie, MP4SLConfig slconfig, MP4Handle outDescriptorH)
Retrieves the initial object descriptor from a Movie.
MP4Err ISOAddDelayToTrackFragmentDecodeTime(MP4Movie theMovie, u32 delay)
Add delay to track fragment decode time.
MP4Err MP4GetMovieDuration(MP4Movie theMovie, u64 *outDuration)
This calculates and returns the movie duration as recorded in the movie header.
MP4Err ISOStartMovieFragment(MP4Movie theMovie)
This starts a new movie fragment.
MP4Err MP4GetMovieTimeScale(MP4Movie theMovie, u32 *outTimeScale)
Use this to obtain the time scale of a Movie.
MP4Err MP4GetMovieIODInlineProfileFlag(MP4Movie theMovie, u8 *outFlag)
Queries the setting of includeInlineProfileLevelFlag from the movie's initial object descriptor.
MP4Err MP4NewMovieFromHandle(MP4Movie *outMovie, MP4Handle movieH, u32 newMovieFlags)
Parses a movie ‘file’ in the handle and creates a Movie in memory from this file.
MP4Err MP4AddAtomToMovie(MP4Movie theMovie, MP4GenericAtom the_atom)
Adds the given atom to the movie.
MP4Err MP4DisposeMovie(MP4Movie theMovie)
This function releases any resources owned by the Movie.
MP4Err NewMPEG21(MP4Movie *outMovie)
Creates a new empty MPEG-21 ‘movie’ in memory.
MP4Err MP4WriteMovieToFile(MP4Movie theMovie, const char *filename)
See ISOWriteMovieToFile()
MP4Err MP4GetMovieTrack(MP4Movie theMovie, u32 trackID, MP4Track *outTrack)
Use this to obtain a track given its track ID.
MP4Err MP4SetMovieTimeScale(MP4Movie theMovie, u32 timeScale)
Sets the Movie’s time scale.
MP4Err MP4NewMovie(MP4Movie *outMovie, u32 initialODID, u8 OD_profileAndLevel, u8 scene_profileAndLevel, u8 audio_profileAndLevel, u8 visual_profileAndLevel, u8 graphics_profileAndLevel)
Creates a new empty Movie in memory.
MP4Err MP4NewSLConfig(MP4SLConfigSettingsPtr settings, MP4SLConfig *outSLConfig)
Create new SLConfig object.
struct MP4SLConfigSettingsRecord MP4SLConfigSettings
SL configuration settings record.
MP4Err MP4SetSLConfigSettings(MP4SLConfig config, MP4SLConfigSettingsPtr settings)
Set settings of SLConfig object.
MP4Err MP4GetSLConfigSettings(MP4SLConfig config, MP4SLConfigSettingsPtr outSettings)
Get settings from SLConfig object.
MP4Err MP4SetupSampleAuxiliaryInformation(MP4Media theMedia, u8 isUsingAuxInfoPropertiesFlag, u32 aux_info_type, u32 aux_info_type_parameter, u8 default_sample_info_size)
Setup and initialize sample auxiliary information for a track.
MP4Err MP4AddSampleAuxiliaryInformation(MP4Media theMedia, u8 isUsingAuxInfoPropertiesFlag, u32 aux_info_type, u32 aux_info_type_parameter, MP4Handle dataH, u32 sampleCount, MP4Handle sizesH)
Add sample auxiliary information data for a range of samples.
MP4Err MP4GetSampleAuxiliaryInformationForSample(MP4Media theMedia, u8 isUsingAuxInfoPropertiesFlag, u32 aux_info_type, u32 aux_info_type_parameter, u32 sampleNr, MP4Handle outDataH, u32 *outSize)
Get the sample auxiliary information data for a specific sample and type.
MP4Err MP4GetSampleAuxiliaryInformation(MP4Media theMedia, u32 *outCount, MP4Handle isUsingAuxInfoPropertiesFlags, MP4Handle aux_info_types, MP4Handle aux_info_type_parameters)
Get information about all sample auxiliary information for a track.
MP4Err ISOGetSampleDescriptionType(MP4Handle sampleEntryH, u32 *type)
This function returns the type of a sample description.
MP4Err ISONewXMLMetaDataSampleDescription(MP4Track theTrack, MP4Handle sampleDescriptionH, u32 dataReferenceIndex, char *content_encoding, char *xml_namespace, char *schema_location)
Make a sample description for a timed XML meta-data track.
MP4Err ISOGetAtomFromSampleDescription(MP4Handle sampleEntryH, u32 atomType, MP4GenericAtom *outAtom)
Find the atom of the given type and return it.
MP4Err ISONewGeneralSampleDescription(MP4Track theTrack, MP4Handle sampleDescriptionH, u32 dataReferenceIndex, u32 sampleEntryType, MP4GenericAtom extensionAtom)
Create a basic sample description that can be used for calls to MP4AddMediaSamples().
MP4Err ISOAddAtomToSampleDescription(MP4Handle sampleEntryH, MP4GenericAtom extensionAtom)
Add an arbitrary atom to a sample entry (description).
MP4Err ISOSetSampleDescriptionDimensions(MP4Handle sampleEntryH, u16 width, u16 height)
This function sets the visual width and height of a sample description.
MP4Err ISONewTextMetaDataSampleDescription(MP4Track theTrack, MP4Handle sampleDescriptionH, u32 dataReferenceIndex, char *content_encoding, char *mime_format)
Make a sample description for a timed text meta-data track.
MP4Err MP4GetMediaSampleDescription(MP4Media theMedia, u32 index, MP4Handle outDescriptionH, u32 *outDataReferenceIndex)
This returns the sample description at the given index, with the data reference index that is associa...
MP4Err ISOGetSampleDescriptionDimensions(MP4Handle sampleEntryH, u16 *width, u16 *height)
This function gets the visual width and height of a sample description.
MP4Err ISOSetSampleDescriptionType(MP4Handle sampleEntryH, u32 type)
(Re)set the type of a sample description.
MP4Err MP4NewSampleDescriptionWithOCRAssociation(MP4Track theTrack, MP4Handle sampleDescriptionH, u32 dataReferenceIndex, u32 objectTypeIndication, u32 streamType, u32 decoderBufferSize, u32 maxBitrate, u32 avgBitrate, MP4Handle decoderSpecificInfoH, u32 theOCRESID)
Create a sample description with clock reference.
MP4Err MP4SetSampleDescriptionPriority(MP4Handle sampleEntryH, u32 priority)
This function sets the MPEG-4 elementary stream priority of the associated stream (in the elementary ...
MP4Err MP4NewSampleDescription(MP4Track theTrack, MP4Handle sampleDescriptionH, u32 dataReferenceIndex, u32 objectTypeIndication, u32 streamType, u32 decoderBufferSize, u32 maxBitrate, u32 avgBitrate, MP4Handle decoderSpecificInfoH)
Create a basic sample description that can be used for calls to MP4AddMediaSamples().
MP4Err MP4InsertMediaIntoTrack(MP4Track trak, s32 trackStartTime, s32 mediaStartTime, u64 segmentDuration, s32 mediaRate)
Adds a reference to the specified segment of media into a Track.
MP4Err MP4GetSubSampleInformationEntryFromTrack(MP4Track theTrack, u32 *flags, u32 *entry_count, u32 **sample_delta, u32 **subsample_count, u32 ***subsample_size_array, u32 ***subsample_priority_array, u32 ***subsample_discardable_array)
MP4Err MP4SetSubSampleInformationFlags(MP4GenericAtom subsample, u32 flags)
MP4Err MP4NewMovieTrackWithID(MP4Movie theMovie, u32 newTrackFlags, u32 newTrackID, MP4Track *outTrack)
Creates a new track for the movie with a specified track ID.
MP4Err MP4AddTrackGroup(MP4Track theTrack, u32 groupID, u32 dependencyType)
Add track to a track group ID.
MP4Err MP4NewMovieTrack(MP4Movie theMovie, u32 newTrackFlags, MP4Track *outTrack)
Creates a new track for the movie.
MP4Err MP4AddAtomToTrack(MP4Track theTrack, MP4GenericAtom the_atom)
Adds the given atom to the track.
MP4Err MP4GetMovieIndTrack(MP4Movie theMovie, u32 trackIndex, MP4Track *outTrack)
Get track using the track index.
MP4Err MP4AddSubSampleInformationToTrack(MP4Track theTrack, MP4GenericAtom *subs)
MP4Err MP4AddSubSampleInformationEntry(MP4GenericAtom subsample, u32 sample_delta, u32 subsample_count, MP4Handle subsample_size_array, MP4Handle subsample_priority_array, MP4Handle subsample_discardable_array)
MP4Err MP4AddTrackReferenceWithID(MP4Track theTrack, u32 dependsOnID, u32 dependencyType, u32 *outReferenceIndex)
Indicate that there exists a dependency between two tracks.
MP4Err MP4AddTrackReference(MP4Track theTrack, MP4Track dependsOn, u32 referenceType, u32 *outReferenceIndex)
Indicate that there exists a dependency between two tracks.
MP4Err MP4NewTrackMedia(MP4Track theTrack, MP4Media *outMedia, u32 handlerType, u32 timeScale, MP4Handle dataReference)
Creates the media container for a track.
MP4Err MP4GetMovieTrackCount(MP4Movie theMovie, u32 *outTrackCount)
This function allows you to determine the number of Tracks in a Movie.
MP4Err MP4GetMovieIndTrackSampleEntryType(MP4Movie theMovie, u32 idx, u32 *SEType)
Get sample entry type of a track.
MP4Err MP4GetTrackDuration(MP4Track theTrack, u64 *outDuration)
Calculates and returns the duration of the track.
MP4Err MP4GetTrackEditlistEntryCount(MP4Track theTrack, u32 *entryCount)
This returns the number of existent Edit list entries.
MP4Err MP4SetTrackEnabled(MP4Track theTrack, u32 enabled)
Enables or disables the track.
MP4Err ISOSetTrackFragmentDefaults(MP4Track theTrack, u32 duration, u32 size, u32 is_sync, u8 pad)
Sets the default sample duration, size, sync-flag, and padding bits for samples added into movie frag...
MP4Err MP4GetTrackMovie(MP4Track theTrack, MP4Movie *outMovie)
Get the Movie associated with a Track.
MP4Err MP4SetTrackOffset(MP4Track track, u32 movieOffsetTime)
Modifies the duration of the empty space that lies at the beginning of the track, thus changing the d...
MP4Err MP4GetTrackEnabled(MP4Track theTrack, u32 *outEnabled)
This returns a non-zero value in outEnabled if the track is enabled.
MP4Err MP4GetTrackGroup(MP4Track theTrack, u32 groupType, u32 *outGroupId)
Get the track group of a track.
MP4Err MP4GetTrackMedia(MP4Track theTrack, MP4Media *outMedia)
Returns the Media for a given Track.
MP4Err MP4AddSubSampleInformationEntry2(MP4GenericAtom subsample, u32 sample_delta, u32 subsample_count, MP4Handle subsample_size_array, MP4Handle subsample_priority_array, MP4Handle subsample_discardable_array, MP4Handle codec_specific_parameters_array)
Same as MP4AddSubSampleInformationEntry but also allows to add the codec specific parameters.
MP4Err MP4GetTrackOffset(MP4Track track, u32 *outMovieOffsetTime)
Get the track's offset (the length of its initial empty edit).
MP4Err MP4GetTrackReferenceCount(MP4Track theTrack, u32 referenceType, u32 *outReferenceCount)
Determine the number of a particular type of track references that are contained in a track.
MP4Err MP4GetTrackReference(MP4Track theTrack, u32 referenceType, u32 referenceIndex, MP4Track *outReferencedTrack)
Obtain a specific track reference of the specified type.
MP4Err MP4GetTrackID(MP4Track theTrack, u32 *outTrackID)
Get the elementary stream ID for a given Track.
MP4Err MP4GetTrackEditlist(MP4Track theTrack, u64 *outSegmentDuration, s64 *outMediaTime, u32 entryIndex)
This returns a non-zero value in outSegmentDuration and outMediaTime if the Edit list information is ...
MP4Err MP4TrackTimeToMediaTime(MP4Track theTrack, u64 inTrackTime, s64 *outMediaTime)
Convert from a time expressed in the movie time scale to a time expressed in the media time scale.
MP4Err MP4AddTrackToMovieIOD(MP4Track theTrack)
Add track's ES_Descriptor to its movie's initial object descriptor.
@ MP4HintTrackReferenceType
for hint tracks, to point to the media track they depend on
Definition MP4Movies.h:602
@ MP4ODTrackReferenceType
for object descriptor tracks, to point to the elementary stream whose metadata is being updated.
Definition MP4Movies.h:607
@ MP4StreamDependencyReferenceType
for elementary stream tracks, to indicate other elementary stream tracks they depend on (an enhanceme...
Definition MP4Movies.h:604
MP4Err MP4TrackReaderGetCurrentDecoderConfig(MP4TrackReader theReader, MP4Handle decoderConfigH)
Places the appropriate decoder config descriptor into the handle provided.
MP4Err MP4TrackReaderGetNextAccessUnitWithPad(MP4TrackReader theReader, MP4Handle outAccessUnit, u32 *outSize, u32 *outSampleFlags, s32 *outCTS, s32 *outDTS, u8 *outPad)
Get the next access unit, or sample, from the track with the padding bits for the sample.
MP4Err MP4DisposeTrackReader(MP4TrackReader theReader)
Frees up resources associated with a track reader.
MP4Err MP4TrackReaderGetCurrentSampleDescription(MP4TrackReader theReader, MP4Handle sampleEntryH)
Get the sample description associated with the current read-point.
MP4Err MP4TrackReaderSetSLConfig(MP4TrackReader theReader, MP4SLConfig slConfig)
Set the SLConfig of the trackreader.
MP4Err MP4CreateTrackReader(MP4Track theTrack, MP4TrackReader *outReader)
Create a track reader for a movie track.
MP4Err MP4TrackReaderGetNextAccessUnitWithDuration(MP4TrackReader theReader, MP4Handle outAccessUnit, u32 *outSize, u32 *outSampleFlags, s32 *outCTS, s32 *outDTS, u32 *outDuration)
Get the next access unit (MPEG-4), or sample, from the track with duration of the sample.
MP4Err MP4TrackReaderGetNextAccessUnit(MP4TrackReader theReader, MP4Handle outAccessUnit, u32 *outSize, u32 *outSampleFlags, s32 *outCTS, s32 *outDTS)
Use this to get the next access unit (MPEG-4), or sample, from the track.
MP4Err MP4TrackReaderGetNextPacket(MP4TrackReader theReader, MP4Handle outPacket, u32 *outSize)
Use this to read the next SL-packet from the track.
MP4Err MP4TrackReaderGetCurrentSampleNumber(MP4TrackReader theReader, u32 *sampleNumber)
Get the sample number of the last returned access unit.
MP4Err MP4TrackReaderGetCurrentSampleDescriptionIndex(MP4TrackReader theReader, u32 *index)
Get the index of the current sample description.
MP4UserDataRecord * MP4UserData
An opaque handle that references user data.
Definition MP4Movies.h:237
MP4TrackReaderRecord * MP4TrackReader
This is an opaque handle that contains a reference to a track reader.
Definition MP4Movies.h:227
int MP4Err
This is a typedef for function error codes.
Definition MP4Movies.h:34
MP4TrackRecord * MP4Track
This is an opaque handle that contains a reference to a track.
Definition MP4Movies.h:207
char ** MP4Handle
MP4Handle is used to pass sections of dynamically allocated memory to the API.
Definition MP4Movies.h:265
MP4MediaRecord * MP4Media
This is an opaque handle that contains a reference to media.
Definition MP4Movies.h:217
#define MP4_FOUR_CHAR_CODE(a, b, c, d)
Makes a four-character code when needed.
Definition MP4OSMacros.h:51
MP4MovieRecord * MP4Movie
This is an opaque handle that contains a reference to a movie.
Definition MP4Movies.h:197
sampleToGroupType_t
Sample grouping types.
Definition MP4Movies.h:146
@ MP4OpenMovieInPlace
Open in place, discards mdat box.
Definition MP4Movies.h:68
@ MP4OpenMovieDebug
Open in debug mode, prints the atom tree to stdout.
Definition MP4Movies.h:67
@ MP4OpenMovieNormal
Open in normal mode.
Definition MP4Movies.h:66
@ MP4DataRefSelfReferenceMask
samples are in the same file as the movie
Definition MP4Movies.h:1292
@ MP4URLDataReferenceType
URL.
Definition MP4Movies.h:1302
@ MP4URNDataReferenceType
URN.
Definition MP4Movies.h:1303
@ MP4InvalidMediaErr
Invalid media.
Definition MP4Movies.h:53
@ MP4DataEntryTypeNotSupportedErr
Data entity type not supported.
Definition MP4Movies.h:56
@ MP4NoMemoryErr
No memory.
Definition MP4Movies.h:48
@ MP4EOF
End of file.
Definition MP4Movies.h:44
@ MP4NotFoundErr
Not found.
Definition MP4Movies.h:55
@ MP4BadParamErr
Wrong parameter.
Definition MP4Movies.h:47
@ MP4NoErr
Success.
Definition MP4Movies.h:45
@ MP4IOErr
I/0 Error.
Definition MP4Movies.h:49
@ MP4InternalErr
Iternal error.
Definition MP4Movies.h:54
@ MP4NoLargeAtomSupportErr
No support for large atoms.
Definition MP4Movies.h:50
@ MP4HasRootOD
Has root object descriptor.
Definition MP4Movies.h:43
@ MP4NoQTAtomErr
No QT atom.
Definition MP4Movies.h:57
@ MP4BadDataErr
Bad data.
Definition MP4Movies.h:51
@ MP4NotImplementedErr
Not implemented.
Definition MP4Movies.h:58
@ MP4FileNotFoundErr
No such file or directory.
Definition MP4Movies.h:46
@ MP4VersionNotSupportedErr
Version not supported.
Definition MP4Movies.h:52
@ MP4MediaSampleNotSync
the sample is not a sync sample
Definition MP4Movies.h:1415
@ MP4MediaSampleHasCTSOffset
the sample’s DTS differs from its CTS
Definition MP4Movies.h:1416
@ MP4NextTimeSearchForward
Forward search.
Definition MP4Movies.h:1382
@ MP4NextTimeSearchBackward
Backward search.
Definition MP4Movies.h:1383
@ MP4NextTimeMediaEdit
Media edit time.
Definition MP4Movies.h:1385
@ MP4NextTimeTrackEdit
Track edit time.
Definition MP4Movies.h:1386
@ MP4NextTimeEdgeOK
Time edge is ok.
Definition MP4Movies.h:1388
@ MP4NextTimeMediaSample
Media sample time.
Definition MP4Movies.h:1384
@ MP4NextTimeSyncSample
Sync sample time.
Definition MP4Movies.h:1387
@ has_no_redundancy
there is no redundant coding in this sample
Definition MP4Movies.h:138
@ is_leading_dependency
this sample is a leading sample that has a dependency before the referenced I-picture (and is therefo...
Definition MP4Movies.h:128
@ does_not_depend_on
this sample does not depend on others (I picture)
Definition MP4Movies.h:134
@ does_depend_on
this sample does depend on others (not an I picture)
Definition MP4Movies.h:133
@ is_no_leading
this sample is not a leading sample
Definition MP4Movies.h:130
@ is_not_depended_on
no other sample depends on this one (disposable)
Definition MP4Movies.h:136
@ has_redundancy
there is redundant coding in this sample
Definition MP4Movies.h:137
@ is_depended_on
other samples may depend on this one (not disposable)
Definition MP4Movies.h:135
@ is_leading_no_dependency
this sample is a leading sample that has no dependency before the referenced I-picture (and is theref...
Definition MP4Movies.h:131
@ MP4NewTrackIsVolumetric
track contains volumetric media
Definition MP4Movies.h:80
@ MP4NewTrackIsVisual
track contains visual media
Definition MP4Movies.h:77
@ MP4NewTrackIsHaptic
track contains haptic media
Definition MP4Movies.h:81
@ MP4NewTrackIsAudio
track contains audio media
Definition MP4Movies.h:78
@ MP4NewTrackIsPrivate
track contains a media type unknown to MPEG-4
Definition MP4Movies.h:82
@ MP4NewTrackIsMetadata
track contains meta-data
Definition MP4Movies.h:79
@ SAMPLE_GROUP_AUTO
automatically decide based on atom size
Definition MP4Movies.h:149
@ SAMPLE_GROUP_COMPACT
Use compact sample groups 'csgp'.
Definition MP4Movies.h:148
@ SAMPLE_GROUP_NORMAL
Use normal sample groups 'sbgp'.
Definition MP4Movies.h:147
MP4Err MP4NewUUIDAtom(MP4GenericAtom *outAtom, u8 the_uuid[16], MP4Handle atomPayload)
Construct a new custom atom object with UUID type.
MP4Err MP4GetAtomFromUserData(MP4UserData theUserData, MP4GenericAtom *outAtom, u32 userDataType, u32 itemIndex)
Returns the contents of the requested user data item.
MP4Err MP4GetTrackUserData(MP4Track theTrack, MP4UserData *outUserData)
Get the track level user data 'udta'.
MP4Err MP4AddUserData(MP4UserData theUserData, MP4Handle dataH, u32 userDataType, u32 *outIndex)
Adds an entry to the user data list.
MP4Err MP4NewForeignAtom(MP4GenericAtom *outAtom, u32 atomType, MP4Handle atomPayload)
Construct a new custom atom object.
MP4Err MP4GetUserDataEntryCount(MP4UserData theUserData, u32 userDataType, u32 *outCount)
Returns the count of user data atoms of the specified type.
MP4Err MP4GetUserDataItem(MP4UserData theUserData, MP4Handle dataH, u32 userDataType, u32 itemIndex)
Returns the contents of the requested user data item.
MP4Err MP4DeleteUserDataItem(MP4UserData theUserData, u32 userDataType, u32 itemIndex)
Deletes a user-data item, by index.
MP4Err MP4GetUserDataTypeCount(MP4UserData theUserData, u32 *outCount)
Returns the count of user data types.
MP4Err MP4GetMovieUserData(MP4Movie theMovie, MP4UserData *outUserData)
Get the movie level user data 'udta'.
MP4Err MP4GetIndUserDataType(MP4UserData theUserData, u32 typeIndex, u32 *outType)
Queries an indexed type of user data in the user data list.
MP4Err MP4GetForeignAtom(MP4GenericAtom atom, u32 *atomType, u8 the_uuid[16], MP4Handle atomPayload)
Returns the type and contents of the given foreign atom, and, if it is a UUID atom,...
MP4Err MP4NewUserData(MP4UserData *outUserData)
Creates a new user data list.
MP4Err MP4SetHandleSize(MP4Handle theHandle, u32 handleSize)
Sets the logical size of the handle to requestedSize bytes.
MP4Err MP4SetHandleOffset(MP4Handle theHandle, u32 offset)
Sets the handle so that subsequent de-references of it refer to the data starting at the given byte o...
MP4Err MP4HandleCat(MP4Handle theDstHandle, MP4Handle theSrcHandle)
Appends the data contained in theSrcHandle to data contained in theDstHandle by reallocating,...
MP4Err MP4NewHandle(u32 handleSize, MP4Handle *outHandle)
Creates a new handle, and allocates handleSize bytes for it.
MP4Err MP4GetHandleSize(MP4Handle theHandle, u32 *outSize)
Use this to determine the present logical size (in bytes) of a handle.
MP4Err MP4DisposeHandle(MP4Handle theHandle)
Frees the memory that was allocated for a handle.
Definition MP4Movies.h:247
Definition MP4Movies.h:189
Definition MP4Movies.h:240
SL configuration settings record.
Definition MP4Movies.h:1983
Definition MP4Movies.h:220
Definition MP4Movies.h:200
Definition MP4Movies.h:230