libgpac
Documentation of the core library of GPAC

MPEG-4 Object Descriptor Framework. More...

+ Collaboration diagram for MPEG-4 OD:

Data Structures

struct  GF_Descriptor
 
struct  GF_DefaultDescriptor
 
struct  GF_IPMP_ToolList
 
struct  GF_ObjectDescriptor
 
struct  GF_InitialObjectDescriptor
 
struct  GF_IsomObjectDescriptor
 
struct  GF_IsomInitialObjectDescriptor
 
struct  GF_ES_ID_Inc
 
struct  GF_ES_ID_Ref
 
struct  GF_DecoderConfig
 
struct  GF_CIDesc
 
struct  GF_SCIDesc
 
struct  GF_IPIPtr
 
struct  GF_IPMPPtr
 
struct  GF_GF_IPMPX_Base
 
struct  GF_IPMP_Descriptor
 
struct  GF_IPMP_Tool
 
struct  GF_ElementaryMask
 
struct  GF_BIFSConfig
 
struct  GF_StyleRecord
 
struct  GF_FontRecord
 
struct  GF_BoxRecord
 
struct  GF_TextSampleDescriptor
 
struct  GF_TextConfig
 
struct  GF_GenericSubtitleSampleDescriptor
 
struct  GF_GenericSubtitleConfig
 
struct  GF_MuxInfo
 
struct  GF_UIConfig
 
struct  GF_LASERConfig
 
struct  GF_QoS_Descriptor
 
struct  GF_QoS_Default
 
struct  GF_QoS_MaxDelay
 
struct  GF_QoS_PrefMaxDelay
 
struct  GF_QoS_LossProb
 
struct  GF_QoS_MaxGapLoss
 
struct  GF_QoS_MaxAUSize
 
struct  GF_QoS_AvgAUSize
 
struct  GF_QoS_MaxAURate
 
struct  GF_QoS_Private
 
struct  GF_Registration
 
struct  GF_Language
 
struct  GF_ESD
 
struct  GF_AuxVideoDescriptor
 
struct  GF_CCDescriptor
 
struct  GF_KeyWordItem
 
struct  GF_KeyWord
 
struct  GF_Rating
 
struct  GF_ShortTextual
 
struct  GF_ETD_ItemText
 
struct  GF_ExpandedTextual
 
struct  GF_ContentCreatorInfo
 
struct  GF_CC_Name
 
struct  GF_CC_Date
 
struct  GF_OCICreator_item
 
struct  GF_OCICreators
 
struct  GF_OCI_Data
 
struct  GF_SmpteParam
 
struct  GF_SMPTECamera
 
struct  GF_PLExt
 
struct  GF_PL_IDX
 
struct  GF_NALUFFParam
 
struct  GF_AVCConfig
 
struct  GF_NALUFFParamArray
 
struct  GF_HEVCConfig
 
struct  GF_VVCConfig
 
struct  GF_AV1_OBUArrayEntry
 
struct  GF_AV1Config
 
struct  GF_VPConfig
 
struct  GF_DOVIDecoderConfigurationRecord
 
struct  GF_Segment
 
struct  GF_MediaTime
 
struct  GF_ODCom
 
struct  GF_BaseODCom
 
struct  GF_ODUpdate
 
struct  GF_ODRemove
 
struct  GF_ESDUpdate
 
struct  GF_ESDRemove
 
struct  GF_IPMPUpdate
 
struct  GF_IPMPRemove
 
struct  GF_ODCodec
 
struct  GF_AC3StreamInfo
 
struct  GF_AC3Config
 
struct  GF_OpusConfig
 
struct  GF_DTSConfig
 
struct  GF_UDTSConfig
 
struct  GF_SLConfig
 MPEG-4 Object Descriptor Framework Sync Layer. 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
 

Enumerations

enum  {
  GF_ODF_OD_TAG = 0x01 , GF_ODF_IOD_TAG = 0x02 , GF_ODF_ESD_TAG = 0x03 , GF_ODF_DCD_TAG = 0x04 ,
  GF_ODF_DSI_TAG = 0x05 , GF_ODF_SLC_TAG = 0x06 , GF_ODF_CI_TAG = 0x07 , GF_ODF_SCI_TAG = 0x08 ,
  GF_ODF_IPI_PTR_TAG = 0x09 , GF_ODF_IPMP_PTR_TAG = 0x0A , GF_ODF_IPMP_TAG = 0x0B , GF_ODF_QOS_TAG = 0x0C ,
  GF_ODF_REG_TAG = 0x0D , GF_ODF_ESD_INC_TAG = 0x0E , GF_ODF_ESD_REF_TAG = 0x0F , GF_ODF_ISOM_IOD_TAG = 0x10 ,
  GF_ODF_ISOM_OD_TAG = 0x11 , GF_ODF_ISOM_IPI_PTR_TAG = 0x12 , GF_ODF_EXT_PL_TAG = 0x13 , GF_ODF_PL_IDX_TAG = 0x14 ,
  GF_ODF_ISO_BEGIN_TAG = 0x15 , GF_ODF_ISO_END_TAG = 0x3F , GF_ODF_CC_TAG = 0x40 , GF_ODF_KW_TAG = 0x41 ,
  GF_ODF_RATING_TAG = 0x42 , GF_ODF_LANG_TAG = 0x43 , GF_ODF_SHORT_TEXT_TAG = 0x44 , GF_ODF_TEXT_TAG = 0x45 ,
  GF_ODF_CC_NAME_TAG = 0x46 , GF_ODF_CC_DATE_TAG = 0x47 , GF_ODF_OCI_NAME_TAG = 0x48 , GF_ODF_OCI_DATE_TAG = 0x49 ,
  GF_ODF_SMPTE_TAG = 0x4A , GF_ODF_SEGMENT_TAG = 0x4B , GF_ODF_MEDIATIME_TAG = 0x4C , GF_ODF_IPMP_TL_TAG = 0x60 ,
  GF_ODF_IPMP_TOOL_TAG = 0x61 , GF_ODF_ISO_RES_BEGIN_TAG = 0x62 , GF_ODF_ISO_RES_END_TAG = 0xBF , GF_ODF_USER_BEGIN_TAG = 0xC0 ,
  GF_ODF_MUXINFO_TAG = GF_ODF_USER_BEGIN_TAG , GF_ODF_BIFS_CFG_TAG = GF_ODF_USER_BEGIN_TAG + 1 , GF_ODF_UI_CFG_TAG = GF_ODF_USER_BEGIN_TAG + 2 , GF_ODF_TEXT_CFG_TAG = GF_ODF_USER_BEGIN_TAG + 3 ,
  GF_ODF_TX3G_TAG = GF_ODF_USER_BEGIN_TAG + 4 , GF_ODF_ELEM_MASK_TAG = GF_ODF_USER_BEGIN_TAG + 5 , GF_ODF_LASER_CFG_TAG = GF_ODF_USER_BEGIN_TAG + 6 , GF_ODF_GEN_SUB_CFG_TAG = GF_ODF_USER_BEGIN_TAG + 7 ,
  GF_ODF_USER_END_TAG = 0xFE , GF_ODF_OCI_BEGIN_TAG = 0x40 , GF_ODF_OCI_END_TAG = (GF_ODF_ISO_RES_BEGIN_TAG - 1) , GF_ODF_EXT_BEGIN_TAG = 0x80 ,
  GF_ODF_EXT_END_TAG = 0xFE , GF_ODF_AUX_VIDEO_DATA = GF_ODF_EXT_BEGIN_TAG + 1 , GF_ODF_GPAC_LANG = GF_ODF_EXT_BEGIN_TAG + 2
}
 
enum  {
  IPMP_CP_NONE = 0 , IPMP_CP_DB = 1 , IPMP_CP_CB = 2 , IPMP_CP_CM = 3 ,
  IPMP_CP_BIFS = 4
}
 
enum  {
  GF_TXT_STYLE_NORMAL = 0 , GF_TXT_STYLE_BOLD = 1 , GF_TXT_STYLE_ITALIC = 1<<1 , GF_TXT_STYLE_UNDERLINED = 1<<2 ,
  GF_TXT_STYLE_STRIKETHROUGH = 1<<3
}
 
enum  { GF_TXT_SCROLL_CREDITS = 0 , GF_TXT_SCROLL_MARQUEE = 1 , GF_TXT_SCROLL_DOWN = 2 , GF_TXT_SCROLL_RIGHT = 3 }
 
enum  {
  GF_TXT_SCROLL_IN = 0x00000020 , GF_TXT_SCROLL_OUT = 0x00000040 , GF_TXT_SCROLL_DIRECTION = 0x00000180 , GF_TXT_KARAOKE = 0x00000800 ,
  GF_TXT_VERTICAL = 0x00020000 , GF_TXT_FILL_REGION = 0x00040000 , GF_TXT_NO_SCALE = 0x2 , GF_TXT_MOVIE_BACK_COLOR = 0x8 ,
  GF_TXT_CONTINUOUS_SCROLL = 0x200 , GF_TXT_DROP_SHADOW = 0x1000 , GF_TXT_FILL_ANTIALIAS = 0x2000 , GF_TXT_SOME_SAMPLES_FORCED = 0x40000000 ,
  GF_TXT_ALL_SAMPLES_FORCED = 0x80000000
}
 
enum  {
  QoSMaxDelayTag = 0x01 , QoSPrefMaxDelayTag = 0x02 , QoSLossProbTag = 0x03 , QoSMaxGapLossTag = 0x04 ,
  QoSMaxAUSizeTag = 0x41 , QoSAvgAUSizeTag = 0x42 , QoSMaxAURateTag = 0x43
}
 
enum  {
  GF_ODF_OD_UPDATE_TAG = 0x01 , GF_ODF_OD_REMOVE_TAG = 0x02 , GF_ODF_ESD_UPDATE_TAG = 0x03 , GF_ODF_ESD_REMOVE_TAG = 0x04 ,
  GF_ODF_IPMP_UPDATE_TAG = 0x05 , GF_ODF_IPMP_REMOVE_TAG = 0x06 , GF_ODF_ESD_REMOVE_REF_TAG = 0x07 , GF_ODF_COM_ISO_BEGIN_TAG = 0x0D ,
  GF_ODF_COM_ISO_END_TAG = 0xBF , GF_ODF_COM_USER_BEGIN_TAG = 0xC0 , GF_ODF_COM_USER_END_TAG = 0xFE
}
 
enum  GF_ODF_FieldType {
  GF_ODF_FT_DEFAULT = 0 , GF_ODF_FT_OD = 1 , GF_ODF_FT_OD_LIST = 2 , GF_ODF_FT_IPMPX = 3 ,
  GF_ODF_FT_IPMPX_LIST = 4 , GF_ODF_FT_IPMPX_BA = 5 , GF_ODF_FT_IPMPX_BA_LIST = 6
}
 

Functions

GF_ODCodecgf_odf_codec_new ()
 
void gf_odf_codec_del (GF_ODCodec *codec)
 
GF_Err gf_odf_codec_add_com (GF_ODCodec *codec, GF_ODCom *command)
 
GF_Err gf_odf_codec_encode (GF_ODCodec *codec, u32 cleanup_type)
 
GF_Err gf_odf_codec_get_au (GF_ODCodec *codec, u8 **outAU, u32 *au_length)
 
GF_Err gf_odf_codec_set_au (GF_ODCodec *codec, const u8 *au, u32 au_length)
 
GF_Err gf_odf_codec_decode (GF_ODCodec *codec)
 
GF_ODComgf_odf_codec_get_com (GF_ODCodec *codec)
 
GF_Err gf_odf_codec_apply_com (GF_ODCodec *codec, GF_ODCom *command)
 
GF_ODComgf_odf_com_new (u8 tag)
 
GF_Err gf_odf_com_del (GF_ODCom **com)
 
GF_Descriptorgf_odf_desc_new (u8 tag)
 
void gf_odf_desc_del (GF_Descriptor *desc)
 
GF_ESDgf_odf_desc_esd_new (u32 sl_predefined)
 
GF_BIFSConfiggf_odf_get_bifs_config (GF_DefaultDescriptor *dsi, u32 codecid)
 
GF_Err gf_odf_get_laser_config (GF_DefaultDescriptor *dsi, GF_LASERConfig *cfg)
 
GF_Err gf_odf_get_text_config (u8 *data, u32 data_len, u32 codecid, GF_TextConfig *cfg)
 
GF_Err gf_odf_encode_ui_config (GF_UIConfig *cfg, GF_DefaultDescriptor **out_dsi)
 
GF_AVCConfiggf_odf_avc_cfg_new ()
 
void gf_odf_avc_cfg_del (GF_AVCConfig *cfg)
 
GF_AVCConfiggf_odf_avc_cfg_read (u8 *dsi, u32 dsi_size)
 
GF_Err gf_odf_avc_cfg_write (GF_AVCConfig *cfg, u8 **outData, u32 *outSize)
 
GF_Err gf_odf_avc_cfg_write_bs (GF_AVCConfig *cfg, GF_BitStream *bs)
 
GF_Err gf_odf_tx3g_write (GF_TextSampleDescriptor *cfg, u8 **outData, u32 *outSize)
 
GF_TextSampleDescriptorgf_odf_tx3g_read (u8 *dsi, u32 dsi_size)
 
GF_HEVCConfiggf_odf_hevc_cfg_new ()
 
void gf_odf_hevc_cfg_del (GF_HEVCConfig *cfg)
 
GF_Err gf_odf_hevc_cfg_write_bs (GF_HEVCConfig *cfg, GF_BitStream *bs)
 
GF_Err gf_odf_hevc_cfg_write (GF_HEVCConfig *cfg, u8 **outData, u32 *outSize)
 
GF_HEVCConfiggf_odf_hevc_cfg_read_bs (GF_BitStream *bs, Bool is_lhvc)
 
GF_HEVCConfiggf_odf_hevc_cfg_read (u8 *dsi, u32 dsi_size, Bool is_lhvc)
 
GF_VVCConfiggf_odf_vvc_cfg_new ()
 
void gf_odf_vvc_cfg_del (GF_VVCConfig *cfg)
 
GF_Err gf_odf_vvc_cfg_write_bs (GF_VVCConfig *cfg, GF_BitStream *bs)
 
GF_Err gf_odf_vvc_cfg_write (GF_VVCConfig *cfg, u8 **outData, u32 *outSize)
 
GF_VVCConfiggf_odf_vvc_cfg_read_bs (GF_BitStream *bs)
 
GF_VVCConfiggf_odf_vvc_cfg_read (u8 *dsi, u32 dsi_size)
 
GF_AV1Configgf_odf_av1_cfg_new ()
 
void gf_odf_av1_cfg_del (GF_AV1Config *cfg)
 
GF_Err gf_odf_av1_cfg_write (GF_AV1Config *cfg, u8 **outData, u32 *outSize)
 
GF_Err gf_odf_av1_cfg_write_bs (GF_AV1Config *cfg, GF_BitStream *bs)
 
GF_AV1Configgf_odf_av1_cfg_read_bs (GF_BitStream *bs)
 
GF_AV1Configgf_odf_av1_cfg_read_bs_size (GF_BitStream *bs, u32 size)
 
GF_AV1Configgf_odf_av1_cfg_read (u8 *dsi, u32 dsi_size)
 
GF_VPConfiggf_odf_vp_cfg_new ()
 
void gf_odf_vp_cfg_del (GF_VPConfig *cfg)
 
GF_Err gf_odf_vp_cfg_write_bs (GF_VPConfig *cfg, GF_BitStream *bs, Bool is_v0)
 
GF_Err gf_odf_vp_cfg_write (GF_VPConfig *cfg, u8 **outData, u32 *outSize, Bool is_v0)
 
GF_VPConfiggf_odf_vp_cfg_read_bs (GF_BitStream *bs, Bool is_v0)
 
GF_VPConfiggf_odf_vp_cfg_read (u8 *dsi, u32 dsi_size)
 
GF_DOVIDecoderConfigurationRecordgf_odf_dovi_cfg_read_bs (GF_BitStream *bs)
 
GF_Err gf_odf_dovi_cfg_write_bs (GF_DOVIDecoderConfigurationRecord *cfg, GF_BitStream *bs)
 
void gf_odf_dovi_cfg_del (GF_DOVIDecoderConfigurationRecord *cfg)
 
GF_Err gf_odf_ac3_cfg_write_bs (GF_AC3Config *cfg, GF_BitStream *bs)
 
GF_Err gf_odf_ac3_cfg_write (GF_AC3Config *cfg, u8 **data, u32 *size)
 
GF_Err gf_odf_ac3_config_parse (u8 *dsi, u32 dsi_len, Bool is_ec3, GF_AC3Config *cfg)
 
GF_Err gf_odf_ac3_config_parse_bs (GF_BitStream *bs, Bool is_ec3, GF_AC3Config *cfg)
 
GF_Err gf_odf_opus_cfg_write_bs (GF_OpusConfig *cfg, GF_BitStream *bs)
 
GF_Err gf_odf_opus_cfg_write (GF_OpusConfig *cfg, u8 **data, u32 *size)
 
GF_Err gf_odf_opus_cfg_parse (u8 *dsi, u32 dsi_len, GF_OpusConfig *cfg)
 
GF_Err gf_odf_opus_cfg_parse_bs (GF_BitStream *bs, GF_OpusConfig *cfg)
 
GF_Err gf_odf_desc_list_del (GF_List *descList)
 
GF_Err gf_odf_desc_read (u8 *raw_desc, u32 descSize, GF_Descriptor **outDesc)
 
GF_Err gf_odf_desc_write (GF_Descriptor *desc, u8 **outEncDesc, u32 *outSize)
 
GF_Err gf_odf_desc_write_bs (GF_Descriptor *desc, GF_BitStream *bs)
 
u32 gf_odf_desc_size (GF_Descriptor *desc)
 
GF_Err gf_odf_desc_copy (GF_Descriptor *inDesc, GF_Descriptor **outDesc)
 
GF_Err gf_odf_desc_add_desc (GF_Descriptor *parentDesc, GF_Descriptor *newDesc)
 
GF_Err gf_odf_desc_list_read (u8 *raw_list, u32 raw_size, GF_List *descList)
 
GF_Err gf_odf_desc_list_write (GF_List *descList, u8 **outEncList, u32 *outSize)
 
GF_Err gf_odf_desc_list_size (GF_List *descList, u32 *outSize)
 
GF_Err gf_odf_dump_com (GF_ODCom *com, FILE *trace, u32 indent, Bool XMTDump)
 
GF_Err gf_odf_dump_desc (GF_Descriptor *desc, FILE *trace, u32 indent, Bool XMTDump)
 
GF_Err gf_odf_dump_com_list (GF_List *commandList, FILE *trace, u32 indent, Bool XMTDump)
 
u32 gf_odf_get_tag_by_name (char *descName)
 
GF_ODF_FieldType gf_odf_get_field_type (GF_Descriptor *desc, char *fieldName)
 
GF_Err gf_odf_set_field (GF_Descriptor *desc, char *fieldName, char *val)
 

Detailed Description

This section documents the MPEG-4 OD, OCI and IPMPX functions of the GPAC framework.


Data Structure Documentation

◆ GF_Descriptor

struct GF_Descriptor

base descriptor used as base type in many function.

◆ GF_DefaultDescriptor

struct GF_DefaultDescriptor

default descriptor.

Note
The decoderSpecificInfo is used as a default desc with tag 0x05
Data Fields
BASE_DESCRIPTOR u32 dataLength
u8 * data

◆ GF_IPMP_ToolList

struct GF_IPMP_ToolList

Object Descriptor

Data Fields
BASE_DESCRIPTOR GF_List * ipmp_tools

◆ GF_ObjectDescriptor

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

◆ GF_InitialObjectDescriptor

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 !!!

+ Collaboration diagram for GF_InitialObjectDescriptor:
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

◆ GF_IsomObjectDescriptor

struct GF_IsomObjectDescriptor

File Format Object Descriptor

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
u32 ServiceID
Bool RedirectOnly
Bool fake_remote

◆ GF_IsomInitialObjectDescriptor

struct GF_IsomInitialObjectDescriptor

File Format Initial Object Descriptor - same remark as IOD

+ Collaboration diagram for GF_IsomInitialObjectDescriptor:
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

◆ GF_ES_ID_Inc

struct GF_ES_ID_Inc

File Format ES Descriptor for IOD

Data Fields
BASE_DESCRIPTOR u32 trackID

◆ GF_ES_ID_Ref

struct GF_ES_ID_Ref

File Format ES Descriptor for OD

Data Fields
BASE_DESCRIPTOR u16 trackRef

◆ GF_DecoderConfig

struct GF_DecoderConfig

Decoder config Descriptor

+ Collaboration diagram for GF_DecoderConfig:
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

◆ GF_CIDesc

struct GF_CIDesc

Content Identification Descriptor

Data Fields
BASE_DESCRIPTOR u8 compatibility
u8 protectedContent
u8 contentTypeFlag
u8 contentIdentifierFlag
u8 contentType
u8 contentIdentifierType
char * contentIdentifier

◆ GF_SCIDesc

struct GF_SCIDesc

Supplementary Content Identification Descriptor)

Data Fields
BASE_DESCRIPTOR u32 languageCode
char * supplContentIdentifierTitle
char * supplContentIdentifierValue

◆ GF_IPIPtr

struct GF_IPIPtr

IPI (Intelectual Property Identification) Descriptor Pointer

Data Fields
BASE_DESCRIPTOR u16 IPI_ES_Id

◆ GF_IPMPPtr

struct GF_IPMPPtr

IPMP Descriptor Pointer

Data Fields
BASE_DESCRIPTOR u8 IPMP_DescriptorID
u16 IPMP_DescriptorIDEx
u16 IPMP_ES_ID

◆ GF_GF_IPMPX_Base

struct GF_GF_IPMPX_Base

IPMPX base object used for type casting in many function

◆ GF_IPMP_Descriptor

struct GF_IPMP_Descriptor

IPMP descriptor

Data Fields
BASE_DESCRIPTOR u8 IPMP_DescriptorID
u16 IPMPS_Type
u8 * opaque_data
u32 opaque_data_size
u16 IPMP_DescriptorIDEx
bin128 IPMP_ToolID
u8 control_point
u8 cp_sequence_code
GF_List * ipmpx_data

◆ GF_IPMP_Tool

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

◆ GF_ElementaryMask

struct GF_ElementaryMask

Elementary Mask of Bifs Config - parsing only

Data Fields
BASE_DESCRIPTOR u32 node_id
char * node_name

◆ GF_BIFSConfig

struct GF_BIFSConfig

BIFSConfig - parsing only, STORED IN ESD:DCD:DSI

Data Fields
BASE_DESCRIPTOR u32 version
u16 nodeIDbits
u16 routeIDbits
u16 protoIDbits
Bool pixelMetrics
u16 pixelWidth
u16 pixelHeight
Bool randomAccess
GF_List * elementaryMasks
Bool useNames

◆ GF_StyleRecord

struct GF_StyleRecord

text style record

Data Fields
u16 startCharOffset
u16 endCharOffset
u16 fontID
u8 style_flags
u8 font_size
u32 text_color

◆ GF_FontRecord

struct GF_FontRecord

font record for text

Data Fields
u16 fontID
char * fontName

◆ GF_BoxRecord

struct GF_BoxRecord

positioning record for text

Data Fields
s16 top
s16 left
s16 bottom
s16 right

◆ GF_TextSampleDescriptor

struct GF_TextSampleDescriptor

Text sample description descriptor (eg mostly a copy of ISOBMF sample entry)

+ Collaboration diagram for GF_TextSampleDescriptor:
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

◆ GF_TextConfig

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

◆ GF_GenericSubtitleSampleDescriptor

struct GF_GenericSubtitleSampleDescriptor

generic subtitle sample description descriptor

Data Fields
BASE_DESCRIPTOR u8 sample_index

◆ GF_GenericSubtitleConfig

struct GF_GenericSubtitleConfig

generic subtitle descriptor

Data Fields
BASE_DESCRIPTOR u32 timescale
s16 layer
u16 text_width
u16 text_height
GF_List * sample_descriptions
Bool has_vid_info
u16 video_width
u16 video_height
s16 horiz_offset
s16 vert_offset

◆ GF_MuxInfo

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

◆ GF_UIConfig

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

◆ GF_LASERConfig

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

◆ GF_QoS_Descriptor

struct GF_QoS_Descriptor

QoS Descriptor

Data Fields
BASE_DESCRIPTOR u8 predefined
GF_List * QoS_Qualifiers

◆ GF_QoS_Default

struct GF_QoS_Default

QoS Default Qualifier

◆ GF_QoS_MaxDelay

struct GF_QoS_MaxDelay

QoS Max Delay Qualifier

Data Fields
QOS_BASE_QUALIFIER u32 MaxDelay

◆ GF_QoS_PrefMaxDelay

struct GF_QoS_PrefMaxDelay

QoS preferred Max Delay Qualifier

Data Fields
QOS_BASE_QUALIFIER u32 PrefMaxDelay

◆ GF_QoS_LossProb

struct GF_QoS_LossProb

QoS loss probability Qualifier

Data Fields
QOS_BASE_QUALIFIER Float LossProb

◆ GF_QoS_MaxGapLoss

struct GF_QoS_MaxGapLoss

QoS Max Gap Loss Qualifier

Data Fields
QOS_BASE_QUALIFIER u32 MaxGapLoss

◆ GF_QoS_MaxAUSize

struct GF_QoS_MaxAUSize

QoS Max AU Size Qualifier

Data Fields
QOS_BASE_QUALIFIER u32 MaxAUSize

◆ GF_QoS_AvgAUSize

struct GF_QoS_AvgAUSize

QoS Average AU Size Qualifier

Data Fields
QOS_BASE_QUALIFIER u32 AvgAUSize

◆ GF_QoS_MaxAURate

struct GF_QoS_MaxAURate

QoS AU rate Qualifier

Data Fields
QOS_BASE_QUALIFIER u32 MaxAURate

◆ GF_QoS_Private

struct GF_QoS_Private

QoS private Qualifier

Data Fields
QOS_BASE_QUALIFIER u32 DataLength

max size class is 2^28 - 1

u8 * Data

◆ GF_Registration

struct GF_Registration

Registration Descriptor

Data Fields
BASE_DESCRIPTOR u32 formatIdentifier
u32 dataLength
u8 * additionalIdentificationInfo

◆ GF_Language

struct GF_Language

Language Descriptor

Data Fields
BASE_DESCRIPTOR u32 langCode
char * full_lang_code

◆ GF_ESD

struct GF_ESD

Elementary Stream Descriptor

+ Collaboration diagram for GF_ESD:
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)

◆ GF_AuxVideoDescriptor

struct GF_AuxVideoDescriptor

Auxiliary Video Data Descriptor

Data Fields
BASE_DESCRIPTOR u32 aux_video_type
u32 position_offset_h
u32 position_offset_v
u32 knear
u32 kfar
u32 parallax_zero
u32 parallax_scale
u32 dref
u32 wref

◆ GF_CCDescriptor

struct GF_CCDescriptor

Content Classification Descriptor

Data Fields
BASE_DESCRIPTOR u32 classificationEntity
u16 classificationTable
u32 dataLength
char * contentClassificationData

◆ GF_KeyWordItem

struct GF_KeyWordItem

this structure is used in GF_KeyWord

Data Fields
char * keyWord

◆ GF_KeyWord

struct GF_KeyWord

Key Word Descriptor

Data Fields
BASE_DESCRIPTOR u32 languageCode
u8 isUTF8
GF_List * keyWordsList

◆ GF_Rating

struct GF_Rating

Rating Descriptor

Data Fields
BASE_DESCRIPTOR u32 ratingEntity
u16 ratingCriteria
u32 infoLength
char * ratingInfo

◆ GF_ShortTextual

struct GF_ShortTextual

Short Textual Descriptor

Data Fields
BASE_DESCRIPTOR u32 langCode
u8 isUTF8
char * eventName
char * eventText

◆ GF_ETD_ItemText

struct GF_ETD_ItemText

this structure is used in GF_ExpandedTextual

Data Fields
char * text

◆ GF_ExpandedTextual

struct GF_ExpandedTextual

Expanded Textual Descriptor

Data Fields
BASE_DESCRIPTOR u32 langCode
u8 isUTF8
GF_List * itemDescriptionList
GF_List * itemTextList
char * NonItemText

◆ GF_ContentCreatorInfo

struct GF_ContentCreatorInfo

this structure is used in GF_CC_Name

Data Fields
u32 langCode
u8 isUTF8
char * contentCreatorName

◆ GF_CC_Name

struct GF_CC_Name

Content Creator Name GF_Descriptor

Note
The destructor will delete all the items in the list (GF_ContentCreatorInfo items)
Data Fields
BASE_DESCRIPTOR GF_List * ContentCreators

◆ GF_CC_Date

struct GF_CC_Date

Content Creation Date Descriptor

Data Fields
BASE_DESCRIPTOR char contentCreationDate[5]

◆ GF_OCICreator_item

struct GF_OCICreator_item

this structure is used in GF_OCICreators

Data Fields
u32 langCode
u8 isUTF8
char * OCICreatorName

◆ GF_OCICreators

struct GF_OCICreators

OCI Creator Name Descriptor

Data Fields
BASE_DESCRIPTOR GF_List * OCICreators

◆ GF_OCI_Data

struct GF_OCI_Data

OCI Creation Date Descriptor

Data Fields
BASE_DESCRIPTOR char OCICreationDate[5]

◆ GF_SmpteParam

struct GF_SmpteParam

this structure is used in GF_SMPTECamera

Data Fields
u8 paramID
u32 param

◆ GF_SMPTECamera

struct GF_SMPTECamera

Smpte Camera Position Descriptor

Data Fields
BASE_DESCRIPTOR u8 cameraID
GF_List * ParamList

◆ GF_PLExt

struct GF_PLExt

Extension Profile Level Descriptor

Data Fields
BASE_DESCRIPTOR u8 profileLevelIndicationIndex
u8 ODProfileLevelIndication
u8 SceneProfileLevelIndication
u8 AudioProfileLevelIndication
u8 VisualProfileLevelIndication
u8 GraphicsProfileLevelIndication
u8 MPEGJProfileLevelIndication

◆ GF_PL_IDX

struct GF_PL_IDX

Profile Level Indication Index Descriptor

Data Fields
BASE_DESCRIPTOR u8 profileLevelIndicationIndex

◆ GF_NALUFFParam

struct GF_NALUFFParam

used for storing NALU-based parameter set in AVC/HEVC/VVC configuration record

Data Fields
u16 size

size of nal

u8 * data

nal data

s32 id

ID of param set, used by some importers but not written in file

u32 crc

CRC of nal, used by some importers but not written in file

◆ GF_AVCConfig

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

◆ GF_NALUFFParamArray

struct GF_NALUFFParamArray

used for storing HEVC SPS/PPS/VPS/SEI

Data Fields
u8 type
u8 array_completeness
GF_List * nalus

◆ GF_HEVCConfig

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

◆ GF_VVCConfig

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

◆ GF_AV1_OBUArrayEntry

struct GF_AV1_OBUArrayEntry

used for storing AV1 OBUs

Data Fields
u64 obu_length
int obu_type
u8 * obu

◆ GF_AV1Config

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

◆ GF_VPConfig

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]

◆ GF_DOVIDecoderConfigurationRecord

struct GF_DOVIDecoderConfigurationRecord

DolbyVision config dvcC/dvvC

Data Fields
u8 dv_version_major
u8 dv_version_minor
u8 dv_profile
u8 dv_level
Bool rpu_present_flag
Bool el_present_flag
Bool bl_present_flag
u8 dv_bl_signal_compatibility_id
u8 force_dv

◆ GF_Segment

struct GF_Segment

Media Segment Descriptor used for Media Control Extensions

Data Fields
BASE_DESCRIPTOR Double startTime
Double Duration
char * SegmentName

◆ GF_MediaTime

struct GF_MediaTime

Media Time Descriptor used for Media Control Extensions

Data Fields
BASE_DESCRIPTOR Double mediaTimeStamp

◆ GF_ODCom

struct GF_ODCom

MPEG-4 SYSTEMS OD - (abstract) base command.

◆ GF_BaseODCom

struct GF_BaseODCom

MPEG-4 SYSTEMS OD - default command

Data Fields
BASE_OD_COMMAND u32 dataSize
u8 * data

◆ GF_ODUpdate

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

◆ GF_ODRemove

struct GF_ODRemove

MPEG-4 SYSTEMS OD - Object Descriptor Remove

Data Fields
BASE_OD_COMMAND u32 NbODs
u16 * OD_ID

◆ GF_ESDUpdate

struct GF_ESDUpdate

MPEG-4 SYSTEMS OD - Elementary Stream Descriptor Update

Data Fields
BASE_OD_COMMAND u16 ODID
GF_List * ESDescriptors

◆ GF_ESDRemove

struct GF_ESDRemove

MPEG-4 SYSTEMS OD - Elementary Stream Descriptor Remove

Data Fields
BASE_OD_COMMAND u16 ODID
u32 NbESDs
u16 * ES_ID

◆ GF_IPMPUpdate

struct GF_IPMPUpdate

MPEG-4 SYSTEMS OD - IPMP Descriptor Update

Data Fields
BASE_OD_COMMAND GF_List * IPMPDescList

◆ GF_IPMPRemove

struct GF_IPMPRemove

MPEG-4 SYSTEMS OD - IPMP Descriptor Remove

Data Fields
BASE_OD_COMMAND u32 NbIPMPDs
u8 * IPMPDescID

◆ GF_ODCodec

struct GF_ODCodec

MPEG-4 SYSTEMS OD - OD API

OD CODEC object - just a simple reader/writer

Data Fields
GF_BitStream * bs
GF_List * CommandList

◆ GF_AC3StreamInfo

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

◆ GF_AC3Config

struct GF_AC3Config

AC3 config record - see dolby specs ETSI TS 102 366

+ Collaboration diagram for GF_AC3Config:
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

◆ GF_OpusConfig

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].

◆ GF_DTSConfig

struct GF_DTSConfig

DTS audio configuration

Data Fields
u32 SamplingFrequency
u32 MaxBitrate
u32 AvgBitrate
u8 SampleDepth
u8 FrameDuration
u8 StreamConstruction
u8 CoreLFEPresent
u8 CoreLayout
u16 CoreSize
u8 StereoDownmix
u8 RepresentationType
u16 ChannelLayout
u8 MultiAssetFlag
u8 LBRDurationMod

◆ GF_UDTSConfig

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

◆ GF_SLConfig

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

Macro Definition Documentation

◆ BASE_DESCRIPTOR

#define BASE_DESCRIPTOR    u8 tag;

macro defining a base descriptor

◆ GF_IPMPX_BASE

#define GF_IPMPX_BASE
Value:
u8 tag; \
u8 version; \
u32 dataID; \
attribute readonly DOMString version
Definition: nodejs.idl:101
uint8_t u8
Definition: setup.h:334

IPMPX base classe

◆ MAX_IPMP_ALT_TOOLS

#define MAX_IPMP_ALT_TOOLS   20

IPMPX max number of tools

◆ QOS_BASE_QUALIFIER

#define QOS_BASE_QUALIFIER
Value:
u8 tag; \
u32 size;

macro defining a base QOS qualifier

◆ VP9_NUM_REF_FRAMES

#define VP9_NUM_REF_FRAMES   8

max number of reference frames for VP9

◆ BASE_OD_COMMAND

#define BASE_OD_COMMAND    u8 tag;

macro defining a base OD command

Typedef Documentation

◆ GF_AVCConfigSlot

pre v1.1 naming of NALU config record

◆ GF_HEVCParamArray

pre v1.1 naming of NALU param array

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Tags for MPEG-4 systems descriptors

Enumerator
GF_ODF_OD_TAG 
GF_ODF_IOD_TAG 
GF_ODF_ESD_TAG 
GF_ODF_DCD_TAG 
GF_ODF_DSI_TAG 
GF_ODF_SLC_TAG 
GF_ODF_CI_TAG 
GF_ODF_SCI_TAG 
GF_ODF_IPI_PTR_TAG 
GF_ODF_IPMP_PTR_TAG 
GF_ODF_IPMP_TAG 
GF_ODF_QOS_TAG 
GF_ODF_REG_TAG 
GF_ODF_ESD_INC_TAG 
GF_ODF_ESD_REF_TAG 
GF_ODF_ISOM_IOD_TAG 
GF_ODF_ISOM_OD_TAG 
GF_ODF_ISOM_IPI_PTR_TAG 
GF_ODF_EXT_PL_TAG 
GF_ODF_PL_IDX_TAG 
GF_ODF_ISO_BEGIN_TAG 
GF_ODF_ISO_END_TAG 
GF_ODF_CC_TAG 
GF_ODF_KW_TAG 
GF_ODF_RATING_TAG 
GF_ODF_LANG_TAG 
GF_ODF_SHORT_TEXT_TAG 
GF_ODF_TEXT_TAG 
GF_ODF_CC_NAME_TAG 
GF_ODF_CC_DATE_TAG 
GF_ODF_OCI_NAME_TAG 
GF_ODF_OCI_DATE_TAG 
GF_ODF_SMPTE_TAG 
GF_ODF_SEGMENT_TAG 
GF_ODF_MEDIATIME_TAG 
GF_ODF_IPMP_TL_TAG 
GF_ODF_IPMP_TOOL_TAG 
GF_ODF_ISO_RES_BEGIN_TAG 
GF_ODF_ISO_RES_END_TAG 
GF_ODF_USER_BEGIN_TAG 
GF_ODF_MUXINFO_TAG 

internal descriptor for mux input description

GF_ODF_BIFS_CFG_TAG 

internal descriptor for bifs config input description

GF_ODF_UI_CFG_TAG 

internal descriptor for UI config input description

GF_ODF_TEXT_CFG_TAG 

internal descriptor for TextConfig description

GF_ODF_TX3G_TAG 

internal descriptor for Text/TX3G description

GF_ODF_ELEM_MASK_TAG 

internal descriptor for BIFS_anim input description

GF_ODF_LASER_CFG_TAG 

internal descriptor for LASeR config input description

GF_ODF_GEN_SUB_CFG_TAG 

internal descriptor for subtitle stream description

GF_ODF_USER_END_TAG 
GF_ODF_OCI_BEGIN_TAG 
GF_ODF_OCI_END_TAG 
GF_ODF_EXT_BEGIN_TAG 
GF_ODF_EXT_END_TAG 
GF_ODF_AUX_VIDEO_DATA 
GF_ODF_GPAC_LANG 

◆ anonymous enum

anonymous enum

IPMPX control points

Enumerator
IPMP_CP_NONE 
IPMP_CP_DB 
IPMP_CP_CB 
IPMP_CP_CM 
IPMP_CP_BIFS 

◆ anonymous enum

anonymous enum

flags for text style

Enumerator
GF_TXT_STYLE_NORMAL 

normal

GF_TXT_STYLE_BOLD 

bold

GF_TXT_STYLE_ITALIC 

italic

GF_TXT_STYLE_UNDERLINED 

underlined

GF_TXT_STYLE_STRIKETHROUGH 

strikethrough - not 3GPP/QT defined, GPAC only

◆ anonymous enum

anonymous enum

scroll flags for text

Enumerator
GF_TXT_SCROLL_CREDITS 
GF_TXT_SCROLL_MARQUEE 
GF_TXT_SCROLL_DOWN 
GF_TXT_SCROLL_RIGHT 

◆ anonymous enum

anonymous enum

display flags for text

Enumerator
GF_TXT_SCROLL_IN 
GF_TXT_SCROLL_OUT 
GF_TXT_SCROLL_DIRECTION 
GF_TXT_KARAOKE 
GF_TXT_VERTICAL 
GF_TXT_FILL_REGION 
GF_TXT_NO_SCALE 
GF_TXT_MOVIE_BACK_COLOR 
GF_TXT_CONTINUOUS_SCROLL 
GF_TXT_DROP_SHADOW 
GF_TXT_FILL_ANTIALIAS 
GF_TXT_SOME_SAMPLES_FORCED 
GF_TXT_ALL_SAMPLES_FORCED 

◆ anonymous enum

anonymous enum

QoS Tags

Enumerator
QoSMaxDelayTag 
QoSPrefMaxDelayTag 
QoSLossProbTag 
QoSMaxGapLossTag 
QoSMaxAUSizeTag 
QoSAvgAUSizeTag 
QoSMaxAURateTag 

◆ anonymous enum

anonymous enum

MPEG-4 SYSTEMS OD Commands Tags

Enumerator
GF_ODF_OD_UPDATE_TAG 
GF_ODF_OD_REMOVE_TAG 
GF_ODF_ESD_UPDATE_TAG 
GF_ODF_ESD_REMOVE_TAG 
GF_ODF_IPMP_UPDATE_TAG 
GF_ODF_IPMP_REMOVE_TAG 
GF_ODF_ESD_REMOVE_REF_TAG 
GF_ODF_COM_ISO_BEGIN_TAG 
GF_ODF_COM_ISO_END_TAG 
GF_ODF_COM_USER_BEGIN_TAG 
GF_ODF_COM_USER_END_TAG 

◆ GF_ODF_FieldType

field type for OD/QoS/IPMPX/etc

Enumerator
GF_ODF_FT_DEFAULT 

regular type

GF_ODF_FT_OD 

single descriptor type

GF_ODF_FT_OD_LIST 

descriptor list type

GF_ODF_FT_IPMPX 

IPMP Data type

GF_ODF_FT_IPMPX_LIST 

IPMP Data list type

GF_ODF_FT_IPMPX_BA 

IPMP ByteArray type

GF_ODF_FT_IPMPX_BA_LIST 

IPMP ByteArray list type

Function Documentation

◆ gf_odf_codec_new()

GF_ODCodec* gf_odf_codec_new ( )

OD codec construction

Returns
new codec object
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_codec_del()

void gf_odf_codec_del ( GF_ODCodec codec)

OD codec destruction

Parameters
codecOD codec to destroy
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_codec_add_com()

GF_Err gf_odf_codec_add_com ( GF_ODCodec codec,
GF_ODCom command 
)

add a command to the codec command list.

Parameters
codectarget codec
commandcommand to add
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_codec_encode()

GF_Err gf_odf_codec_encode ( GF_ODCodec codec,
u32  cleanup_type 
)

encode the current command list.

Parameters
codectarget codec
cleanup_typespecifies 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
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_codec_get_au()

GF_Err gf_odf_codec_get_au ( GF_ODCodec codec,
u8 **  outAU,
u32 au_length 
)

get the encoded AU.

Parameters
codectarget codec
outAUoutput buffer allocated by the codec, user is responsible of freeing the allocated space
au_lengthsize of the AU (allocated buffer)
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_codec_set_au()

GF_Err gf_odf_codec_set_au ( GF_ODCodec codec,
const u8 au,
u32  au_length 
)

set the encoded AU to the codec

Parameters
codectarget codec
autarget AU to decode
au_lengthsize in bytes of the AU to decode
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_codec_decode()

GF_Err gf_odf_codec_decode ( GF_ODCodec codec)

decode the previously set-up AU

Parameters
codectarget codec
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_codec_get_com()

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

Parameters
codectarget codec
Returns
deocded command or NULL
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_codec_apply_com()

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.

Parameters
codectarget codec
commandthe command to apply
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_com_new()

GF_ODCom* gf_odf_com_new ( u8  tag)

MPEG-4 SYSTEMS OD Command Creation

Parameters
tagtype of command to create
Returns
the created command or NULL
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_com_del()

GF_Err gf_odf_com_del ( GF_ODCom **  com)

MPEG-4 SYSTEMS OD Command Destruction

Parameters
comthe command to delete. Pointer is set back to NULL
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_new()

GF_Descriptor* gf_odf_desc_new ( u8  tag)

Descriptors Creation

Parameters
tagtype of descriptor to create
Returns
created descriptor or NULL
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_del()

void gf_odf_desc_del ( GF_Descriptor desc)

Descriptors Destruction

Parameters
descthe descriptor to destroy
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_esd_new()

GF_ESD* gf_odf_desc_esd_new ( u32  sl_predefined)

helper for building a preformatted GF_ESD with decoderConfig, decoderSpecificInfo with no data and SLConfig descriptor with predefined

Parameters
sl_predefinedtype of predefined sl config
Returns
the ESD created
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_get_bifs_config()

GF_BIFSConfig* gf_odf_get_bifs_config ( GF_DefaultDescriptor dsi,
u32  codecid 
)

special function for authoring - convert DSI to BIFSConfig

Parameters
dsiBIFS decoder specific info
codecidBIFS codecid/object type indication
Returns
decoded BIFS Config descriptor - It is the caller responsibility of freeing it
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_get_laser_config()

GF_Err gf_odf_get_laser_config ( GF_DefaultDescriptor dsi,
GF_LASERConfig cfg 
)

special function for authoring - convert DSI to LASERConfig

Parameters
dsiLASER decoder specific info
cfgthe LASER config object to be filled
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_get_text_config()

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

Parameters
dataTEXT decoder config block
data_lenTEXT decoder config block size
codecidTEXT codecid/object type indication
cfgthe text config object to be filled
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_encode_ui_config()

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

Parameters
cfgthe UI config object
out_dsithe decoder specific info created. It is the caller responsibility of freeing it
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_avc_cfg_new()

GF_AVCConfig* gf_odf_avc_cfg_new ( )

AVC config constructor

Returns
the created AVC config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_avc_cfg_del()

void gf_odf_avc_cfg_del ( GF_AVCConfig cfg)

AVC config destructor

Parameters
cfgthe AVC config to destroy
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_avc_cfg_read()

GF_AVCConfig* gf_odf_avc_cfg_read ( u8 dsi,
u32  dsi_size 
)

gets GF_AVCConfig from MPEG-4 DSI

Parameters
dsiencoded AVC decoder specific info
dsi_sizeencoded AVC decoder specific info size
Returns
the decoded AVC config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_avc_cfg_write()

GF_Err gf_odf_avc_cfg_write ( GF_AVCConfig cfg,
u8 **  outData,
u32 outSize 
)

writes GF_AVCConfig

Parameters
cfgthe AVC config to encode
outDataencoded dsi buffer - it is the caller responsibility to free this
outSizeencoded dsi buffer size
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_avc_cfg_write_bs()

GF_Err gf_odf_avc_cfg_write_bs ( GF_AVCConfig cfg,
GF_BitStream *  bs 
)

writes GF_AVCConfig to bitstream

Parameters
cfgthe AVC config to encode
bsbitstream in WRITE mode
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_tx3g_write()

GF_Err gf_odf_tx3g_write ( GF_TextSampleDescriptor cfg,
u8 **  outData,
u32 outSize 
)

writes GF_TextSampleDescriptor

Parameters
cfgthe text config to encode
outDataaddress of output buffer (internal alloc, user to free it)
outSizesize of the allocated output
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_tx3g_read()

GF_TextSampleDescriptor* gf_odf_tx3g_read ( u8 dsi,
u32  dsi_size 
)

gets GF_TextSampleDescriptor from buffer

Parameters
dsiencoded text sample description
dsi_sizesize of encoded description
Returns
the decoded GF_TextSampleDescriptor config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_hevc_cfg_new()

GF_HEVCConfig* gf_odf_hevc_cfg_new ( )

HEVC config constructor

Returns
the created HEVC config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_hevc_cfg_del()

void gf_odf_hevc_cfg_del ( GF_HEVCConfig cfg)

HEVC config destructor

Parameters
cfgthe HEVC config to destroy
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_hevc_cfg_write_bs()

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

Parameters
cfgthe HEVC config to encode
bsoutput bitstream object in which the config is written
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_hevc_cfg_write()

GF_Err gf_odf_hevc_cfg_write ( GF_HEVCConfig cfg,
u8 **  outData,
u32 outSize 
)

writes GF_HEVCConfig as MPEG-4 DSI

Parameters
cfgthe HEVC config to encode
outDataencoded dsi buffer - it is the caller responsibility to free this
outSizeencoded dsi buffer size
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_hevc_cfg_read_bs()

GF_HEVCConfig* gf_odf_hevc_cfg_read_bs ( GF_BitStream *  bs,
Bool  is_lhvc 
)

gets GF_HEVCConfig from bitstream MPEG-4 DSI

Parameters
bsbitstream containing the encoded HEVC decoder specific info
is_lhvcif GF_TRUE, indicates if the dsi is LHVC
Returns
the decoded HEVC config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_hevc_cfg_read()

GF_HEVCConfig* gf_odf_hevc_cfg_read ( u8 dsi,
u32  dsi_size,
Bool  is_lhvc 
)

gets GF_HEVCConfig from MPEG-4 DSI

Parameters
dsiencoded HEVC decoder specific info
dsi_sizeencoded HEVC decoder specific info size
is_lhvcif GF_TRUE, indicates if the dsi is LHVC
Returns
the decoded HEVC config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_vvc_cfg_new()

GF_VVCConfig* gf_odf_vvc_cfg_new ( )

VVC config constructor

Returns
the created VVC config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_vvc_cfg_del()

void gf_odf_vvc_cfg_del ( GF_VVCConfig cfg)

VVC config destructor

Parameters
cfgthe VVC config to destroy
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_vvc_cfg_write_bs()

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

Parameters
cfgthe VVC config to encode
bsoutput bitstream object in which the config is written
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_vvc_cfg_write()

GF_Err gf_odf_vvc_cfg_write ( GF_VVCConfig cfg,
u8 **  outData,
u32 outSize 
)

writes GF_VVCConfig as MPEG-4 DSI

Parameters
cfgthe VVC config to encode
outDataencoded dsi buffer - it is the caller responsibility to free this
outSizeencoded dsi buffer size
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_vvc_cfg_read_bs()

GF_VVCConfig* gf_odf_vvc_cfg_read_bs ( GF_BitStream *  bs)

gets GF_VVCConfig from bitstream MPEG-4 DSI

Parameters
bsbitstream containing the encoded VVC decoder specific info
Returns
the decoded VVC config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_vvc_cfg_read()

GF_VVCConfig* gf_odf_vvc_cfg_read ( u8 dsi,
u32  dsi_size 
)

gets GF_VVCConfig from MPEG-4 DSI

Parameters
dsiencoded VVC decoder specific info
dsi_sizeencoded VVC decoder specific info size
Returns
the decoded VVC config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_av1_cfg_new()

GF_AV1Config* gf_odf_av1_cfg_new ( )

AV1 config constructor

Returns
the created AV1 config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_av1_cfg_del()

void gf_odf_av1_cfg_del ( GF_AV1Config cfg)

AV1 config destructor

Parameters
cfgthe AV1 config to destroy
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_av1_cfg_write()

GF_Err gf_odf_av1_cfg_write ( GF_AV1Config cfg,
u8 **  outData,
u32 outSize 
)

writes AV1 config to buffer

Parameters
cfgthe AV1 config to write
outDataset to an allocated encoded buffer - it is the caller responsibility to free this
outSizeset to the encoded dsi buffer size
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_av1_cfg_write_bs()

GF_Err gf_odf_av1_cfg_write_bs ( GF_AV1Config cfg,
GF_BitStream *  bs 
)

writes AV1 config to bitstream

Parameters
cfgthe AV1 config to write
bsbitstream containing the encoded AV1 decoder specific info
Returns
error code if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_av1_cfg_read_bs()

GF_AV1Config* gf_odf_av1_cfg_read_bs ( GF_BitStream *  bs)

gets AV1 config from bitstream

Parameters
bsbitstream containing the encoded AV1 decoder specific info
Returns
the decoded AV1 config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_av1_cfg_read_bs_size()

GF_AV1Config* gf_odf_av1_cfg_read_bs_size ( GF_BitStream *  bs,
u32  size 
)

gets AV1 config to bitstream

Parameters
bsbitstream containing the encoded AV1 decoder specific info
sizesize of encoded structure in the bitstream. A value of 0 means "until the end", equivalent to gf_odf_av1_cfg_read_bs
Returns
the decoded AV1 config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_av1_cfg_read()

GF_AV1Config* gf_odf_av1_cfg_read ( u8 dsi,
u32  dsi_size 
)

gets AV1 config from buffer

Parameters
dsiencoded AV1 config
dsi_sizesize of encoded AV1 config
Returns
the decoded AV1 config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_vp_cfg_new()

GF_VPConfig* gf_odf_vp_cfg_new ( )

creates a VPx (VP8, VP9) descriptor

Returns
a newly allocated descriptor
+ Here is the caller graph for this function:

◆ gf_odf_vp_cfg_del()

void gf_odf_vp_cfg_del ( GF_VPConfig cfg)

destroys an VPx config

Parameters
cfgthe VPx config to destroy
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_vp_cfg_write_bs()

GF_Err gf_odf_vp_cfg_write_bs ( GF_VPConfig cfg,
GF_BitStream *  bs,
Bool  is_v0 
)

writes VPx config to bitstream

Parameters
cfgthe VPx config to write
bsbitstream containing the encoded VPx decoder specific info
is_v0if GF_TRUE, this is a version 0 config
Returns
error code if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_vp_cfg_write()

GF_Err gf_odf_vp_cfg_write ( GF_VPConfig cfg,
u8 **  outData,
u32 outSize,
Bool  is_v0 
)

writes VPx config to buffer

Parameters
cfgthe VPx config to write
outDataset to an allocated encoded buffer - it is the caller responsibility to free this
outSizeset to the encoded buffer size
is_v0if GF_TRUE, this is a version 0 config
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_vp_cfg_read_bs()

GF_VPConfig* gf_odf_vp_cfg_read_bs ( GF_BitStream *  bs,
Bool  is_v0 
)

gets VPx config to bitstream

Parameters
bsbitstream containing the encoded VPx decoder specific info
is_v0if GF_TRUE, this is a version 0 config
Returns
the decoded VPx config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_vp_cfg_read()

GF_VPConfig* gf_odf_vp_cfg_read ( u8 dsi,
u32  dsi_size 
)

gets VPx config from buffer

Parameters
dsiencoded VPx config
dsi_sizesize of encoded VPx config
Returns
the decoded VPx config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_dovi_cfg_read_bs()

GF_DOVIDecoderConfigurationRecord* gf_odf_dovi_cfg_read_bs ( GF_BitStream *  bs)

gets DolbyVision config to bitstream

Parameters
bsbitstream containing the encoded VPx decoder specific info
Returns
the decoded DolbyVision config
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_dovi_cfg_write_bs()

GF_Err gf_odf_dovi_cfg_write_bs ( GF_DOVIDecoderConfigurationRecord cfg,
GF_BitStream *  bs 
)

writes DolbyVision config to buffer

Parameters
cfgthe DolbyVision config to write
bsthe bitstream object in which to write the config
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_dovi_cfg_del()

void gf_odf_dovi_cfg_del ( GF_DOVIDecoderConfigurationRecord cfg)

destroys a DolbyVision config

Parameters
cfgthe DolbyVision config to destroy
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_ac3_cfg_write_bs()

GF_Err gf_odf_ac3_cfg_write_bs ( GF_AC3Config cfg,
GF_BitStream *  bs 
)

writes Dolby AC3/EAC3 config to buffer

Parameters
cfgthe Dolby AC3 config to write
bsthe bitstream object in which to write the config
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_ac3_cfg_write()

GF_Err gf_odf_ac3_cfg_write ( GF_AC3Config cfg,
u8 **  data,
u32 size 
)

writes Dolby AC3/EAC3 config to buffer

Parameters
cfgthe Dolby AC3 config to write
dataset to created output buffer, must be freed by caller
sizeset to created output buffer size
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_ac3_config_parse()

GF_Err gf_odf_ac3_config_parse ( u8 dsi,
u32  dsi_len,
Bool  is_ec3,
GF_AC3Config cfg 
)

parses an AC3/EC3 sample description

Parameters
dsithe encoded config
dsi_lenthe encoded config size
is_ec3indicates that the encoded config is for an EC3 track
cfgthe AC3/EC3 config to fill
Returns
Error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_ac3_config_parse_bs()

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

Parameters
bsthe bitstream object
is_ec3indicates that the encoded config is for an EC3 track
cfgthe AC3/EC3 config to fill
Returns
Error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_opus_cfg_write_bs()

GF_Err gf_odf_opus_cfg_write_bs ( GF_OpusConfig cfg,
GF_BitStream *  bs 
)

writes Opus config to buffer

Parameters
cfgthe Opus config to write
bsthe bitstream object in which to write the config
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_opus_cfg_write()

GF_Err gf_odf_opus_cfg_write ( GF_OpusConfig cfg,
u8 **  data,
u32 size 
)

writes Opus config to buffer

Parameters
cfgthe Opus config to write
dataset to created output buffer, must be freed by caller
sizeset to created output buffer size
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_opus_cfg_parse()

GF_Err gf_odf_opus_cfg_parse ( u8 dsi,
u32  dsi_len,
GF_OpusConfig cfg 
)

parses an Opus sample description

Parameters
dsithe encoded config
dsi_lenthe encoded config size
cfgthe Opus config to fill
Returns
Error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_opus_cfg_parse_bs()

GF_Err gf_odf_opus_cfg_parse_bs ( GF_BitStream *  bs,
GF_OpusConfig cfg 
)

parses an Opus sample description from bitstream

Parameters
bsthe bitstream object
cfgthe Opus config to fill
Returns
Error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_list_del()

GF_Err gf_odf_desc_list_del ( GF_List *  descList)

destroy the descriptors in a list but not the list

Parameters
descListdescriptor list to destroy
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_read()

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

Parameters
raw_descencoded descriptor to decode
descSizesize of descriptor to decode
outDescoutput decoded descriptor - it is the caller responsibility to free this
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_write()

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

Parameters
descdescriptor to encode
outEncDescoutput encoded descriptor - it is the caller responsibility to free this
outSizesize of encoded descriptor
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_write_bs()

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

Parameters
descdescriptor to encode
bsthe bitstream object in write mode
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_size()

u32 gf_odf_desc_size ( GF_Descriptor desc)

use this function to get the size of a standalone descriptor (including tag and size fields)

Parameters
descdescriptor to encode
Returns
0 if error or encoded desc size otherwise
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_copy()

GF_Err gf_odf_desc_copy ( GF_Descriptor inDesc,
GF_Descriptor **  outDesc 
)

duplicate descriptors

Parameters
inDescdescriptor to copy
outDesccopied descriptor - it is the caller responsibility to free this
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_add_desc()

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

Parameters
parentDescparent descriptor
newDescdescriptor to add to parent
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_list_read()

GF_Err gf_odf_desc_list_read ( u8 raw_list,
u32  raw_size,
GF_List *  descList 
)

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

Parameters
raw_listencoded list of descriptors
raw_sizesize of the encoded list of descriptors
descListlist in which the decoded descriptors will be placed
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_list_write()

GF_Err gf_odf_desc_list_write ( GF_List *  descList,
u8 **  outEncList,
u32 outSize 
)

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)

Parameters
descListlist of descriptors to be encoded
outEncListbuffer of encoded descriptors
outSizesize of buffer of encoded descriptors
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_desc_list_size()

GF_Err gf_odf_desc_list_size ( GF_List *  descList,
u32 outSize 
)

returns size of encoded desc list

Parameters
descListlist of descriptors to be encoded
outSizesize of buffer of encoded descriptors
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_dump_com()

GF_Err gf_odf_dump_com ( GF_ODCom com,
FILE *  trace,
u32  indent,
Bool  XMTDump 
)

Dumps an OD AU

Parameters
comOD command to dump
tracedestination file for dumping
indentnumber of spaces to use as base index
XMTDumpif GF_TRUE dumpos as XMT, otherwise as BT
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_dump_desc()

GF_Err gf_odf_dump_desc ( GF_Descriptor desc,
FILE *  trace,
u32  indent,
Bool  XMTDump 
)

Dumps an OD Descriptor

Parameters
descdescriptor to dump
tracedestination file for dumping
indentnumber of spaces to use as base index
XMTDumpif GF_TRUE dumpos as XMT, otherwise as BT
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_dump_com_list()

GF_Err gf_odf_dump_com_list ( GF_List *  commandList,
FILE *  trace,
u32  indent,
Bool  XMTDump 
)

Dumps an OD Descriptor

Parameters
commandListdescriptor list to dump
tracedestination file for dumping
indentnumber of spaces to use as base index
XMTDumpif GF_TRUE dumpos as XMT, otherwise as BT
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_odf_get_tag_by_name()

u32 gf_odf_get_tag_by_name ( char *  descName)

Gets descriptor tag by name

Parameters
descNametarget descriptor name
Returns
descriptor tag or 0 if error
+ Here is the caller graph for this function:

◆ gf_odf_get_field_type()

GF_ODF_FieldType gf_odf_get_field_type ( GF_Descriptor desc,
char *  fieldName 
)

Gets ODF field type by name

Parameters
desctarget descriptor
fieldNamedescriptor field name
Returns
the descriptor field type
+ Here is the caller graph for this function:

◆ gf_odf_set_field()

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

Parameters
desctarget descriptor
fieldNamedescriptor field name
valfield value to parse
Returns
error if any
+ Here is the call graph for this function:
+ Here is the caller graph for this function: