Data types used within the API. More...
Classes | |
struct | EntityGroupEntry |
Structure which contanis all the common parameters of an EntityGroup. More... | |
struct | MP4MovieRecord |
struct | MP4TrackRecord |
struct | MP4MediaRecord |
struct | MP4TrackReaderRecord |
struct | MP4UserDataRecord |
struct | MP4SLConfigRecord |
struct | MP4GenericAtomRecord |
Macros | |
#define | GETMOOV(arg) |
Get the MP4PrivateMovieRecordPtr moov. | |
#define | GETMOVIEATOM(arg) |
Get the MP4MovieAtomPtr movieAtom. | |
#define | GETMOVIEHEADERATOM(arg) |
Get the MP4MovieHeaderAtomPtr movieHeaderAtom. | |
#define | GETIODATOM(arg) |
Get the MP4ObjectDescriptorAtomPtr iodAtom. | |
#define | MP4_FOUR_CHAR_CODE(a, b, c, d) (((a) << 24) | ((b) << 16) | ((c) << 8) | (d)) |
Makes a four-character code when needed. | |
Typedefs | |
typedef ISOMetaRecord * | ISOMeta |
This is an opaque handle that contains a reference to rich meta-data. | |
typedef ISOMetaItemRecord * | ISOMetaItem |
This is an opaque handle that contains a reference to a rich meta-data item. | |
typedef struct EntityGroupEntry | EntityGroupEntry |
Structure which contanis all the common parameters of an EntityGroup. | |
typedef struct EntityGroupEntry * | EntityGroupEntryPtr |
typedef int | MP4Err |
This is a typedef for function error codes. | |
typedef enum sampleToGroupType_t | sampleToGroupType_t |
Sample grouping types. | |
typedef struct MP4MovieRecord | MP4MovieRecord |
typedef MP4MovieRecord * | MP4Movie |
This is an opaque handle that contains a reference to a movie. | |
typedef struct MP4TrackRecord | MP4TrackRecord |
typedef MP4TrackRecord * | MP4Track |
This is an opaque handle that contains a reference to a track. | |
typedef struct MP4MediaRecord | MP4MediaRecord |
typedef MP4MediaRecord * | MP4Media |
This is an opaque handle that contains a reference to media. | |
typedef struct MP4TrackReaderRecord | MP4TrackReaderRecord |
typedef MP4TrackReaderRecord * | MP4TrackReader |
This is an opaque handle that contains a reference to a track reader. | |
typedef struct MP4UserDataRecord | MP4UserDataRecord |
typedef MP4UserDataRecord * | MP4UserData |
An opaque handle that references user data. | |
typedef struct MP4SLConfigRecord | MP4SLConfigRecord |
typedef MP4SLConfigRecord * | MP4SLConfig |
typedef struct MP4GenericAtomRecord | MP4GenericAtomRecord |
typedef MP4GenericAtomRecord * | MP4GenericAtom |
typedef char ** | MP4Handle |
MP4Handle is used to pass sections of dynamically allocated memory to the API. | |
Enumerations | |
enum | { JP2JPEG2000Brand = MP4_FOUR_CHAR_CODE('j', 'p', '2', ' ') , MJ2JPEG2000Brand = MP4_FOUR_CHAR_CODE('m', 'j', 'p', '2') , ISOQuickTimeBrand = MP4_FOUR_CHAR_CODE('q', 't', ' ', ' ') , ISOMpeg4V1Brand = MP4_FOUR_CHAR_CODE('m', 'p', '4', '1') , ISOMpeg4V2Brand = MP4_FOUR_CHAR_CODE('m', 'p', '4', '2') , ISOISOBrand = MP4_FOUR_CHAR_CODE('i', 's', 'o', 'm') , ISOISO2Brand = MP4_FOUR_CHAR_CODE('i', 's', 'o', '2') , ISO3GP4Brand = MP4_FOUR_CHAR_CODE('3', 'g', 'p', '4') , ISO3GP5Brand = MP4_FOUR_CHAR_CODE('3', 'g', 'p', '5') , ISO3GP6Brand = MP4_FOUR_CHAR_CODE('3', 'g', 'p', '6') , ISOMPEG21Brand = MP4_FOUR_CHAR_CODE('m', 'p', '2', '1') , ISOUnknownBrand = MP4_FOUR_CHAR_CODE(' ', ' ', ' ', ' ') , ISO_DASH_Brand = MP4_FOUR_CHAR_CODE('d', 'a', 's', 'h') , ISO_DASH_DSMS_Brand = MP4_FOUR_CHAR_CODE('d', 's', 'm', 's') , ISO_DASH_MSDH_Brand = MP4_FOUR_CHAR_CODE('m', 's', 'd', 'h') , ISO_DASH_MSIX_Brand = MP4_FOUR_CHAR_CODE('m', 's', 'd', 'h') , ISO_DASH_RISX_Brand = MP4_FOUR_CHAR_CODE('r', 'i', 's', 'x') , ISO_DASH_LMSG_Brand = MP4_FOUR_CHAR_CODE('l', 'm', 's', 'g') , ISO_DASH_SISX_Brand = MP4_FOUR_CHAR_CODE('s', 'i', 's', 'x') , ISO_DASH_SSSS_Brand = MP4_FOUR_CHAR_CODE('s', 's', 's', 's') } |
Brands. More... | |
enum | { AVCsps = 1 , AVCpps = 2 , AVCspsext = 3 , SVCsps = 0x11 , SVCpps = 0x12 , SVCspsext = 0x13 , HEVCvps = 0x20 , HEVCsps = 0x21 , HEVCpps = 0x22 } |
AVC/SVC/HEVC Parameter Set places. More... | |
enum | { VVCsps = 15 , VVCpps = 16 , VVCvps = 14 , VVCopi = 12 , VVCdci = 13 , VVC_prefix_aps = 17 , VVC_prefix_sei = 23 } |
VVC Parameter Set places. More... | |
enum | { MP4HasRootOD = 2 , MP4EOF = 1 , MP4NoErr = 0 , MP4FileNotFoundErr = -1 , MP4BadParamErr = -2 , MP4NoMemoryErr = -3 , MP4IOErr = -4 , MP4NoLargeAtomSupportErr = -5 , MP4BadDataErr = -6 , MP4VersionNotSupportedErr = -7 , MP4InvalidMediaErr = -8 , MP4InternalErr = -9 , MP4NotFoundErr = -10 , MP4DataEntryTypeNotSupportedErr = -100 , MP4NoQTAtomErr = -500 , MP4NotImplementedErr = -1000 } |
Function error codes. More... | |
enum | { MP4OpenMovieNormal = 0 , MP4OpenMovieDebug = (1 << 0) , MP4OpenMovieInPlace = (1 << 1) } |
Modes used by MP4OpenMovieFile() More... | |
enum | { MP4NewTrackIsVisual = (1 << 1) , MP4NewTrackIsAudio = (1 << 2) , MP4NewTrackIsMetadata = (1 << 3) , MP4NewTrackIsVolumetric = (1 << 4) , MP4NewTrackIsHaptic = (1 << 5) , MP4NewTrackIsPrivate = (1 << 8) } |
Track flags. More... | |
enum | { MP4ObjectDescriptorHandlerType = MP4_FOUR_CHAR_CODE('o', 'd', 's', 'm') , MP4ClockReferenceHandlerType = MP4_FOUR_CHAR_CODE('c', 'r', 's', 'm') , MP4SceneDescriptionHandlerType = MP4_FOUR_CHAR_CODE('s', 'd', 's', 'm') , MP4VisualHandlerType = MP4_FOUR_CHAR_CODE('v', 'i', 'd', 'e') , MP4AudioHandlerType = MP4_FOUR_CHAR_CODE('s', 'o', 'u', 'n') , MP4MPEG7HandlerType = MP4_FOUR_CHAR_CODE('m', '7', 's', 'm') , MP4OCIHandlerType = MP4_FOUR_CHAR_CODE('o', 'c', 's', 'm') , MP4IPMPHandlerType = MP4_FOUR_CHAR_CODE('i', 'p', 's', 'm') , MP4MPEGJHandlerType = MP4_FOUR_CHAR_CODE('m', 'j', 's', 'm') , MP4HintHandlerType = MP4_FOUR_CHAR_CODE('h', 'i', 'n', 't') , MP4TextHandlerType = MP4_FOUR_CHAR_CODE('t', 'e', 'x', 't') , MP7TextHandlerType = MP4_FOUR_CHAR_CODE('m', 'p', '7', 't') , MP7BinaryHandlerType = MP4_FOUR_CHAR_CODE('m', 'p', '7', 'b') , MP21HandlerType = MP4_FOUR_CHAR_CODE('m', 'p', '2', '1') , MP4NullHandlerType = MP4_FOUR_CHAR_CODE('n', 'u', 'l', 'l') , MP4MetaHandlerType = MP4_FOUR_CHAR_CODE('m', 'e', 't', 'a') , MP4VolumetricHandlerType = MP4_FOUR_CHAR_CODE('v', 'o', 'l', 'v') , MP4HapticHandlerType = MP4_FOUR_CHAR_CODE('h', 'a', 'p', 't') , ISOXMLAtomType = MP4_FOUR_CHAR_CODE('x', 'm', 'l', ' ') , ISOBinaryXMLAtomType = MP4_FOUR_CHAR_CODE('b', 'x', 'm', 'l') } |
Handler types. | |
enum | { MP4IPMP_NoControlPoint = 0x00 , MP4IPMP_DB_Decoder_ControlPoint = 0x01 , MP4IPMP_Decoder_CB_ControlPoint = 0x02 , MP4IPMP_CB_Compositor_ControlPoint = 0x03 , MP4IPMP_BIFSTree_ControlPoint = 0x04 } |
enum | { is_leading_dependency = 0x40 , is_no_leading = 0x80 , is_leading_no_dependency = 0xC0 , does_depend_on = 0x10 , does_not_depend_on = 0x20 , is_depended_on = 0x4 , is_not_depended_on = 0x8 , has_redundancy = 1 , has_no_redundancy = 2 } |
Sample dependency types. More... | |
enum | sampleToGroupType_t { SAMPLE_GROUP_NORMAL = 0 , SAMPLE_GROUP_COMPACT , SAMPLE_GROUP_AUTO } |
Sample grouping types. More... | |
enum | { MP4DataRefSelfReferenceMask = (1 << 0) } |
Data reference attributes. More... | |
enum | { MP4URLDataReferenceType = MP4_FOUR_CHAR_CODE('u', 'r', 'l', ' ') , MP4URNDataReferenceType = MP4_FOUR_CHAR_CODE('u', 'r', 'n', ' ') } |
Data reference types. More... | |
enum | { MP4NextTimeSearchForward = 0 , MP4NextTimeSearchBackward = -1 , MP4NextTimeMediaSample = (1 << 0) , MP4NextTimeMediaEdit = (1 << 1) , MP4NextTimeTrackEdit = (1 << 2) , MP4NextTimeSyncSample = (1 << 3) , MP4NextTimeEdgeOK = (1 << 4) } |
Flags for NextInterestingTime. More... | |
enum | { MP4MediaSampleNotSync = (1 << 0) , MP4MediaSampleHasCTSOffset = (1 << 1) } |
flags for MP4GetMediaSample(), MP4GetIndMediaSampleWithPad(), MP4GetIndMediaSample() ... More... | |
Data types used within the API.
#define GETIODATOM | ( | arg | ) |
Get the MP4ObjectDescriptorAtomPtr iodAtom.
arg | ISOMovie or MP4Movie object |
#define GETMOOV | ( | arg | ) |
Get the MP4PrivateMovieRecordPtr moov.
Declare MP4Err and bail on error.
arg | ISOMovie or MP4Movie object |
#define GETMOVIEATOM | ( | arg | ) |
Get the MP4MovieAtomPtr movieAtom.
arg | ISOMovie or MP4Movie object |
#define GETMOVIEHEADERATOM | ( | arg | ) |
Get the MP4MovieHeaderAtomPtr movieHeaderAtom.
arg | ISOMovie or MP4Movie object |
#define MP4_FOUR_CHAR_CODE | ( | a, | |
b, | |||
c, | |||
d | |||
) | (((a) << 24) | ((b) << 16) | ((c) << 8) | (d)) |
Makes a four-character code when needed.
e.g. for a group type, sample-entry type etc.). The arguments are the four characters.
typedef int MP4Err |
This is a typedef for function error codes.
The general rule is that zero is used to indicate success, and negative numbers are errors.
typedef char** MP4Handle |
MP4Handle is used to pass sections of dynamically allocated memory to the API.
Handles have an internal structure that remember their allocated size, and the indicated size of the data stored in the Handle. It is common to create a zero-length Handle and pass it to a function that places data into it, resizing it appropriately. You can treat handles as (char**) as long as you use the API functions to allocate their memory and change their size.
typedef enum sampleToGroupType_t sampleToGroupType_t |
Sample grouping types.
anonymous enum |
Sample dependency types.
anonymous enum |
Data reference attributes.
Enumerator | |
---|---|
MP4DataRefSelfReferenceMask | samples are in the same file as the movie |
anonymous enum |
Data reference types.
Enumerator | |
---|---|
MP4URLDataReferenceType | URL. |
MP4URNDataReferenceType | URN. |
anonymous enum |
Flags for NextInterestingTime.
anonymous enum |
flags for MP4GetMediaSample(), MP4GetIndMediaSampleWithPad(), MP4GetIndMediaSample() ...
Enumerator | |
---|---|
MP4MediaSampleNotSync | the sample is not a sync sample |
MP4MediaSampleHasCTSOffset | the sample’s DTS differs from its CTS |
anonymous enum |
Brands.
anonymous enum |
AVC/SVC/HEVC Parameter Set places.
anonymous enum |
VVC Parameter Set places.
anonymous enum |
Function error codes.
anonymous enum |
Modes used by MP4OpenMovieFile()
Enumerator | |
---|---|
MP4OpenMovieNormal | Open in normal mode. |
MP4OpenMovieDebug | Open in debug mode, prints the atom tree to stdout. |
MP4OpenMovieInPlace | Open in place, discards mdat box. |
anonymous enum |
Track flags.
enum sampleToGroupType_t |
Sample grouping types.
Enumerator | |
---|---|
SAMPLE_GROUP_NORMAL | Use normal sample groups 'sbgp'. |
SAMPLE_GROUP_COMPACT | Use compact sample groups 'csgp'. |
SAMPLE_GROUP_AUTO | automatically decide based on atom size |