📄 odf_dump.c
字号:
}GF_Err gf_odf_dump_esd_ref(GF_ES_ID_Ref *esd_ref, FILE *trace, u32 indent, Bool XMTDump){ StartDescDump(trace, "ES_ID_Ref", indent, XMTDump); indent++; DumpInt(trace, "trackRef", esd_ref->trackRef, indent, XMTDump); indent--; EndAttributes(trace, indent, XMTDump); EndDescDump(trace, "ES_ID_Ref", indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_exp_text(GF_ExpandedTextual *etd, FILE *trace, u32 indent, Bool XMTDump){ GF_ETD_ItemText *it1, *it2; u32 i, count; StartDescDump(trace, "ExpandedTextualDescriptor", indent, XMTDump); indent++; DumpInt(trace, "languageCode", etd->langCode, indent, XMTDump); DumpBool(trace, "isUTF8", etd->isUTF8, indent, XMTDump); DumpString(trace, "nonItemText", etd->NonItemText, indent, XMTDump); EndAttributes(trace, indent, XMTDump); count = gf_list_count(etd->itemDescriptionList); for (i=0; i<count; i++) { it1 = (GF_ETD_ItemText *)gf_list_get(etd->itemDescriptionList, i); it2 = (GF_ETD_ItemText *)gf_list_get(etd->itemTextList, i); StartSubElement(trace, "item", indent, XMTDump); DumpString(trace, "description", it1->text, indent, XMTDump); DumpString(trace, "text", it2->text, indent, XMTDump); EndSubElement(trace, indent, XMTDump); } indent--; EndDescDump(trace, "ExpandedTextualDescriptor", indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_pl_ext(GF_PLExt *pld, FILE *trace, u32 indent, Bool XMTDump){ StartDescDump(trace, "ExtensionProfileLevelDescriptor", indent, XMTDump); indent++; DumpInt(trace, "profileLevelIndicationIndex", pld->profileLevelIndicationIndex, indent, XMTDump); DumpInt(trace, "ODProfileLevelIndication", pld->ODProfileLevelIndication, indent, XMTDump); DumpInt(trace, "sceneProfileLevelIndication", pld->SceneProfileLevelIndication, indent, XMTDump); DumpInt(trace, "audioProfileLevelIndication", pld->AudioProfileLevelIndication, indent, XMTDump); DumpInt(trace, "visualProfileLevelIndication", pld->VisualProfileLevelIndication, indent, XMTDump); DumpInt(trace, "graphicsProfileLevelIndication", pld->GraphicsProfileLevelIndication, indent, XMTDump); DumpInt(trace, "MPEGJProfileLevelIndication", pld->MPEGJProfileLevelIndication, indent, XMTDump); indent--; EndSubElement(trace, indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_ipi_ptr(GF_IPIPtr *ipid, FILE *trace, u32 indent, Bool XMTDump){ StartDescDump(trace, "IPI_DescrPointer", indent, XMTDump); indent++; DumpInt(trace, "IPI_ES_Id", ipid->IPI_ES_Id, indent, XMTDump); indent--; EndSubElement(trace, indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_ipmp(GF_IPMP_Descriptor *ipmp, FILE *trace, u32 indent, Bool XMTDump){ u32 i, count; StartDescDump(trace, "IPMP_Descriptor", indent, XMTDump); indent++; DumpIntHex(trace, "IPMP_DescriptorID", ipmp->IPMP_DescriptorID, indent, XMTDump, 1); DumpIntHex(trace, "IPMPS_Type", ipmp->IPMPS_Type, indent, XMTDump, 0); if ((ipmp->IPMP_DescriptorID==0xFF) && (ipmp->IPMPS_Type==0xFFFF)) { DumpIntHex(trace, "IPMP_DescriptorIDEx", ipmp->IPMP_DescriptorIDEx, indent, XMTDump, 0); /*how the heck do we represent toolID??*/ DumpBin128(trace, "IPMP_ToolID", (char*)ipmp->IPMP_ToolID, indent, XMTDump); DumpInt(trace, "controlPointCode", ipmp->control_point, indent, XMTDump); if (ipmp->control_point) DumpInt(trace, "sequenceCode", ipmp->cp_sequence_code, indent, XMTDump); EndAttributes(trace, indent, XMTDump); /*parse IPMPX data*/ StartElement(trace, "IPMPX_Data", indent, XMTDump, 1); indent++; count = gf_list_count(ipmp->ipmpx_data); for (i=0; i<count; i++) { GF_IPMPX_Data *p = (GF_IPMPX_Data *)gf_list_get(ipmp->ipmpx_data, i); gf_ipmpx_dump_data(p, trace, indent, XMTDump); } indent--; EndElement(trace, "IPMPX_Data", indent, XMTDump, 1); } else if (!ipmp->IPMPS_Type) { DumpString(trace, "URLString", ipmp->opaque_data, indent, XMTDump); } else { DumpData(trace, "IPMP_data", ipmp->opaque_data, ipmp->opaque_data_size, indent, XMTDump); } indent--; EndDescDump(trace, "IPMP_Descriptor", indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_ipmp_ptr(GF_IPMPPtr *ipmpd, FILE *trace, u32 indent, Bool XMTDump){ StartDescDump(trace, "IPMP_DescriptorPointer", indent, XMTDump); indent++; if (ipmpd->IPMP_DescriptorID == 0xFF) { DumpInt(trace, "IPMP_DescriptorID", 0xFF, indent, XMTDump); DumpInt(trace, "IPMP_DescriptorIDEx", ipmpd->IPMP_DescriptorIDEx, indent, XMTDump); DumpInt(trace, "IPMP_ES_ID", ipmpd->IPMP_ES_ID, indent, XMTDump); } else { DumpInt(trace, "IPMP_DescriptorID", ipmpd->IPMP_DescriptorID, indent, XMTDump); } indent--; if (XMTDump) EndSubElement(trace, indent, XMTDump); else EndDescDump(trace, "IPMP_DescriptorPointer", indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_kw(GF_KeyWord *kwd, FILE *trace, u32 indent, Bool XMTDump){ GF_KeyWordItem *p; u32 i; StartDescDump(trace, "KeyWordDescriptor", indent, XMTDump); indent++; DumpInt(trace, "languageCode", kwd->languageCode, indent, XMTDump); DumpBool(trace, "isUTF8", kwd->isUTF8, indent, XMTDump); EndAttributes(trace, indent, XMTDump); i=0; while ((p = (GF_KeyWordItem *)gf_list_enum(kwd->keyWordsList, &i))) { StartSubElement(trace, "keyWord", indent, XMTDump); DumpString(trace, "value", p->keyWord, indent, XMTDump); EndSubElement(trace, indent, XMTDump); } indent--; EndDescDump(trace, "KeyWordDescriptor", indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_lang(GF_Language *ld, FILE *trace, u32 indent, Bool XMTDump){ char sLan[4]; StartDescDump(trace, "LanguageDescriptor", indent, XMTDump); indent++; sLan[0] = (ld->langCode>>16)&0xFF; sLan[1] = (ld->langCode>>8)&0xFF; sLan[2] = (ld->langCode)&0xFF; sLan[3] = 0; DumpString(trace, "languageCode", sLan, indent, XMTDump); indent--; EndSubElement(trace, indent, XMTDump); if (!XMTDump) EndDescDump(trace, "LanguageDescriptor", indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_isom_iod(GF_IsomInitialObjectDescriptor *iod, FILE *trace, u32 indent, Bool XMTDump){ StartDescDump(trace, "MP4InitialObjectDescriptor", indent, XMTDump); indent++; StartAttribute(trace, "objectDescriptorID", indent, XMTDump); if (XMTDump) { fprintf(trace, "od%d", iod->objectDescriptorID); EndAttribute(trace, indent, XMTDump); DumpInt(trace, "binaryID", iod->objectDescriptorID, indent, XMTDump); } else { fprintf(trace, "%d", iod->objectDescriptorID); EndAttribute(trace, indent, XMTDump); } EndAttributes(trace, indent, XMTDump); StartSubElement(trace, "Profile", indent, 1); DumpInt(trace, "audioProfileLevelIndication", iod->audio_profileAndLevel, indent, XMTDump); DumpInt(trace, "visualProfileLevelIndication", iod->visual_profileAndLevel, indent, XMTDump); DumpInt(trace, "sceneProfileLevelIndication", iod->scene_profileAndLevel, indent, XMTDump); DumpInt(trace, "graphicsProfileLevelIndication", iod->graphics_profileAndLevel, indent, XMTDump); DumpInt(trace, "ODProfileLevelIndication", iod->OD_profileAndLevel, indent, XMTDump); DumpBool(trace, "includeInlineProfileLevelFlag", iod->inlineProfileFlag, indent, XMTDump); EndSubElement(trace, indent, XMTDump); if (iod->URLString) { StartSubElement(trace, "URL", indent, XMTDump); DumpString(trace, "URLstring", iod->URLString, indent, XMTDump); EndSubElement(trace, indent, XMTDump); } if (XMTDump) { StartElement(trace, "Descr", indent, XMTDump, 1); indent++; } //ESDescr if (gf_list_count(iod->ES_ID_IncDescriptors)) { DumpDescList(iod->ES_ID_IncDescriptors, trace, indent, "esDescrInc", XMTDump, 0); } else { DumpDescList(iod->ES_ID_RefDescriptors, trace, indent, "esDescrRef", XMTDump, 0); } DumpDescList(iod->OCIDescriptors, trace, indent, "ociDescr", XMTDump, 0); DumpDescListFilter(iod->IPMP_Descriptors, trace, indent, "ipmpDescrPtr", XMTDump, GF_ODF_IPMP_PTR_TAG); DumpDescListFilter(iod->IPMP_Descriptors, trace, indent, "ipmpDescr", XMTDump, GF_ODF_IPMP_TAG); DumpDescList(iod->extensionDescriptors, trace, indent, "extDescr", XMTDump, 0); if (iod->IPMPToolList) { StartElement(trace, "toolListDescr" , indent, XMTDump, 0); gf_odf_dump_desc(iod->IPMPToolList, trace, indent + (XMTDump ? 1 : 0), XMTDump); EndElement(trace, "toolListDescr" , indent, XMTDump, 0); } if (XMTDump) { indent--; EndElement(trace, "Descr", indent, XMTDump, 1); } indent--; EndDescDump(trace, "MP4InitialObjectDescriptor", indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_od(GF_ObjectDescriptor *od, FILE *trace, u32 indent, Bool XMTDump){ StartDescDump(trace, "ObjectDescriptor", indent, XMTDump); indent++; StartAttribute(trace, "objectDescriptorID", indent, XMTDump); if (XMTDump) { fprintf(trace, "od%d", od->objectDescriptorID); EndAttribute(trace, indent, XMTDump); DumpInt(trace, "binaryID", od->objectDescriptorID, indent, XMTDump); } else { fprintf(trace, "%d", od->objectDescriptorID); EndAttribute(trace, indent, XMTDump); } EndAttributes(trace, indent, XMTDump); if (od->URLString) { StartSubElement(trace, "URL", indent, XMTDump); DumpString(trace, "URLstring", od->URLString, indent, XMTDump); EndSubElement(trace, indent, XMTDump); } if (XMTDump) { StartElement(trace, "Descr", indent, XMTDump, 1); indent++; } //ESDescr DumpDescList(od->ESDescriptors, trace, indent, "esDescr", XMTDump, 0); DumpDescList(od->OCIDescriptors, trace, indent, "ociDescr", XMTDump, 0); DumpDescListFilter(od->IPMP_Descriptors, trace, indent, "ipmpDescrPtr", XMTDump, GF_ODF_IPMP_PTR_TAG); DumpDescListFilter(od->IPMP_Descriptors, trace, indent, "ipmpDescr", XMTDump, GF_ODF_IPMP_TAG); DumpDescList(od->extensionDescriptors, trace, indent, "extDescr", XMTDump, 0); if (XMTDump) { indent--; EndElement(trace, "Descr", indent, XMTDump, 1); } indent--; EndDescDump(trace, "ObjectDescriptor", indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_isom_od(GF_IsomObjectDescriptor *od, FILE *trace, u32 indent, Bool XMTDump){ StartDescDump(trace, "MP4ObjectDescriptor", indent, XMTDump); indent++; StartAttribute(trace, "objectDescriptorID", indent, XMTDump); if (XMTDump) { fprintf(trace, "od%d", od->objectDescriptorID); EndAttribute(trace, indent, XMTDump); DumpInt(trace, "binaryID", od->objectDescriptorID, indent, XMTDump); } else { fprintf(trace, "%d", od->objectDescriptorID); EndAttribute(trace, indent, XMTDump); } EndAttributes(trace, indent, XMTDump); if (od->URLString) { StartSubElement(trace, "URL", indent, XMTDump); DumpString(trace, "URLstring", od->URLString, indent, XMTDump); EndSubElement(trace, indent, XMTDump); } if (XMTDump) { StartElement(trace, "Descr", indent, XMTDump, 1); indent++; } //ESDescr if (gf_list_count(od->ES_ID_IncDescriptors)) { DumpDescList(od->ES_ID_IncDescriptors, trace, indent, "esDescrInc", XMTDump, 0); } else { DumpDescList(od->ES_ID_RefDescriptors, trace, indent, "esDescrRef", XMTDump, 0); } DumpDescList(od->OCIDescriptors, trace, indent, "ociDescr", XMTDump, 0); DumpDescListFilter(od->IPMP_Descriptors, trace, indent, "ipmpDescrPtr", XMTDump, GF_ODF_IPMP_PTR_TAG); DumpDescListFilter(od->IPMP_Descriptors, trace, indent, "ipmpDescr", XMTDump, GF_ODF_IPMP_TAG); DumpDescList(od->extensionDescriptors, trace, indent, "extDescr", XMTDump, 0); if (XMTDump) { indent--; EndElement(trace, "Descr", indent, XMTDump, 1); } indent--; EndDescDump(trace, "MP4ObjectDescriptor", indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_oci_date(GF_OCI_Data *ocd, FILE *trace, u32 indent, Bool XMTDump){ StartDescDump(trace, "OCICreationDateDescriptor", indent, XMTDump); indent++; DumpString(trace, "OCICreationDate", ocd->OCICreationDate, indent, XMTDump); indent--; EndSubElement(trace, indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_oci_name(GF_OCICreators *ocn, FILE *trace, u32 indent, Bool XMTDump){ GF_OCICreator_item *p; u32 i; StartDescDump(trace, "OCICreatorNameDescriptor", indent, XMTDump); indent++; i=0; while ((p = (GF_OCICreator_item *)gf_list_enum(ocn->OCICreators, &i))) { StartSubElement(trace, "Creator", indent, XMTDump); DumpInt(trace, "languageCode", p->langCode, indent, XMTDump); DumpBool(trace, "isUTF8", p->isUTF8, indent, XMTDump); DumpString(trace, "name", p->OCICreatorName, indent, XMTDump); EndSubElement(trace, indent, XMTDump); } indent--; EndDescDump(trace, "OCICreatorNameDescriptor", indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_pl_idx(GF_PL_IDX *plid, FILE *trace, u32 indent, Bool XMTDump){ StartDescDump(trace, "ProfileLevelIndicationIndexDescriptor", indent, XMTDump); indent++; DumpInt(trace, "profileLevelIndicationIndex", plid->profileLevelIndicationIndex, indent, XMTDump); indent--; EndSubElement(trace, indent, XMTDump); return GF_OK;}GF_Err gf_odf_dump_qos(GF_QoS_Descriptor *qos, FILE *trace, u32 indent, Bool XMTDump){ GF_QoS_Default *p; u32 i; StartDescDump(trace, "QoS_Descriptor", indent, XMTDump); indent++; if (qos->predefined) { StartSubElement(trace, "predefined", indent, XMTDump); DumpInt(trace, "value", qos->predefined, indent, XMTDump); EndSubElement(trace, indent, XMTDump); } else { i=0; while ((p = (GF_QoS_Default *)gf_list_enum(qos->QoS_Qualifiers, &i))) { switch (p->tag) { case QoSMaxDelayTag: StartSubElement(trace, "QoSMaxDelay", indent, XMTDump); DumpInt(trace, "value", ((GF_QoS_MaxDelay *)p)->MaxDelay, indent, XMTDump); EndSubElement(trace, indent, XMTDump);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -