![]() |
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 |
MPEG-4 Object Descriptor Framework.
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 |
MPEG-4 Object Descriptor Framework Sync Layer.
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 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 |