Skip to content

Data Types

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

u32, u64, u8, s32, etc These are typedefs that refer to unsigned (u) or signed (s) integers of size 32 bits, 64 bits, etc. Most of this API uses these instead of the underspecified int, long, short, and char types.

ISOErr This is a typedef for function error codes. The error codes are enumerated in ISOMovies.h. The general rule is that zero is used to indicate success, and negative numbers are errors.

ISOHandle This 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.

ISOMovie This is an opaque handle that contains a reference to a movie.

ISOTrack This is an opaque handle that contains a reference to a track.

ISOMedia This is an opaque handle that contains a reference to media.

ISOMeta This is an opaque handle that contains a reference to rich meta-data.

ISOMetaItem This is an opaque handle that contains a reference to a rich meta-data item.

ISOTrackReader This is an opaque handle that contains a reference to a track reader.

MP4UserData An opaque handle that references user data.

MP4_FOUR_CHAR_CODE( a, b, c, d ) Makes a four-character code when needed (e.g. for a group type, sample-entry type etc.). The arguments are the four characters.