libgpac
Documentation of the core library of GPAC
|
MPEG-4 Object Descriptor Framework. More...
Macros | |
#define | BASE_DESCRIPTOR u8 tag; |
#define | GF_IPMPX_BASE |
#define | MAX_IPMP_ALT_TOOLS 20 |
#define | QOS_BASE_QUALIFIER |
#define | VP9_NUM_REF_FRAMES 8 |
#define | BASE_OD_COMMAND u8 tag; |
Typedefs | |
typedef GF_NALUFFParam | GF_AVCConfigSlot |
typedef GF_NALUFFParamArray | GF_HEVCParamArray |
This section documents the MPEG-4 OD, OCI and IPMPX functions of the GPAC framework.
struct GF_Descriptor |
base descriptor used as base type in many function.
struct GF_DefaultDescriptor |
default descriptor.
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | dataLength | |
u8 * | data |
struct GF_IPMP_ToolList |
Object Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR GF_List * | ipmp_tools |
struct GF_ObjectDescriptor |
ObjectDescriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u16 | objectDescriptorID | |
char * | URLString | |
GF_List * | ESDescriptors | |
GF_List * | OCIDescriptors | |
GF_List * | IPMP_Descriptors | |
GF_List * | extensionDescriptors | |
u32 | ServiceID | |
Bool | RedirectOnly | |
Bool | fake_remote |
struct GF_InitialObjectDescriptor |
GF_InitialObjectDescriptor - WARNING: even though the bitstream IOD is not a bit extension of OD, internally it is a real overclass of OD we usually typecast IOD to OD when flags are not needed !!!
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u16 | objectDescriptorID | |
char * | URLString | |
GF_List * | ESDescriptors | |
GF_List * | OCIDescriptors | |
GF_List * | IPMP_Descriptors | |
GF_List * | extensionDescriptors | |
u16 | ServiceID | |
Bool | RedirectOnly | |
Bool | fake_remote | |
u8 | inlineProfileFlag | |
u8 | OD_profileAndLevel | |
u8 | scene_profileAndLevel | |
u8 | audio_profileAndLevel | |
u8 | visual_profileAndLevel | |
u8 | graphics_profileAndLevel | |
GF_IPMP_ToolList * | IPMPToolList |
struct GF_IsomObjectDescriptor |
struct GF_IsomInitialObjectDescriptor |
File Format Initial Object Descriptor - same remark as IOD
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u16 | objectDescriptorID | |
char * | URLString | |
GF_List * | ES_ID_RefDescriptors | |
GF_List * | OCIDescriptors | |
GF_List * | IPMP_Descriptors | |
GF_List * | extensionDescriptors | |
GF_List * | ES_ID_IncDescriptors | |
u8 | inlineProfileFlag | |
u8 | OD_profileAndLevel | |
u8 | scene_profileAndLevel | |
u8 | audio_profileAndLevel | |
u8 | visual_profileAndLevel | |
u8 | graphics_profileAndLevel | |
GF_IPMP_ToolList * | IPMPToolList |
struct GF_ES_ID_Inc |
File Format ES Descriptor for IOD
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | trackID |
struct GF_ES_ID_Ref |
File Format ES Descriptor for OD
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u16 | trackRef |
struct GF_DecoderConfig |
Decoder config Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | objectTypeIndication | |
u8 | streamType | |
u8 | upstream | |
u32 | bufferSizeDB | |
u32 | maxBitrate | |
u32 | avgBitrate | |
GF_DefaultDescriptor * | decoderSpecificInfo | |
u16 | predefined_rvc_config | |
GF_DefaultDescriptor * | rvc_config | |
GF_List * | profileLevelIndicationIndexDescriptor | |
void * | udta |
struct GF_CIDesc |
struct GF_SCIDesc |
Supplementary Content Identification Descriptor)
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | languageCode | |
char * | supplContentIdentifierTitle | |
char * | supplContentIdentifierValue |
struct GF_IPIPtr |
IPI (Intelectual Property Identification) Descriptor Pointer
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u16 | IPI_ES_Id |
struct GF_IPMPPtr |
IPMP Descriptor Pointer
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u8 | IPMP_DescriptorID | |
u16 | IPMP_DescriptorIDEx | |
u16 | IPMP_ES_ID |
struct GF_GF_IPMPX_Base |
IPMPX base object used for type casting in many function
struct GF_IPMP_Descriptor |
struct GF_IPMP_Tool |
IPMPX Tool
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR bin128 | IPMP_ToolID | |
u32 | num_alternate | |
bin128 | specificToolID[MAX_IPMP_ALT_TOOLS] | |
struct _tagIPMPXParamDesc * | toolParamDesc | |
char * | tool_url |
struct GF_ElementaryMask |
Elementary Mask of Bifs Config - parsing only
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | node_id | |
char * | node_name |
struct GF_BIFSConfig |
struct GF_StyleRecord |
struct GF_FontRecord |
font record for text
Data Fields | ||
---|---|---|
u16 | fontID | |
char * | fontName |
struct GF_TextSampleDescriptor |
Text sample description descriptor (eg mostly a copy of ISOBMF sample entry)
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | displayFlags | |
s8 | horiz_justif | |
s8 | vert_justif | |
u32 | back_color | |
GF_BoxRecord | default_pos | |
GF_StyleRecord | default_style | |
u32 | font_count | |
GF_FontRecord * | fonts | |
u8 | sample_index |
struct GF_TextConfig |
Text stream descriptor, internal only
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u8 | Base3GPPFormat | |
u8 | MPEGExtendedFormat | |
u8 | profileLevel | |
u32 | timescale | |
u8 | sampleDescriptionFlags | |
s16 | layer | |
u16 | text_width | |
u16 | text_height | |
u8 | nb_compatible_formats | |
u8 | compatible_formats[20] | |
GF_List * | sample_descriptions | |
Bool | has_vid_info | |
u16 | video_width | |
u16 | video_height | |
s16 | horiz_offset | |
s16 | vert_offset |
struct GF_GenericSubtitleSampleDescriptor |
generic subtitle sample description descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u8 | sample_index |
struct GF_GenericSubtitleConfig |
struct GF_MuxInfo |
MuxInfo descriptor - parsing only, stored in ESD:extDescr
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR char * | file_name | |
u32 | GroupID | |
char * | streamFormat | |
s32 | startTime | |
u32 | duration | |
char * | textNode | |
char * | fontNode | |
Double | frame_rate | |
u32 | import_flags | |
Bool | delete_file | |
u32 | carousel_period_plus_one | |
u16 | aggregate_on_esid | |
char * | src_url |
struct GF_UIConfig |
UI config descriptor for InputSensor streams
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR char * | deviceName | |
char | termChar | |
char | delChar | |
u8 * | ui_data | |
u32 | ui_data_length |
struct GF_LASERConfig |
LASERConfig - parsing only, STORED IN ESD:DCD:DSI
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u8 | profile | |
u8 | level | |
u8 | pointsCodec | |
u8 | pathComponents | |
u8 | fullRequestHost | |
u16 | time_resolution | |
u8 | colorComponentBits | |
s8 | resolution | |
u8 | coord_bits | |
u8 | scale_bits_minus_coord_bits | |
u8 | newSceneIndicator | |
u8 | extensionIDBits | |
Bool | force_string_ids |
struct GF_QoS_Descriptor |
QoS Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u8 | predefined | |
GF_List * | QoS_Qualifiers |
struct GF_QoS_Default |
QoS Default Qualifier
struct GF_QoS_MaxDelay |
QoS Max Delay Qualifier
Data Fields | ||
---|---|---|
QOS_BASE_QUALIFIER u32 | MaxDelay |
struct GF_QoS_PrefMaxDelay |
QoS preferred Max Delay Qualifier
Data Fields | ||
---|---|---|
QOS_BASE_QUALIFIER u32 | PrefMaxDelay |
struct GF_QoS_LossProb |
QoS loss probability Qualifier
Data Fields | ||
---|---|---|
QOS_BASE_QUALIFIER Float | LossProb |
struct GF_QoS_MaxGapLoss |
QoS Max Gap Loss Qualifier
Data Fields | ||
---|---|---|
QOS_BASE_QUALIFIER u32 | MaxGapLoss |
struct GF_QoS_MaxAUSize |
QoS Max AU Size Qualifier
Data Fields | ||
---|---|---|
QOS_BASE_QUALIFIER u32 | MaxAUSize |
struct GF_QoS_AvgAUSize |
QoS Average AU Size Qualifier
Data Fields | ||
---|---|---|
QOS_BASE_QUALIFIER u32 | AvgAUSize |
struct GF_QoS_MaxAURate |
QoS AU rate Qualifier
Data Fields | ||
---|---|---|
QOS_BASE_QUALIFIER u32 | MaxAURate |
struct GF_QoS_Private |
QoS private Qualifier
Data Fields | ||
---|---|---|
QOS_BASE_QUALIFIER u32 | DataLength |
max size class is 2^28 - 1 |
u8 * | Data |
struct GF_Registration |
Registration Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | formatIdentifier | |
u32 | dataLength | |
u8 * | additionalIdentificationInfo |
struct GF_Language |
Language Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | langCode | |
char * | full_lang_code |
struct GF_ESD |
Elementary Stream Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u16 | ESID | |
u16 | OCRESID | |
u16 | dependsOnESID | |
u8 | streamPriority | |
char * | URLString | |
GF_DecoderConfig * | decoderConfig | |
GF_SLConfig * | slConfig | |
GF_IPIPtr * | ipiPtr | |
GF_QoS_Descriptor * | qos | |
GF_Registration * | RegDescriptor | |
GF_Language * | langDesc |
0 or 1 lang desc |
GF_List * | IPIDataSet | |
GF_List * | IPMPDescriptorPointers | |
GF_List * | extensionDescriptors | |
Bool | has_scalable_layers |
1 if this stream has scalable layers, 0 otherwise (GPAC internals) |
const char * | service_url |
service URL (GPAC internals) |
struct GF_AuxVideoDescriptor |
struct GF_CCDescriptor |
Content Classification Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | classificationEntity | |
u16 | classificationTable | |
u32 | dataLength | |
char * | contentClassificationData |
struct GF_KeyWordItem |
this structure is used in GF_KeyWord
Data Fields | ||
---|---|---|
char * | keyWord |
struct GF_KeyWord |
Key Word Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | languageCode | |
u8 | isUTF8 | |
GF_List * | keyWordsList |
struct GF_Rating |
Rating Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | ratingEntity | |
u16 | ratingCriteria | |
u32 | infoLength | |
char * | ratingInfo |
struct GF_ShortTextual |
Short Textual Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | langCode | |
u8 | isUTF8 | |
char * | eventName | |
char * | eventText |
struct GF_ETD_ItemText |
this structure is used in GF_ExpandedTextual
Data Fields | ||
---|---|---|
char * | text |
struct GF_ExpandedTextual |
Expanded Textual Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u32 | langCode | |
u8 | isUTF8 | |
GF_List * | itemDescriptionList | |
GF_List * | itemTextList | |
char * | NonItemText |
struct GF_ContentCreatorInfo |
this structure is used in GF_CC_Name
Data Fields | ||
---|---|---|
u32 | langCode | |
u8 | isUTF8 | |
char * | contentCreatorName |
struct GF_CC_Name |
Content Creator Name GF_Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR GF_List * | ContentCreators |
struct GF_CC_Date |
Content Creation Date Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR char | contentCreationDate[5] |
struct GF_OCICreator_item |
this structure is used in GF_OCICreators
Data Fields | ||
---|---|---|
u32 | langCode | |
u8 | isUTF8 | |
char * | OCICreatorName |
struct GF_OCICreators |
OCI Creator Name Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR GF_List * | OCICreators |
struct GF_OCI_Data |
OCI Creation Date Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR char | OCICreationDate[5] |
struct GF_SmpteParam |
this structure is used in GF_SMPTECamera
Data Fields | ||
---|---|---|
u8 | paramID | |
u32 | param |
struct GF_SMPTECamera |
Smpte Camera Position Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u8 | cameraID | |
GF_List * | ParamList |
struct GF_PLExt |
struct GF_PL_IDX |
Profile Level Indication Index Descriptor
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR u8 | profileLevelIndicationIndex |
struct GF_NALUFFParam |
struct GF_AVCConfig |
AVC config record - not a real MPEG-4 descriptor
Data Fields | ||
---|---|---|
u8 | configurationVersion | |
u8 | AVCProfileIndication | |
u8 | profile_compatibility | |
u8 | AVCLevelIndication | |
u8 | nal_unit_size | |
GF_List * | sequenceParameterSets | |
GF_List * | pictureParameterSets | |
u8 | complete_representation | |
u8 | chroma_format | |
u8 | luma_bit_depth | |
u8 | chroma_bit_depth | |
GF_List * | sequenceParameterSetExtensions | |
Bool | write_annex_b |
struct GF_NALUFFParamArray |
struct GF_HEVCConfig |
HEVC config record - not a real MPEG-4 descriptor
Data Fields | ||
---|---|---|
u8 | configurationVersion | |
u8 | profile_space | |
u8 | tier_flag | |
u8 | profile_idc | |
u32 | general_profile_compatibility_flags | |
u8 | progressive_source_flag | |
u8 | interlaced_source_flag | |
u8 | non_packed_constraint_flag | |
u8 | frame_only_constraint_flag | |
u64 | constraint_indicator_flags | |
u8 | level_idc | |
u16 | min_spatial_segmentation_idc | |
u8 | parallelismType | |
u8 | chromaFormat | |
u8 | luma_bit_depth | |
u8 | chroma_bit_depth | |
u16 | avgFrameRate | |
u8 | constantFrameRate | |
u8 | numTemporalLayers | |
u8 | temporalIdNested | |
u8 | nal_unit_size | |
GF_List * | param_array | |
Bool | complete_representation | |
Bool | is_lhvc | |
Bool | write_annex_b |
struct GF_VVCConfig |
VVC config record - not a real MPEG-4 descriptor
Data Fields | ||
---|---|---|
u8 | general_profile_idc | |
u8 | general_tier_flag | |
u8 | general_sub_profile_idc | |
u8 | num_constraint_info | |
u8 * | general_constraint_info | |
u8 | general_level_idc | |
u8 | ptl_sublayer_present_mask | |
u8 | sublayer_level_idc[8] | |
u8 | chroma_format | |
u8 | bit_depth | |
u16 | avgFrameRate | |
u8 | constantFrameRate | |
u8 | numTemporalLayers | |
u16 | maxPictureWidth | |
u16 | maxPictureHeight | |
Bool | ptl_present | |
Bool | ptl_frame_only_constraint | |
Bool | ptl_multilayer_enabled | |
u8 | num_sub_profiles | |
u32 * | sub_profiles_idc | |
u16 | ols_idx | |
u8 | nal_unit_size | |
GF_List * | param_array | |
Bool | write_annex_b |
struct GF_AV1_OBUArrayEntry |
struct GF_AV1Config |
AV1 config record - not a real MPEG-4 descriptor
Data Fields | ||
---|---|---|
Bool | marker | |
u8 | version | |
u8 | seq_profile | |
u8 | seq_level_idx_0 | |
Bool | seq_tier_0 | |
Bool | high_bitdepth | |
Bool | twelve_bit | |
Bool | monochrome | |
Bool | chroma_subsampling_x | |
Bool | chroma_subsampling_y | |
u8 | chroma_sample_position | |
Bool | initial_presentation_delay_present | |
u8 | initial_presentation_delay_minus_one | |
GF_List * | obu_array |
struct GF_VPConfig |
VP8-9 config vpcC
Data Fields | ||
---|---|---|
u8 | profile | |
u8 | level | |
u8 | bit_depth | |
u8 | chroma_subsampling | |
Bool | video_fullRange_flag | |
u8 | colour_primaries | |
u8 | transfer_characteristics | |
u8 | matrix_coefficients | |
u16 | codec_initdata_size | |
u8 * | codec_initdata | |
int | RefFrameWidth[VP9_NUM_REF_FRAMES] | |
int | RefFrameHeight[VP9_NUM_REF_FRAMES] |
struct GF_DOVIDecoderConfigurationRecord |
struct GF_Segment |
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR Double | startTime | |
Double | Duration | |
char * | SegmentName |
struct GF_MediaTime |
Data Fields | ||
---|---|---|
BASE_DESCRIPTOR Double | mediaTimeStamp |
struct GF_ODCom |
MPEG-4 SYSTEMS OD - (abstract) base command.
struct GF_BaseODCom |
MPEG-4 SYSTEMS OD - default command
Data Fields | ||
---|---|---|
BASE_OD_COMMAND u32 | dataSize | |
u8 * | data |
struct GF_ODUpdate |
MPEG-4 SYSTEMS OD - Object Descriptor Update NB: the list can contain OD or IOD, except internally in the File Format (only MP4_OD)
Data Fields | ||
---|---|---|
BASE_OD_COMMAND GF_List * | objectDescriptors |
struct GF_ODRemove |
MPEG-4 SYSTEMS OD - Object Descriptor Remove
Data Fields | ||
---|---|---|
BASE_OD_COMMAND u32 | NbODs | |
u16 * | OD_ID |
struct GF_ESDUpdate |
MPEG-4 SYSTEMS OD - Elementary Stream Descriptor Update
Data Fields | ||
---|---|---|
BASE_OD_COMMAND u16 | ODID | |
GF_List * | ESDescriptors |
struct GF_ESDRemove |
MPEG-4 SYSTEMS OD - Elementary Stream Descriptor Remove
Data Fields | ||
---|---|---|
BASE_OD_COMMAND u16 | ODID | |
u32 | NbESDs | |
u16 * | ES_ID |
struct GF_IPMPUpdate |
MPEG-4 SYSTEMS OD - IPMP Descriptor Update
Data Fields | ||
---|---|---|
BASE_OD_COMMAND GF_List * | IPMPDescList |
struct GF_IPMPRemove |
MPEG-4 SYSTEMS OD - IPMP Descriptor Remove
Data Fields | ||
---|---|---|
BASE_OD_COMMAND u32 | NbIPMPDs | |
u8 * | IPMPDescID |
struct GF_ODCodec |
struct GF_AC3StreamInfo |
AC-3 and E-AC3 stream info
Data Fields | ||
---|---|---|
u8 | fscod |
AC3 fs code |
u8 | bsid |
AC3 bsid code |
u8 | bsmod |
AC3 bs mode |
u8 | acmod |
AC3 ac mode |
u8 | lfon |
LF on |
u8 | asvc |
asvc mode, only for EC3 |
u8 | channels |
number of channels, including lfe and surround channels |
u8 | surround_channels |
number of surround channels |
u8 | nb_dep_sub |
number of dependent substreams, only for EC3 |
u16 | chan_loc |
channel locations for dependent substreams, only for EC3 |
struct GF_AC3Config |
AC3 config record - see dolby specs ETSI TS 102 366
Data Fields | ||
---|---|---|
GF_AC3StreamInfo | streams[8] |
streams info - for AC3, always the first |
u8 | nb_streams |
number of independent streams : 1 for AC3 max 8 for EC3 |
u8 | is_ec3 |
indicates if frame is ec3 |
u16 | brcode |
if AC3 this is the bitrate code , otherwise cumulated data rate of EAC3 streams in kbps |
u32 | sample_rate |
sample rate - all additional streams shall have the same sample rate as first independent stream in EC3 |
u32 | framesize |
size of the complete frame |
u8 | atmos_ec3_ext |
atmos EC3 flag |
u8 | complexity_index_type |
atmos complexity index |
struct GF_OpusConfig |
Opus decoder config
Data Fields | ||
---|---|---|
u8 | version | version (should be 1) |
u8 | OutputChannelCount | same value as the Output Channel Count field in the identification header defined in Ogg Opus [3] |
u16 | PreSkip | The value of the PreSkip field shall be at least 80 milliseconds' worth of PCM samples even when removing any number of Opus samples which may or may not contain the priming samples. The PreSkip field is not used for discarding the priming samples at the whole playback at all since it is informative only, and that task falls on the Edit List Box. |
u32 | InputSampleRate | The InputSampleRate field shall be set to the same value as the Input Sample Rate field in the identification header defined in Ogg Opus. |
s16 | OutputGain | The OutputGain field shall be set to the same value as the Output Gain field in the identification header define in Ogg Opus [3]. Note that the value is stored as 8.8 fixed-point. |
u8 | ChannelMappingFamily | The ChannelMappingFamily field shall be set to the same value as the Channel Mapping Family field in the identification header defined in Ogg Opus [3]. Note that the value 255 may be used for an alternative to map channels by ISO Base Media native mapping. The details are described in 4.5.1. |
u8 | StreamCount | The StreamCount field shall be set to the same value as the Stream Count field in the identification header defined in Ogg Opus [3]. |
u8 | CoupledCount | The CoupledCount field shall be set to the same value as the Coupled Count field in the identification header defined in Ogg Opus [3]. |
u8 | ChannelMapping[255] | The ChannelMapping field shall be set to the same octet string as Channel Mapping field in the identi- fication header defined in Ogg Opus [3]. |
struct GF_DTSConfig |
struct GF_UDTSConfig |
UDTS audio configuration
Data Fields | ||
---|---|---|
u8 | DecoderProfileCode | |
u8 | FrameDurationCode | |
u8 | MaxPayloadCode | |
u8 | NumPresentationsCode | |
u32 | ChannelMask | |
u8 | BaseSamplingFrequencyCode | |
u8 | SampleRateMod | |
u8 | RepresentationType | |
u8 | StreamIndex | |
u8 | ExpansionBoxPresent | |
u8 | IDTagPresent[32] | |
u8 * | PresentationIDTagData | |
u16 | PresentationIDTagDataSize | |
u8 * | ExpansionBoxData | |
u32 | ExpansionBoxDataSize |
struct GF_SLConfig |
This section documents the MPEG-4 OD Sync Layer used in GPAC.
Data Fields | ||
---|---|---|
u8 | tag | |
u8 | predefined | |
u8 | useAccessUnitStartFlag | |
u8 | useAccessUnitEndFlag | |
u8 | useRandomAccessPointFlag | |
u8 | hasRandomAccessUnitsOnlyFlag | |
u8 | usePaddingFlag | |
u8 | useTimestampsFlag | |
u8 | useIdleFlag | |
u8 | durationFlag | |
u32 | timestampResolution | |
u32 | OCRResolution | |
u8 | timestampLength | |
u8 | OCRLength | |
u8 | AULength | |
u8 | instantBitrateLength | |
u8 | degradationPriorityLength | |
u8 | AUSeqNumLength | |
u8 | packetSeqNumLength | |
u32 | timeScale | |
u16 | AUDuration | |
u16 | CUDuration | |
u64 | startDTS | |
u64 | startCTS | |
Bool | no_dts_signaling | |
u32 | carousel_version |
#define BASE_DESCRIPTOR u8 tag; |
macro defining a base descriptor
#define GF_IPMPX_BASE |
#define MAX_IPMP_ALT_TOOLS 20 |
IPMPX max number of tools
#define QOS_BASE_QUALIFIER |
macro defining a base QOS qualifier
#define VP9_NUM_REF_FRAMES 8 |
max number of reference frames for VP9
#define BASE_OD_COMMAND u8 tag; |
macro defining a base OD command
typedef GF_NALUFFParam GF_AVCConfigSlot |
pre v1.1 naming of NALU config record
typedef GF_NALUFFParamArray GF_HEVCParamArray |
pre v1.1 naming of NALU param array
anonymous enum |
Tags for MPEG-4 systems descriptors
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
display flags for text
anonymous enum |
anonymous enum |
enum GF_ODF_FieldType |
field type for OD/QoS/IPMPX/etc
GF_ODCodec* gf_odf_codec_new | ( | ) |
OD codec construction
void gf_odf_codec_del | ( | GF_ODCodec * | codec | ) |
OD codec destruction
codec | OD codec to destroy |
GF_Err gf_odf_codec_add_com | ( | GF_ODCodec * | codec, |
GF_ODCom * | command | ||
) |
add a command to the codec command list.
codec | target codec |
command | command to add |
GF_Err gf_odf_codec_encode | ( | GF_ODCodec * | codec, |
u32 | cleanup_type | ||
) |
encode the current command list.
codec | target codec |
cleanup_type | specifies what to do with the command after encoding. The following values are accepted: 0: commands are removed from the list but not destroyed 1: commands are removed from the list and destroyed 2: commands are kept in the list and not destroyed |
GF_Err gf_odf_codec_get_au | ( | GF_ODCodec * | codec, |
u8 ** | outAU, | ||
u32 * | au_length | ||
) |
get the encoded AU.
codec | target codec |
outAU | output buffer allocated by the codec, user is responsible of freeing the allocated space |
au_length | size of the AU (allocated buffer) |
GF_Err gf_odf_codec_set_au | ( | GF_ODCodec * | codec, |
const u8 * | au, | ||
u32 | au_length | ||
) |
set the encoded AU to the codec
codec | target codec |
au | target AU to decode |
au_length | size in bytes of the AU to decode |
GF_Err gf_odf_codec_decode | ( | GF_ODCodec * | codec | ) |
decode the previously set-up AU
codec | target codec |
GF_ODCom* gf_odf_codec_get_com | ( | GF_ODCodec * | codec | ) |
get the first OD command in the list. Once called, the command is removed from the command list. Return NULL when commandList is empty
codec | target codec |
GF_Err gf_odf_codec_apply_com | ( | GF_ODCodec * | codec, |
GF_ODCom * | command | ||
) |
apply a command to the codec command list. Command is duplicated if needed This is used for state maintenance and RAP generation.
codec | target codec |
command | the command to apply |
MPEG-4 SYSTEMS OD Command Creation
tag | type of command to create |
MPEG-4 SYSTEMS OD Command Destruction
com | the command to delete. Pointer is set back to NULL |
GF_Descriptor* gf_odf_desc_new | ( | u8 | tag | ) |
Descriptors Creation
tag | type of descriptor to create |
void gf_odf_desc_del | ( | GF_Descriptor * | desc | ) |
Descriptors Destruction
desc | the descriptor to destroy |
helper for building a preformatted GF_ESD with decoderConfig, decoderSpecificInfo with no data and SLConfig descriptor with predefined
sl_predefined | type of predefined sl config |
GF_BIFSConfig* gf_odf_get_bifs_config | ( | GF_DefaultDescriptor * | dsi, |
u32 | codecid | ||
) |
special function for authoring - convert DSI to BIFSConfig
dsi | BIFS decoder specific info |
codecid | BIFS codecid/object type indication |
GF_Err gf_odf_get_laser_config | ( | GF_DefaultDescriptor * | dsi, |
GF_LASERConfig * | cfg | ||
) |
special function for authoring - convert DSI to LASERConfig
dsi | LASER decoder specific info |
cfg | the LASER config object to be filled |
GF_Err gf_odf_get_text_config | ( | u8 * | data, |
u32 | data_len, | ||
u32 | codecid, | ||
GF_TextConfig * | cfg | ||
) |
special function for authoring - convert DSI to TextConfig
data | TEXT decoder config block |
data_len | TEXT decoder config block size |
codecid | TEXT codecid/object type indication |
cfg | the text config object to be filled |
GF_Err gf_odf_encode_ui_config | ( | GF_UIConfig * | cfg, |
GF_DefaultDescriptor ** | out_dsi | ||
) |
converts UIConfig to dsi - does not destroy input descr but does create output one
cfg | the UI config object |
out_dsi | the decoder specific info created. It is the caller responsibility of freeing it |
GF_AVCConfig* gf_odf_avc_cfg_new | ( | ) |
AVC config constructor
void gf_odf_avc_cfg_del | ( | GF_AVCConfig * | cfg | ) |
AVC config destructor
cfg | the AVC config to destroy |
GF_AVCConfig* gf_odf_avc_cfg_read | ( | u8 * | dsi, |
u32 | dsi_size | ||
) |
gets GF_AVCConfig from MPEG-4 DSI
dsi | encoded AVC decoder specific info |
dsi_size | encoded AVC decoder specific info size |
GF_Err gf_odf_avc_cfg_write | ( | GF_AVCConfig * | cfg, |
u8 ** | outData, | ||
u32 * | outSize | ||
) |
writes GF_AVCConfig
cfg | the AVC config to encode |
outData | encoded dsi buffer - it is the caller responsibility to free this |
outSize | encoded dsi buffer size |
GF_Err gf_odf_avc_cfg_write_bs | ( | GF_AVCConfig * | cfg, |
GF_BitStream * | bs | ||
) |
writes GF_AVCConfig to bitstream
cfg | the AVC config to encode |
bs | bitstream in WRITE mode |
GF_Err gf_odf_tx3g_write | ( | GF_TextSampleDescriptor * | cfg, |
u8 ** | outData, | ||
u32 * | outSize | ||
) |
writes GF_TextSampleDescriptor
cfg | the text config to encode |
outData | address of output buffer (internal alloc, user to free it) |
outSize | size of the allocated output |
GF_TextSampleDescriptor* gf_odf_tx3g_read | ( | u8 * | dsi, |
u32 | dsi_size | ||
) |
gets GF_TextSampleDescriptor from buffer
dsi | encoded text sample description |
dsi_size | size of encoded description |
GF_HEVCConfig* gf_odf_hevc_cfg_new | ( | ) |
HEVC config constructor
void gf_odf_hevc_cfg_del | ( | GF_HEVCConfig * | cfg | ) |
HEVC config destructor
cfg | the HEVC config to destroy |
GF_Err gf_odf_hevc_cfg_write_bs | ( | GF_HEVCConfig * | cfg, |
GF_BitStream * | bs | ||
) |
writes GF_HEVCConfig as MPEG-4 DSI in a bitstream object
cfg | the HEVC config to encode |
bs | output bitstream object in which the config is written |
GF_Err gf_odf_hevc_cfg_write | ( | GF_HEVCConfig * | cfg, |
u8 ** | outData, | ||
u32 * | outSize | ||
) |
writes GF_HEVCConfig as MPEG-4 DSI
cfg | the HEVC config to encode |
outData | encoded dsi buffer - it is the caller responsibility to free this |
outSize | encoded dsi buffer size |
GF_HEVCConfig* gf_odf_hevc_cfg_read_bs | ( | GF_BitStream * | bs, |
Bool | is_lhvc | ||
) |
gets GF_HEVCConfig from bitstream MPEG-4 DSI
bs | bitstream containing the encoded HEVC decoder specific info |
is_lhvc | if GF_TRUE, indicates if the dsi is LHVC |
GF_HEVCConfig* gf_odf_hevc_cfg_read | ( | u8 * | dsi, |
u32 | dsi_size, | ||
Bool | is_lhvc | ||
) |
gets GF_HEVCConfig from MPEG-4 DSI
dsi | encoded HEVC decoder specific info |
dsi_size | encoded HEVC decoder specific info size |
is_lhvc | if GF_TRUE, indicates if the dsi is LHVC |
GF_VVCConfig* gf_odf_vvc_cfg_new | ( | ) |
VVC config constructor
void gf_odf_vvc_cfg_del | ( | GF_VVCConfig * | cfg | ) |
VVC config destructor
cfg | the VVC config to destroy |
GF_Err gf_odf_vvc_cfg_write_bs | ( | GF_VVCConfig * | cfg, |
GF_BitStream * | bs | ||
) |
writes GF_VVCConfig as MPEG-4 DSI in a bitstream object
cfg | the VVC config to encode |
bs | output bitstream object in which the config is written |
GF_Err gf_odf_vvc_cfg_write | ( | GF_VVCConfig * | cfg, |
u8 ** | outData, | ||
u32 * | outSize | ||
) |
writes GF_VVCConfig as MPEG-4 DSI
cfg | the VVC config to encode |
outData | encoded dsi buffer - it is the caller responsibility to free this |
outSize | encoded dsi buffer size |
GF_VVCConfig* gf_odf_vvc_cfg_read_bs | ( | GF_BitStream * | bs | ) |
gets GF_VVCConfig from bitstream MPEG-4 DSI
bs | bitstream containing the encoded VVC decoder specific info |
GF_VVCConfig* gf_odf_vvc_cfg_read | ( | u8 * | dsi, |
u32 | dsi_size | ||
) |
gets GF_VVCConfig from MPEG-4 DSI
dsi | encoded VVC decoder specific info |
dsi_size | encoded VVC decoder specific info size |
GF_AV1Config* gf_odf_av1_cfg_new | ( | ) |
AV1 config constructor
void gf_odf_av1_cfg_del | ( | GF_AV1Config * | cfg | ) |
AV1 config destructor
cfg | the AV1 config to destroy |
GF_Err gf_odf_av1_cfg_write | ( | GF_AV1Config * | cfg, |
u8 ** | outData, | ||
u32 * | outSize | ||
) |
writes AV1 config to buffer
cfg | the AV1 config to write |
outData | set to an allocated encoded buffer - it is the caller responsibility to free this |
outSize | set to the encoded dsi buffer size |
GF_Err gf_odf_av1_cfg_write_bs | ( | GF_AV1Config * | cfg, |
GF_BitStream * | bs | ||
) |
writes AV1 config to bitstream
cfg | the AV1 config to write |
bs | bitstream containing the encoded AV1 decoder specific info |
GF_AV1Config* gf_odf_av1_cfg_read_bs | ( | GF_BitStream * | bs | ) |
gets AV1 config from bitstream
bs | bitstream containing the encoded AV1 decoder specific info |
GF_AV1Config* gf_odf_av1_cfg_read_bs_size | ( | GF_BitStream * | bs, |
u32 | size | ||
) |
gets AV1 config to bitstream
bs | bitstream containing the encoded AV1 decoder specific info |
size | size of encoded structure in the bitstream. A value of 0 means "until the end", equivalent to gf_odf_av1_cfg_read_bs |
GF_AV1Config* gf_odf_av1_cfg_read | ( | u8 * | dsi, |
u32 | dsi_size | ||
) |
gets AV1 config from buffer
dsi | encoded AV1 config |
dsi_size | size of encoded AV1 config |
GF_VPConfig* gf_odf_vp_cfg_new | ( | ) |
creates a VPx (VP8, VP9) descriptor
void gf_odf_vp_cfg_del | ( | GF_VPConfig * | cfg | ) |
destroys an VPx config
cfg | the VPx config to destroy |
GF_Err gf_odf_vp_cfg_write_bs | ( | GF_VPConfig * | cfg, |
GF_BitStream * | bs, | ||
Bool | is_v0 | ||
) |
writes VPx config to bitstream
cfg | the VPx config to write |
bs | bitstream containing the encoded VPx decoder specific info |
is_v0 | if GF_TRUE, this is a version 0 config |
GF_Err gf_odf_vp_cfg_write | ( | GF_VPConfig * | cfg, |
u8 ** | outData, | ||
u32 * | outSize, | ||
Bool | is_v0 | ||
) |
writes VPx config to buffer
cfg | the VPx config to write |
outData | set to an allocated encoded buffer - it is the caller responsibility to free this |
outSize | set to the encoded buffer size |
is_v0 | if GF_TRUE, this is a version 0 config |
GF_VPConfig* gf_odf_vp_cfg_read_bs | ( | GF_BitStream * | bs, |
Bool | is_v0 | ||
) |
gets VPx config to bitstream
bs | bitstream containing the encoded VPx decoder specific info |
is_v0 | if GF_TRUE, this is a version 0 config |
GF_VPConfig* gf_odf_vp_cfg_read | ( | u8 * | dsi, |
u32 | dsi_size | ||
) |
gets VPx config from buffer
dsi | encoded VPx config |
dsi_size | size of encoded VPx config |
GF_DOVIDecoderConfigurationRecord* gf_odf_dovi_cfg_read_bs | ( | GF_BitStream * | bs | ) |
gets DolbyVision config to bitstream
bs | bitstream containing the encoded VPx decoder specific info |
GF_Err gf_odf_dovi_cfg_write_bs | ( | GF_DOVIDecoderConfigurationRecord * | cfg, |
GF_BitStream * | bs | ||
) |
writes DolbyVision config to buffer
cfg | the DolbyVision config to write |
bs | the bitstream object in which to write the config |
void gf_odf_dovi_cfg_del | ( | GF_DOVIDecoderConfigurationRecord * | cfg | ) |
destroys a DolbyVision config
cfg | the DolbyVision config to destroy |
GF_Err gf_odf_ac3_cfg_write_bs | ( | GF_AC3Config * | cfg, |
GF_BitStream * | bs | ||
) |
writes Dolby AC3/EAC3 config to buffer
cfg | the Dolby AC3 config to write |
bs | the bitstream object in which to write the config |
GF_Err gf_odf_ac3_cfg_write | ( | GF_AC3Config * | cfg, |
u8 ** | data, | ||
u32 * | size | ||
) |
writes Dolby AC3/EAC3 config to buffer
cfg | the Dolby AC3 config to write |
data | set to created output buffer, must be freed by caller |
size | set to created output buffer size |
GF_Err gf_odf_ac3_config_parse | ( | u8 * | dsi, |
u32 | dsi_len, | ||
Bool | is_ec3, | ||
GF_AC3Config * | cfg | ||
) |
parses an AC3/EC3 sample description
dsi | the encoded config |
dsi_len | the encoded config size |
is_ec3 | indicates that the encoded config is for an EC3 track |
cfg | the AC3/EC3 config to fill |
GF_Err gf_odf_ac3_config_parse_bs | ( | GF_BitStream * | bs, |
Bool | is_ec3, | ||
GF_AC3Config * | cfg | ||
) |
parses an AC3/EC3 sample description from bitstream
bs | the bitstream object |
is_ec3 | indicates that the encoded config is for an EC3 track |
cfg | the AC3/EC3 config to fill |
GF_Err gf_odf_opus_cfg_write_bs | ( | GF_OpusConfig * | cfg, |
GF_BitStream * | bs | ||
) |
writes Opus config to buffer
cfg | the Opus config to write |
bs | the bitstream object in which to write the config |
GF_Err gf_odf_opus_cfg_write | ( | GF_OpusConfig * | cfg, |
u8 ** | data, | ||
u32 * | size | ||
) |
writes Opus config to buffer
cfg | the Opus config to write |
data | set to created output buffer, must be freed by caller |
size | set to created output buffer size |
GF_Err gf_odf_opus_cfg_parse | ( | u8 * | dsi, |
u32 | dsi_len, | ||
GF_OpusConfig * | cfg | ||
) |
parses an Opus sample description
dsi | the encoded config |
dsi_len | the encoded config size |
cfg | the Opus config to fill |
GF_Err gf_odf_opus_cfg_parse_bs | ( | GF_BitStream * | bs, |
GF_OpusConfig * | cfg | ||
) |
parses an Opus sample description from bitstream
bs | the bitstream object |
cfg | the Opus config to fill |
GF_Err gf_odf_desc_list_del | ( | GF_List * | descList | ) |
destroy the descriptors in a list but not the list
descList | descriptor list to destroy |
GF_Err gf_odf_desc_read | ( | u8 * | raw_desc, |
u32 | descSize, | ||
GF_Descriptor ** | outDesc | ||
) |
use this function to decode a standalone descriptor the raw descriptor MUST be formatted with tag and size field!!! a new desc is created and you must delete it when done
raw_desc | encoded descriptor to decode |
descSize | size of descriptor to decode |
outDesc | output decoded descriptor - it is the caller responsibility to free this |
GF_Err gf_odf_desc_write | ( | GF_Descriptor * | desc, |
u8 ** | outEncDesc, | ||
u32 * | outSize | ||
) |
use this function to encode a standalone descriptor the desc will be formatted with tag and size field the output buffer is allocated and you must delete it when done
desc | descriptor to encode |
outEncDesc | output encoded descriptor - it is the caller responsibility to free this |
outSize | size of encoded descriptor |
GF_Err gf_odf_desc_write_bs | ( | GF_Descriptor * | desc, |
GF_BitStream * | bs | ||
) |
use this function to encode a standalone descriptor in a bitstream object the desc will be formatted with tag and size field
desc | descriptor to encode |
bs | the bitstream object in write mode |
u32 gf_odf_desc_size | ( | GF_Descriptor * | desc | ) |
use this function to get the size of a standalone descriptor (including tag and size fields)
desc | descriptor to encode |
GF_Err gf_odf_desc_copy | ( | GF_Descriptor * | inDesc, |
GF_Descriptor ** | outDesc | ||
) |
duplicate descriptors
inDesc | descriptor to copy |
outDesc | copied descriptor - it is the caller responsibility to free this |
GF_Err gf_odf_desc_add_desc | ( | GF_Descriptor * | parentDesc, |
GF_Descriptor * | newDesc | ||
) |
Adds a descriptor to a parent one. Handles internally what desc can be added to another desc and adds it. NO DUPLICATION of the descriptor, so once a desc is added to its parent, destroying the parent WILL DESTROY this descriptor
parentDesc | parent descriptor |
newDesc | descriptor to add to parent |
Since IPMP V2, we introduce a new set of functions to read / write a list of descriptors that have no containers (a bit like an OD command, but for descriptors) This is useful for IPMPv2 DecoderSpecificInfo which contains a set of IPMP_Declarators As it could be used for other purposes we keep it generic you must create the list yourself, the functions just encode/decode from/to the list
uncompress an encoded list of descriptors. You must pass an empty GF_List structure to know exactly what was in the buffer
raw_list | encoded list of descriptors |
raw_size | size of the encoded list of descriptors |
descList | list in which the decoded descriptors will be placed |
compress all descriptors in the list into a single buffer. The buffer is allocated by the lib and must be destroyed by your app you must pass (outEncList != NULL && *outEncList == NULL)
descList | list of descriptors to be encoded |
outEncList | buffer of encoded descriptors |
outSize | size of buffer of encoded descriptors |
returns size of encoded desc list
descList | list of descriptors to be encoded |
outSize | size of buffer of encoded descriptors |
Dumps an OD AU
com | OD command to dump |
trace | destination file for dumping |
indent | number of spaces to use as base index |
XMTDump | if GF_TRUE dumpos as XMT, otherwise as BT |
GF_Err gf_odf_dump_desc | ( | GF_Descriptor * | desc, |
FILE * | trace, | ||
u32 | indent, | ||
Bool | XMTDump | ||
) |
Dumps an OD Descriptor
desc | descriptor to dump |
trace | destination file for dumping |
indent | number of spaces to use as base index |
XMTDump | if GF_TRUE dumpos as XMT, otherwise as BT |
Dumps an OD Descriptor
commandList | descriptor list to dump |
trace | destination file for dumping |
indent | number of spaces to use as base index |
XMTDump | if GF_TRUE dumpos as XMT, otherwise as BT |
u32 gf_odf_get_tag_by_name | ( | char * | descName | ) |
Gets descriptor tag by name
descName | target descriptor name |
GF_ODF_FieldType gf_odf_get_field_type | ( | GF_Descriptor * | desc, |
char * | fieldName | ||
) |
Gets ODF field type by name
desc | target descriptor |
fieldName | descriptor field name |
GF_Err gf_odf_set_field | ( | GF_Descriptor * | desc, |
char * | fieldName, | ||
char * | val | ||
) |
Set non-descriptor field value - value string shall be presented without ' or " characters
desc | target descriptor |
fieldName | descriptor field name |
val | field value to parse |