ISOBMFF
ISO Base Media File Format Reference Software Documentation
 
Loading...
Searching...
No Matches
Data Types

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 ISOMetaRecordISOMeta
 This is an opaque handle that contains a reference to rich meta-data.
 
typedef ISOMetaItemRecordISOMetaItem
 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 EntityGroupEntryEntityGroupEntryPtr
 
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 MP4MovieRecordMP4Movie
 This is an opaque handle that contains a reference to a movie.
 
typedef struct MP4TrackRecord MP4TrackRecord
 
typedef MP4TrackRecordMP4Track
 This is an opaque handle that contains a reference to a track.
 
typedef struct MP4MediaRecord MP4MediaRecord
 
typedef MP4MediaRecordMP4Media
 This is an opaque handle that contains a reference to media.
 
typedef struct MP4TrackReaderRecord MP4TrackReaderRecord
 
typedef MP4TrackReaderRecordMP4TrackReader
 This is an opaque handle that contains a reference to a track reader.
 
typedef struct MP4UserDataRecord MP4UserDataRecord
 
typedef MP4UserDataRecordMP4UserData
 An opaque handle that references user data.
 
typedef struct MP4SLConfigRecord MP4SLConfigRecord
 
typedef MP4SLConfigRecordMP4SLConfig
 
typedef struct MP4GenericAtomRecord MP4GenericAtomRecord
 
typedef MP4GenericAtomRecordMP4GenericAtom
 
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...
 

Detailed Description

Data types used within the API.

Macro Definition Documentation

◆ GETIODATOM

#define GETIODATOM (   arg)
Value:
MP4ObjectDescriptorAtomPtr iodAtom; \
GETMOVIEATOM(arg); \
iodAtom = (MP4ObjectDescriptorAtomPtr)movieAtom->iods;

Get the MP4ObjectDescriptorAtomPtr iodAtom.

Parameters
argISOMovie or MP4Movie object

◆ GETMOOV

#define GETMOOV (   arg)
Value:
MP4PrivateMovieRecordPtr moov; \
MP4Err err; \
err = MP4NoErr; \
if(arg == NULL) BAILWITHERROR(MP4BadParamErr) \
moov = (MP4PrivateMovieRecordPtr)arg
int MP4Err
This is a typedef for function error codes.
Definition MP4Movies.h:34
@ MP4BadParamErr
Wrong parameter.
Definition MP4Movies.h:47
@ MP4NoErr
Success.
Definition MP4Movies.h:45

Get the MP4PrivateMovieRecordPtr moov.

Declare MP4Err and bail on error.

Parameters
argISOMovie or MP4Movie object

◆ GETMOVIEATOM

#define GETMOVIEATOM (   arg)
Value:
MP4MovieAtomPtr movieAtom; \
GETMOOV(arg); \
movieAtom = (MP4MovieAtomPtr)moov->moovAtomPtr

Get the MP4MovieAtomPtr movieAtom.

Parameters
argISOMovie or MP4Movie object

◆ GETMOVIEHEADERATOM

#define GETMOVIEHEADERATOM (   arg)
Value:
MP4MovieHeaderAtomPtr movieHeaderAtom; \
GETMOVIEATOM(arg); \
movieHeaderAtom = (MP4MovieHeaderAtomPtr)movieAtom->mvhd

Get the MP4MovieHeaderAtomPtr movieHeaderAtom.

Parameters
argISOMovie or MP4Movie object

◆ MP4_FOUR_CHAR_CODE

#define MP4_FOUR_CHAR_CODE (   a,
  b,
  c,
 
)    (((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 Documentation

◆ MP4Err

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.

◆ MP4Handle

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.

◆ sampleToGroupType_t

Sample grouping types.

See also
ISOSetSamplestoGroupType()

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Sample dependency types.

See also
ISOSetSampleDependency, ISOGetSampleDependency
Enumerator
is_leading_dependency 

this sample is a leading sample that has a dependency before the referenced I-picture (and is therefore not decodable)

is_no_leading 

this sample is not a leading sample

is_leading_no_dependency 

this sample is a leading sample that has no dependency before the referenced I-picture (and is therefore decodable)

does_depend_on 

this sample does depend on others (not an I picture)

does_not_depend_on 

this sample does not depend on others (I picture)

is_depended_on 

other samples may depend on this one (not disposable)

is_not_depended_on 

no other sample depends on this one (disposable)

has_redundancy 

there is redundant coding in this sample

has_no_redundancy 

there is no redundant coding in this sample

◆ anonymous enum

anonymous enum

Data reference attributes.

See also
MP4GetMediaDataReference()
Enumerator
MP4DataRefSelfReferenceMask 

samples are in the same file as the movie

◆ anonymous enum

anonymous enum

Data reference types.

See also
MP4GetMediaDataReference()
Enumerator
MP4URLDataReferenceType 

URL.

MP4URNDataReferenceType 

URN.

◆ anonymous enum

anonymous enum

Flags for NextInterestingTime.

See also
MP4GetMediaNextInterestingTime()
Enumerator
MP4NextTimeSearchForward 

Forward search.

MP4NextTimeSearchBackward 

Backward search.

MP4NextTimeMediaSample 

Media sample time.

MP4NextTimeMediaEdit 

Media edit time.

MP4NextTimeTrackEdit 

Track edit time.

MP4NextTimeSyncSample 

Sync sample time.

MP4NextTimeEdgeOK 

Time edge is ok.

◆ anonymous enum

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

anonymous enum

Brands.

Enumerator
JP2JPEG2000Brand 

brand for JPEG-2000

MJ2JPEG2000Brand 

brand for Motion JPEG-2000

ISOQuickTimeBrand 

brand for QuickTime

ISOMpeg4V1Brand 

brand for MPEG-4 version 1

ISOMpeg4V2Brand 

brand for MPEG-4 version 2

ISOISOBrand 

conforming brand for all files

ISOISO2Brand 

conforming brand for all files

ISO3GP4Brand 

3GPP Release 4

ISO3GP5Brand 

3GPP Release 5

ISO3GP6Brand 

3GPP Release 6

ISOMPEG21Brand 

MPEG-21.

ISOUnknownBrand 

default 'brand'

ISO_DASH_Brand 

DASH (ISO/IEC 23009-1)

ISO_DASH_DSMS_Brand 

DASH self-initializing media seg.

ISO_DASH_MSDH_Brand 

DASH general format media segment.

ISO_DASH_MSIX_Brand 

DASH indexed media segment.

ISO_DASH_RISX_Brand 

DASH representation index segment.

ISO_DASH_LMSG_Brand 

DASH last media segment indicator.

ISO_DASH_SISX_Brand 

DASH single index segment.

ISO_DASH_SSSS_Brand 

DASH subsegment index segment.

◆ anonymous enum

anonymous enum

AVC/SVC/HEVC Parameter Set places.

See also
ISOAddVCSampleDescriptionPS, ISOGetVCSampleDescriptionPS, ISOGetRESVSampleDescriptionPS, ISOGetHEVCSampleDescriptionPS
Enumerator
AVCsps 

AVC Sequence parameter set.

AVCpps 

AVC Picture parameter set.

AVCspsext 

AVC Sequence parameter set extension.

SVCsps 

SVC Sequence parameter set.

SVCpps 

SVC Picture parameter set.

SVCspsext 

SVC SPS extension.

HEVCvps 

HEVC Video Parameter Set.

HEVCsps 

HEVC Sequence Parameter Set.

HEVCpps 

HEVC Picture Parameter Set.

◆ anonymous enum

anonymous enum

VVC Parameter Set places.

See also
ISOAddVVCSampleDescriptionPS, ISOGetVVCSampleDescriptionPS,

◆ anonymous enum

anonymous enum

Function error codes.

See also
MP4Err
Enumerator
MP4HasRootOD 

Has root object descriptor.

MP4EOF 

End of file.

MP4NoErr 

Success.

MP4FileNotFoundErr 

No such file or directory.

MP4BadParamErr 

Wrong parameter.

MP4NoMemoryErr 

No memory.

MP4IOErr 

I/0 Error.

MP4NoLargeAtomSupportErr 

No support for large atoms.

MP4BadDataErr 

Bad data.

MP4VersionNotSupportedErr 

Version not supported.

MP4InvalidMediaErr 

Invalid media.

MP4InternalErr 

Iternal error.

MP4NotFoundErr 

Not found.

MP4DataEntryTypeNotSupportedErr 

Data entity type not supported.

MP4NoQTAtomErr 

No QT atom.

MP4NotImplementedErr 

Not implemented.

◆ anonymous enum

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

anonymous enum

Track flags.

See also
MP4NewMovieTrack
Enumerator
MP4NewTrackIsVisual 

track contains visual media

MP4NewTrackIsAudio 

track contains audio media

MP4NewTrackIsMetadata 

track contains meta-data

MP4NewTrackIsVolumetric 

track contains volumetric media

MP4NewTrackIsHaptic 

track contains haptic media

MP4NewTrackIsPrivate 

track contains a media type unknown to MPEG-4

◆ sampleToGroupType_t

Sample grouping types.

See also
ISOSetSamplestoGroupType()
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