libgpac
Documentation of the core library of GPAC
mpeg4_odf.h File Reference

MPEG-4 Object Descriptor Framework. More...

#include <gpac/list.h>
#include <gpac/bitstream.h>
#include <gpac/sync_layer.h>
+ Include dependency graph for mpeg4_odf.h:
+ This graph shows which files directly or indirectly include this file:

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
 

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

>