⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 odf_dump.c

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 C
📖 第 1 页 / 共 5 页
字号:
	StartElement(trace, "SampleDescriptions", indent, XMTDump, 1);	indent++;	OD_FORMAT_INDENT(ind_buf, indent);		count = gf_list_count(desc->sample_descriptions);	for (i=0; i<count; i++) {		char szStyles[1024];		u32 j;		GF_TextSampleDescriptor *sd = (GF_TextSampleDescriptor *)gf_list_get(desc->sample_descriptions, i);		if (!XMTDump) fprintf(trace, "%s", ind_buf);		StartDescDump(trace, "TextSampleDescriptor", indent, XMTDump);		indent++;		DumpIntHex(trace, "displayFlags", sd->displayFlags, indent, XMTDump, 0);		DumpInt(trace, "horiz_justif", sd->horiz_justif, indent, XMTDump);		DumpInt(trace, "vert_justif", sd->vert_justif, indent, XMTDump);		DumpIntHex(trace, "back_color", sd->back_color, indent, XMTDump, 0);		DumpInt(trace, "top", sd->default_pos.top, indent, XMTDump);		DumpInt(trace, "bottom", sd->default_pos.bottom, indent, XMTDump);		DumpInt(trace, "left", sd->default_pos.left, indent, XMTDump);		DumpInt(trace, "right", sd->default_pos.right, indent, XMTDump);		DumpInt(trace, "style_font_ID", sd->default_style.fontID, indent, XMTDump);		DumpInt(trace, "style_font_size", sd->default_style.font_size, indent, XMTDump);		DumpIntHex(trace, "style_text_color", sd->default_style.text_color, indent, XMTDump, 0);		strcpy(szStyles, "");		if (sd->default_style.style_flags & GF_TXT_STYLE_BOLD) strcat(szStyles, "bold ");		if (sd->default_style.style_flags & GF_TXT_STYLE_ITALIC) strcat(szStyles, "italic ");		if (sd->default_style.style_flags & GF_TXT_STYLE_UNDERLINED) strcat(szStyles, "underlined ");		if (strlen(szStyles)) DumpString(trace, "style_flag", szStyles, indent, XMTDump);		for (j=0; j<sd->font_count; j++) {			DumpInt(trace, "fontID", sd->fonts[j].fontID, indent, XMTDump);			DumpString(trace, "fontName", sd->fonts[i].fontName, indent, XMTDump);		}		indent--;		EndDescDump(trace, "TextSampleDescriptor", indent, XMTDump);	}	indent--;	EndElement(trace, "SampleDescriptions", indent, XMTDump, 1);	indent--;	EndDescDump(trace, "TextConfig", indent, XMTDump);	return GF_OK;}GF_Err DumpRawTextConfig(GF_DefaultDescriptor *dsi, FILE *trace, u32 indent, Bool XMTDump, u32 oti){	GF_TextConfig *cfg = (GF_TextConfig *) gf_odf_desc_new(GF_ODF_TEXT_CFG_TAG);	GF_Err e = gf_odf_get_text_config(dsi, (u8) oti, cfg);	if (!e) gf_odf_dump_desc(cfg, trace, indent, XMTDump);	gf_odf_desc_del((GF_Descriptor *) cfg);	return e;}GF_Err gf_odf_dump_ui_cfg(GF_UIConfig *uid, FILE *trace, u32 indent, Bool XMTDump){	char devName[255];	u32 i;	StartDescDump(trace, "UIConfig" , indent, XMTDump);	indent++;	DumpString(trace, "deviceName", uid->deviceName, indent, XMTDump);		if (!stricmp(devName, "StringSensor") && uid->termChar) {		devName[0] = uid->termChar;		devName[1] = 0;		DumpString(trace, "termChar", devName, indent, XMTDump);		devName[0] = uid->delChar;		DumpString(trace, "delChar", devName, indent, XMTDump);	}	if (uid->ui_data_length) {		if (!stricmp(uid->deviceName, "HTKSensor")) {			u32 nb_word, nbPhone, c, j;			GF_BitStream *bs = gf_bs_new(uid->ui_data, uid->ui_data_length, GF_BITSTREAM_READ);			char szPh[3];			StartAttribute(trace, "uiData", indent, XMTDump);			if (!XMTDump) fprintf(trace, "\"");			fprintf(trace, "HTK:");			szPh[2] = 0;			nb_word = gf_bs_read_int(bs, 8);			for (i=0; i<nb_word; i++) {				nbPhone = gf_bs_read_int(bs, 8);				if (i) fprintf(trace, ";");				while ((c=gf_bs_read_int(bs, 8))) fprintf(trace, "%c", c);				fprintf(trace, " ");				for (j=0; j<nbPhone; j++) {					gf_bs_read_data(bs, szPh, 2);					if (j) fprintf(trace, " ");					if (!stricmp(szPh, "vc")) fprintf(trace, "vcl");					else fprintf(trace, "%s", szPh);				}			}			if (!XMTDump) fprintf(trace, "\"");			EndAttribute(trace, indent, XMTDump);			gf_bs_del(bs);		} else {			DumpData(trace, "uiData", uid->ui_data, uid->ui_data_length, indent, XMTDump);		}	}	indent--;	EndAttributes(trace, indent, XMTDump);	EndDescDump(trace, "UIConfig", indent, XMTDump);	return GF_OK;}GF_Err DumpRawUIConfig(GF_DefaultDescriptor *dsi, FILE *trace, u32 indent, Bool XMTDump, u32 oti){	char devName[255];	u32 i, len;	GF_BitStream *bs;	bs = gf_bs_new(dsi->data, dsi->dataLength, GF_BITSTREAM_READ);	StartDescDump(trace, "UIConfig" , indent, XMTDump);	indent++;	len = gf_bs_read_int(bs, 8);	for (i=0; i<len; i++) devName[i] = gf_bs_read_int(bs, 8);	devName[i] = 0;	DumpString(trace, "deviceName", devName, indent, XMTDump);		if (!stricmp(devName, "StringSensor") && gf_bs_available(bs)) {		devName[0] = gf_bs_read_int(bs, 8);		devName[1] = 0;		DumpString(trace, "termChar", devName, indent, XMTDump);		devName[0] = gf_bs_read_int(bs, 8);		DumpString(trace, "delChar", devName, indent, XMTDump);	}	len = (u32) gf_bs_available(bs);	if (len) {		if (!stricmp(devName, "HTKSensor")) {			u32 nb_word, nbPhone, c, j;			char szPh[3];			StartAttribute(trace, "uiData", indent, XMTDump);			if (!XMTDump) fprintf(trace, "\"");			fprintf(trace, "HTK:");			szPh[2] = 0;			nb_word = gf_bs_read_int(bs, 8);			for (i=0; i<nb_word; i++) {				nbPhone = gf_bs_read_int(bs, 8);				if (i) fprintf(trace, ";");				while ((c=gf_bs_read_int(bs, 8))) fprintf(trace, "%c", c);				fprintf(trace, " ");				for (j=0; j<nbPhone; j++) {					gf_bs_read_data(bs, szPh, 2);					if (j) fprintf(trace, " ");					if (!stricmp(szPh, "vc")) fprintf(trace, "vcl");					else fprintf(trace, "%s", szPh);				}			}			if (!XMTDump) fprintf(trace, "\"");			EndAttribute(trace, indent, XMTDump);		} else {			char *data = dsi->data;			data += (u32) gf_bs_get_position(bs);			DumpData(trace, "uiData", data, len, indent, XMTDump);		}	}	indent--;	EndAttributes(trace, indent, XMTDump);	EndDescDump(trace, "UIConfig", indent, XMTDump);	gf_bs_del(bs);	return GF_OK;}GF_Err OD_DumpDSI(GF_DefaultDescriptor *dsi, FILE *trace, u32 indent, Bool XMTDump, u32 streamType, u32 oti){	switch (streamType) {	case GF_STREAM_SCENE:		if (oti<=2) return DumpRawBIFSConfig(dsi, trace, indent, XMTDump, oti);		break;	case GF_STREAM_INTERACT:		return DumpRawUIConfig(dsi, trace, indent, XMTDump, oti);	case GF_STREAM_TEXT:		if (oti==0x08) return DumpRawTextConfig(dsi, trace, indent, XMTDump, oti);		break;	default:		break;	}	return gf_odf_dump_desc(dsi, trace, indent, XMTDump);}GF_Err gf_odf_dump_dcd(GF_DecoderConfig *dcd, FILE *trace, u32 indent, Bool XMTDump){	StartDescDump(trace, "DecoderConfigDescriptor", indent, XMTDump);	indent++;	DumpInt(trace, "objectTypeIndication", dcd->objectTypeIndication, indent, XMTDump);	DumpInt(trace, "streamType", dcd->streamType, indent, XMTDump);	DumpInt(trace, "upStream", dcd->upstream, indent, XMTDump);	DumpInt(trace, "bufferSizeDB", dcd->bufferSizeDB, indent, XMTDump);	DumpInt(trace, "maxBitrate", dcd->maxBitrate, indent, XMTDump);	DumpInt(trace, "avgBitrate", dcd->avgBitrate, indent, XMTDump);	EndAttributes(trace, indent, XMTDump);	if (dcd->decoderSpecificInfo) {		if (dcd->decoderSpecificInfo->tag==GF_ODF_DSI_TAG) {			if (dcd->decoderSpecificInfo->dataLength) {				StartElement(trace, "decSpecificInfo" , indent, XMTDump, 0);				OD_DumpDSI(dcd->decoderSpecificInfo, trace, indent + (XMTDump ? 1 : 0), XMTDump, dcd->streamType, dcd->objectTypeIndication);				EndElement(trace, "decSpecificInfo" , indent, XMTDump, 0);			}		} else {			StartElement(trace, "decSpecificInfo" , indent, XMTDump, 0);			gf_odf_dump_desc(dcd->decoderSpecificInfo, trace, indent + (XMTDump ? 1 : 0), XMTDump);			EndElement(trace, "decSpecificInfo" , indent, XMTDump, 0);		}	}	DumpDescList(dcd->profileLevelIndicationIndexDescriptor, trace, indent, "profileLevelIndicationIndexDescr", XMTDump, 0);	indent--;	EndDescDump(trace, "DecoderConfigDescriptor", indent, XMTDump);	return GF_OK;}GF_Err gf_odf_dump_slc(GF_SLConfig *sl, FILE *trace, u32 indent, Bool XMTDump){	StartDescDump(trace, "SLConfigDescriptor", indent, XMTDump);	EndAttributes(trace, indent, XMTDump);	indent++;	if (sl->predefined) {		StartSubElement(trace, "predefined" , indent, XMTDump);		DumpInt(trace, XMTDump ? "value" : "predefined", sl->predefined, indent, XMTDump);		EndSubElement(trace, indent, XMTDump);	}	if (XMTDump) StartSubElement(trace, "custom" , indent, XMTDump);	if (!sl->predefined) {		DumpBool(trace, "useAccessUnitStartFlag", sl->useAccessUnitStartFlag, indent, XMTDump);		DumpBool(trace, "useAccessUnitEndFlag", sl->useAccessUnitEndFlag, indent, XMTDump);		DumpBool(trace, "useRandomAccessPointFlag", sl->useRandomAccessPointFlag, indent, XMTDump);		DumpBool(trace, "usePaddingFlag", sl->usePaddingFlag, indent, XMTDump);		if (!XMTDump) DumpBool(trace, "useTimeStampsFlag", sl->useTimestampsFlag, indent, XMTDump);		DumpBool(trace, "useIdleFlag", sl->useIdleFlag, indent, XMTDump);		if (!XMTDump) DumpBool(trace, "durationFlag", sl->durationFlag, indent, XMTDump);		DumpInt(trace, "timeStampResolution", sl->timestampResolution, indent, XMTDump);		DumpInt(trace, "OCRResolution", sl->OCRResolution, indent, XMTDump);		DumpInt(trace, "timeStampLength", sl->timestampLength, indent, XMTDump);		DumpInt(trace, "OCRLength", sl->OCRLength, indent, XMTDump);		DumpInt(trace, "AU_Length", sl->AULength, indent, XMTDump);		DumpInt(trace, "instantBitrateLength", sl->instantBitrateLength, indent, XMTDump);		DumpInt(trace, "degradationPriorityLength", sl->degradationPriorityLength, indent, XMTDump);		DumpInt(trace, "AU_SeqNumLength", sl->AUSeqNumLength, indent, XMTDump);		DumpInt(trace, "packetSeqNumLength", sl->packetSeqNumLength, indent, XMTDump);	}	EndAttributes(trace, indent, XMTDump);	indent++;	if (sl->durationFlag) {		StartSubElement(trace, "Duration" , indent, XMTDump);		DumpInt(trace, "timescale", sl->timeScale, indent, XMTDump);		DumpInt(trace, "accessUnitDuration", sl->AUDuration, indent, XMTDump);		DumpInt(trace, "compositionUnitDuration", sl->CUDuration, indent, XMTDump);		EndSubElement(trace, indent, XMTDump);	}	if (! sl->useTimestampsFlag) {		StartSubElement(trace, "noUseTimeStamps" , indent, XMTDump);		DumpInt(trace, "startDecodingTimeStamp", (u32) sl->startDTS, indent, XMTDump);		DumpInt(trace, "startCompositionTimeStamp", (u32) sl->startCTS, indent, XMTDump);		EndSubElement(trace, indent, XMTDump);	}	indent--;	if (XMTDump) EndElement(trace, "custom" , indent, XMTDump, 1);	indent--;	EndDescDump(trace, "SLConfigDescriptor", indent, XMTDump);	return GF_OK;}GF_Err gf_odf_dump_cc(GF_CCDescriptor *ccd, FILE *trace, u32 indent, Bool XMTDump){	StartDescDump(trace, "ContentClassificationDescriptor", indent, XMTDump);	DumpInt(trace, "classificationEntity", ccd->classificationEntity, indent, XMTDump);	DumpInt(trace, "classificationTable", ccd->classificationTable, indent, XMTDump);	DumpData(trace, "ccd->contentClassificationData", ccd->contentClassificationData, ccd->dataLength, indent, XMTDump);	EndAttributes(trace, indent, XMTDump);	EndDescDump(trace, "ContentClassificationDescriptor", indent, XMTDump);	return GF_OK;}GF_Err gf_odf_dump_cc_date(GF_CC_Date *cdd, FILE *trace, u32 indent, Bool XMTDump){	StartDescDump(trace, "ContentClassificationDescriptor", indent, XMTDump);	DumpString(trace, "creationDate", cdd->contentCreationDate, indent, XMTDump);	EndAttributes(trace, indent, XMTDump);	EndDescDump(trace, "ContentClassificationDescriptor", indent, XMTDump);	return GF_OK;}GF_Err gf_odf_dump_cc_name(GF_CC_Name *cnd, FILE *trace, u32 indent, Bool XMTDump){	u32 i;	GF_ContentCreatorInfo *p;	StartDescDump(trace, "ContentCreatorNameDescriptor", indent, XMTDump);	EndAttributes(trace, indent, XMTDump);	indent++;	i=0;	while ((p = (GF_ContentCreatorInfo *)gf_list_enum(cnd->ContentCreators, &i))) {		StartSubElement(trace, "Creator", indent, XMTDump);		DumpInt(trace, "languageCode", p->langCode, indent, XMTDump);		DumpBool(trace, "isUTF8", p->isUTF8, indent, XMTDump);		DumpString(trace, "Name", p->contentCreatorName, indent, XMTDump);		EndSubElement(trace, indent, XMTDump);	}	indent--;	EndDescDump(trace, "ContentCreatorNameDescriptor", indent, XMTDump);	return GF_OK;}GF_Err gf_odf_dump_ci(GF_CIDesc *cid, FILE *trace, u32 indent, Bool XMTDump){	StartDescDump(trace, "ContentIdentificationDescriptor", indent, XMTDump);	DumpBool(trace, "protectedContent", cid->protectedContent, indent, XMTDump);	EndAttributes(trace, indent, XMTDump);	indent++;	if (cid->contentTypeFlag) {		StartSubElement(trace, "contentType", indent, XMTDump);		DumpInt(trace, "contentType", cid->contentType, indent, XMTDump);		EndSubElement(trace, indent, XMTDump);	}	if (cid->contentIdentifierFlag) {		StartSubElement(trace, "contentIdentifierType", indent, XMTDump);		DumpInt(trace, "contentIdentifierType", cid->contentIdentifierType, indent, XMTDump);		DumpString(trace, "contentIdentifier", cid->contentIdentifier, indent, XMTDump);		EndSubElement(trace, indent, XMTDump);	}	indent--;	EndDescDump(trace, "ContentIdentificationDescriptor", indent, XMTDump);	return GF_OK;}GF_Err gf_odf_dump_default(GF_DefaultDescriptor *dd, FILE *trace, u32 indent, Bool XMTDump){	if (dd->tag == GF_ODF_DSI_TAG) {		StartDescDump(trace, "DecoderSpecificInfo", indent, XMTDump);		indent++;		if (XMTDump) {			DumpString(trace, "type", "auto", indent, XMTDump);			DumpData(trace, "src", dd->data, dd->dataLength, indent, XMTDump);		} else {			DumpData(trace, "info", dd->data, dd->dataLength, indent, XMTDump);		}		indent--;		if (XMTDump) {			EndSubElement(trace, indent, 1);		} else {			EndDescDump(trace, "", indent, 0);		}	} else {		StartDescDump(trace, "DefaultDescriptor", indent, XMTDump);		indent++;		DumpData(trace, "data", dd->data, dd->dataLength, indent, XMTDump);		indent--;		EndSubElement(trace, indent, XMTDump);	}	return GF_OK;}GF_Err gf_odf_dump_esd_inc(GF_ES_ID_Inc *esd_inc, FILE *trace, u32 indent, Bool XMTDump){	StartDescDump(trace, "ES_ID_Inc", indent, XMTDump);	indent++;	DumpInt(trace, "trackID", esd_inc->trackID, indent, XMTDump);	indent--;	EndAttributes(trace, indent, XMTDump);	EndDescDump(trace, "ES_ID_Inc", indent, XMTDump);	return GF_OK;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -