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

📄 box_dump.c

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 C
📖 第 1 页 / 共 5 页
字号:
	return GF_OK;}GF_Err stts_dump(GF_Box *a, FILE * trace){	GF_TimeToSampleBox *p;	u32 i;	GF_SttsEntry *t;	p = (GF_TimeToSampleBox *)a;	fprintf(trace, "<TimeToSampleBox EntryCount=\"%d\">\n", gf_list_count(p->entryList));	DumpBox(a, trace);	gf_full_box_dump(a, trace);	i=0;	while ((t = (GF_SttsEntry *)gf_list_enum(p->entryList, &i))) {		fprintf(trace, "<TimeToSampleEntry SampleDelta=\"%d\" SampleCount=\"%d\"/>\n", t->sampleDelta, t->sampleCount);	}	fprintf(trace, "</TimeToSampleBox>\n");	return GF_OK;}GF_Err ctts_dump(GF_Box *a, FILE * trace){	GF_CompositionOffsetBox *p;	u32 i;	GF_DttsEntry *t;	p = (GF_CompositionOffsetBox *)a;	fprintf(trace, "<CompositionOffsetBox EntryCount=\"%d\">\n", gf_list_count(p->entryList));	DumpBox(a, trace);	gf_full_box_dump(a, trace);	i=0;	while ((t = (GF_DttsEntry *)gf_list_enum(p->entryList, &i))) {		fprintf(trace, "<CompositionOffsetEntry CompositionOffset=\"%d\" SampleCount=\"%d\"/>\n", t->decodingOffset, t->sampleCount);	}	fprintf(trace, "</CompositionOffsetBox>\n");	return GF_OK;}GF_Err stsh_dump(GF_Box *a, FILE * trace){	GF_ShadowSyncBox *p;	u32 i;	GF_StshEntry *t;	p = (GF_ShadowSyncBox *)a;	fprintf(trace, "<SyncShadowBox EntryCount=\"%d\">\n", gf_list_count(p->entries));	DumpBox(a, trace);	gf_full_box_dump(a, trace);	i=0;	while ((t = (GF_StshEntry *)gf_list_enum(p->entries, &i))) {		fprintf(trace, "<SyncShadowEntry ShadowedSample=\"%d\" SyncSample=\"%d\"/>\n", t->shadowedSampleNumber, t->syncSampleNumber);	}	fprintf(trace, "</SyncShadowBox>\n");	return GF_OK;}GF_Err elst_dump(GF_Box *a, FILE * trace){	GF_EditListBox *p;	u32 i;	GF_EdtsEntry *t;	p = (GF_EditListBox *)a;	fprintf(trace, "<EditListBox EntryCount=\"%d\">\n", gf_list_count(p->entryList));	DumpBox(a, trace);	gf_full_box_dump(a, trace);	i=0;	while ((t = (GF_EdtsEntry *)gf_list_enum(p->entryList, &i))) {		fprintf(trace, "<EditListEntry Duration=\""LLD"\" MediaTime=\""LLD"\" MediaRate=\"%d\"/>\n", LLD_CAST t->segmentDuration, LLD_CAST t->mediaTime, t->mediaRate);	}	fprintf(trace, "</EditListBox>\n");	return GF_OK;}GF_Err stsc_dump(GF_Box *a, FILE * trace){	GF_SampleToChunkBox *p;	u32 i;	GF_StscEntry *t;	p = (GF_SampleToChunkBox *)a;	fprintf(trace, "<SampleToChunkBox EntryCount=\"%d\">\n", gf_list_count(p->entryList));	DumpBox(a, trace);	gf_full_box_dump(a, trace);	i=0;	while ((t = (GF_StscEntry *)gf_list_enum(p->entryList, &i))) {		fprintf(trace, "<SampleToChunkEntry FirstChunk=\"%d\" SamplesPerChunk=\"%d\" SampleDescriptionIndex=\"%d\"/>\n", t->firstChunk, t->samplesPerChunk, t->sampleDescriptionIndex);	}	fprintf(trace, "</SampleToChunkBox>\n");	return GF_OK;}GF_Err stsz_dump(GF_Box *a, FILE * trace){	GF_SampleSizeBox *p;	u32 i;	p = (GF_SampleSizeBox *)a;	fprintf(trace, "<%sBox SampleCount=\"%d\"", (a->type == GF_ISOM_BOX_TYPE_STSZ) ? "SampleSize" : "CompactSampleSize", p->sampleCount);	if (a->type == GF_ISOM_BOX_TYPE_STSZ) {		if (p->sampleSize) {			fprintf(trace, " ConstantSampleSize=\"%d\"", p->sampleSize);		}	} else {		fprintf(trace, " SampleSizeBits=\"%d\"", p->sampleSize);	}	fprintf(trace, ">\n");	DumpBox(a, trace);	gf_full_box_dump(a, trace);	if ((a->type != GF_ISOM_BOX_TYPE_STSZ) || !p->sampleSize) {		if (!p->sizes) {			fprintf(trace, "<!--WARNING: No Sample Size indications-->\n");		} else {			for (i=0; i<p->sampleCount; i++) {				fprintf(trace, "<SampleSizeEntry Size=\"%d\"/>\n", p->sizes[i]);			}		}	}	fprintf(trace, "</%sBox>\n", (a->type == GF_ISOM_BOX_TYPE_STSZ) ? "SampleSize" : "CompactSampleSize");	return GF_OK;}GF_Err stco_dump(GF_Box *a, FILE * trace){	GF_ChunkOffsetBox *p;	u32 i;	p = (GF_ChunkOffsetBox *)a;	fprintf(trace, "<ChunkOffsetBox EntryCount=\"%d\">\n", p->entryCount);	DumpBox(a, trace);	gf_full_box_dump(a, trace);	if (!p->offsets) {		fprintf(trace, "<!--Warning: No Chunk Offsets indications-->\n");	} else {		for (i=0; i<p->entryCount; i++) {			fprintf(trace, "<ChunkEntry offset=\"%d\"/>\n", p->offsets[i]);		}	}	fprintf(trace, "</ChunkOffsetBox>\n");	return GF_OK;}GF_Err stss_dump(GF_Box *a, FILE * trace){	GF_SyncSampleBox *p;	u32 i;	p = (GF_SyncSampleBox *)a;	fprintf(trace, "<SyncSampleBox EntryCount=\"%d\">\n", p->entryCount);	DumpBox(a, trace);	gf_full_box_dump(a, trace);	if (!p->sampleNumbers) {		fprintf(trace, "<!--Warning: No Key Frames indications-->\n");	} else {		for (i=0; i<p->entryCount; i++) {			fprintf(trace, "<SyncSampleEntry sampleNumber=\"%d\"/>\n", p->sampleNumbers[i]);		}	}	fprintf(trace, "</SyncSampleBox>\n");	return GF_OK;}GF_Err stdp_dump(GF_Box *a, FILE * trace){	GF_DegradationPriorityBox *p;	u32 i;	p = (GF_DegradationPriorityBox *)a;	fprintf(trace, "<DegradationPriorityBox EntryCount=\"%d\">\n", p->entryCount);	DumpBox(a, trace);	gf_full_box_dump(a, trace);	if (!p->priorities) {		fprintf(trace, "<!--Warning: No Degradation Priority indications-->\n");	} else {		for (i=0; i<p->entryCount; i++) {			fprintf(trace, "<DegradationPriorityEntry DegradationPriority=\"%d\"/>\n", p->priorities[i]);		}	}	fprintf(trace, "</DegradationPriorityBox>\n");	return GF_OK;}GF_Err sdtp_dump(GF_Box *a, FILE * trace){	GF_SampleDependencyTypeBox *p;	u32 i;	p = (GF_SampleDependencyTypeBox*)a;	fprintf(trace, "<SampleDependencyTypeBox SampleCount=\"%d\">\n", p->sampleCount);	DumpBox(a, trace);	gf_full_box_dump(a, trace);	if (!p->sample_info) {		fprintf(trace, "<!--Warning: No sample dependencies indications-->\n");	} else {		for (i=0; i<p->sampleCount; i++) {			u8 flag = p->sample_info[i];			fprintf(trace, "<SampleDependencyEntry ");			switch ( (flag >> 4) & 3) {			case 0: fprintf(trace, "dependsOnOther=\"unknown\" "); break;			case 1: fprintf(trace, "dependsOnOther=\"yes\" "); break;			case 2: fprintf(trace, "dependsOnOther=\"no\" "); break;			case 3: fprintf(trace, "dependsOnOther=\"!! RESERVED !!\" "); break;			}			switch ( (flag >> 2) & 3) {			case 0: fprintf(trace, "dependedOn=\"unknown\" "); break;			case 1: fprintf(trace, "dependedOn=\"yes\" "); break;			case 2: fprintf(trace, "dependedOn=\"no\" "); break;			case 3: fprintf(trace, "dependedOn=\"!! RESERVED !!\" "); break;			}			switch ( flag & 3) {			case 0: fprintf(trace, "hasRedundancy=\"unknown\" "); break;			case 1: fprintf(trace, "hasRedundancy=\"yes\" "); break;			case 2: fprintf(trace, "hasRedundancy=\"no\" "); break;			case 3: fprintf(trace, "hasRedundancy=\"!! RESERVED !!\" "); break;			}			fprintf(trace, " />\n");		}	}	fprintf(trace, "</SampleDependencyTypeBox>\n");	return GF_OK;}GF_Err co64_dump(GF_Box *a, FILE * trace){	GF_ChunkLargeOffsetBox *p;	u32 i;	p = (GF_ChunkLargeOffsetBox *)a;	fprintf(trace, "<ChunkLargeOffsetBox EntryCount=\"%d\">\n", p->entryCount);	DumpBox(a, trace);	gf_full_box_dump(a, trace);	if (!p->offsets) {		fprintf(trace, "<Warning: No Chunk Offsets indications/>\n");	} else {		for (i=0; i<p->entryCount; i++) 			fprintf(trace, "<ChunkOffsetEntry offset=\""LLD"\"/>\n", LLD_CAST p->offsets[i]);	}	fprintf(trace, "</ChunkLargeOffsetBox>\n");	return GF_OK;}GF_Err esds_dump(GF_Box *a, FILE * trace){	GF_ESDBox *p;	p = (GF_ESDBox *)a;	fprintf(trace, "<MPEG4ESDescriptorBox>\n");	DumpBox(a, trace);	gf_full_box_dump(a, trace);	if (p->desc) {		gf_odf_dump_desc(p->desc, trace, 1, 1);	} else {		fprintf(trace, "<!--INVALID MP4 FILE: ESD not present in MPEG Sample Description or corrupted-->\n");	}	fprintf(trace, "</MPEG4ESDescriptorBox>\n");	return GF_OK;}GF_Err minf_dump(GF_Box *a, FILE * trace){	GF_MediaInformationBox *p;	p = (GF_MediaInformationBox *)a;	fprintf(trace, "<MediaInformationBox>\n");	DumpBox(a, trace);	gf_box_dump(p->InfoHeader, trace);		gf_box_dump(p->dataInformation, trace);		gf_box_dump(p->sampleTable, trace);		fprintf(trace, "</MediaInformationBox>\n");	return GF_OK;}GF_Err tkhd_dump(GF_Box *a, FILE * trace){	GF_TrackHeaderBox *p;	p = (GF_TrackHeaderBox *)a;	fprintf(trace, "<TrackHeaderBox ");	fprintf(trace, "CreationTime=\""LLD"\" ModificationTime=\""LLD"\" TrackID=\"%d\" Duration=\""LLD"\"",		LLD_CAST p->creationTime, LLD_CAST p->modificationTime, p->trackID, LLD_CAST p->duration);		if (p->volume) {		fprintf(trace, " Volume=\"%.2f\"", (Float)p->volume / 256);	} else if (p->width || p->height) {		fprintf(trace, " Width=\"%.2f\" Height=\"%.2f\"", (Float)p->width / 65536, (Float)p->height / 65536);		if (p->layer) fprintf(trace, " Layer=\"%d\"", p->layer);		if (p->alternate_group) fprintf(trace, " AlternateGroup=\"%d\"", p->alternate_group);	}	fprintf(trace, ">\n");	if (p->width || p->height) {		fprintf(trace, "<Matrix m11=\"0x%.8x\" m12=\"0x%.8x\" m13=\"0x%.8x\" \								m21=\"0x%.8x\" m22=\"0x%.8x\" m23=\"0x%.8x\" \								m31=\"0x%.8x\" m32=\"0x%.8x\" m33=\"0x%.8x\"/>",								p->matrix[0], p->matrix[1], p->matrix[2],								p->matrix[3], p->matrix[4], p->matrix[5],								p->matrix[6], p->matrix[7], p->matrix[8]);	}	DumpBox(a, trace);	gf_full_box_dump(a, trace);	fprintf(trace, "</TrackHeaderBox>\n");	return GF_OK;}GF_Err tref_dump(GF_Box *a, FILE * trace){	GF_TrackReferenceBox *p;	p = (GF_TrackReferenceBox *)a;	fprintf(trace, "<TrackReferenceBox>\n");	DumpBox(a, trace);	gf_box_array_dump(p->boxList, trace);	fprintf(trace, "</TrackReferenceBox>\n");	return GF_OK;}GF_Err mdia_dump(GF_Box *a, FILE * trace){	GF_MediaBox *p;	p = (GF_MediaBox *)a;	fprintf(trace, "<MediaBox>\n");	DumpBox(a, trace);	gf_box_dump(p->mediaHeader, trace);	gf_box_dump(p->handler, trace);	gf_box_dump(p->information, trace);	fprintf(trace, "</MediaBox>\n");	return GF_OK;}GF_Err defa_dump(GF_Box *a, FILE * trace){	fprintf(trace, "<UnknownBox>\n");	DumpBox(a, trace);	fprintf(trace, "</UnknownBox>\n");	return GF_OK;}GF_Err void_dump(GF_Box *a, FILE * trace){	fprintf(trace, "<VoidBox/>\n");	return GF_OK;}GF_Err ftyp_dump(GF_Box *a, FILE * trace){	GF_FileTypeBox *p;	u32 i;	p = (GF_FileTypeBox *)a;	fprintf(trace, "<FileTypeBox MajorBrand=\"%s\" MinorVersion=\"%d\">\n", gf_4cc_to_str(p->majorBrand), p->minorVersion);	DumpBox(a, trace);	for (i=0; i<p->altCount; i++) {		fprintf(trace, "<BrandEntry AlternateBrand=\"%s\"/>\n", gf_4cc_to_str(p->altBrand[i]));	}	fprintf(trace, "</FileTypeBox>\n");	return GF_OK;}GF_Err padb_dump(GF_Box *a, FILE * trace){	GF_PaddingBitsBox *p;	u32 i;		p = (GF_PaddingBitsBox *)a;	fprintf(trace, "<PaddingBitsBox EntryCount=\"%d\">\n", p->SampleCount);	DumpBox(a, trace);	for (i=0; i<p->SampleCount; i+=1) {		fprintf(trace, "<PaddingBitsEntry PaddingBits=\"%d\"/>\n", p->padbits[i]);	}	fprintf(trace, "</PaddingBitsBox>\n");	return GF_OK;}GF_Err stsf_dump(GF_Box *a, FILE * trace){	GF_SampleFragmentBox *p;	GF_StsfEntry *ent;	u32 i, j, count;		p = (GF_SampleFragmentBox *)a;	count = gf_list_count(p->entryList);	fprintf(trace, "<SampleFragmentBox EntryCount=\"%d\">\n", count);	DumpBox(a, trace);	for (i=0; i<count; i++) {		ent = (GF_StsfEntry *)gf_list_get(p->entryList, i);		fprintf(trace, "<SampleFragmentEntry SampleNumber=\"%d\" FragmentCount=\"%d\">\n", ent->SampleNumber, ent->fragmentCount);		for (j=0;j<ent->fragmentCount;j++) fprintf(trace, "<FragmentSizeEntry size=\"%d\"/>\n", ent->fragmentSizes[j]);		fprintf(trace, "</SampleFragmentEntry>\n");	}	fprintf(trace, "</SampleFragmentBox>\n");	return GF_OK;}GF_Err gppa_dump(GF_Box *a, FILE * trace){	char *szName;	GF_3GPPAudioSampleEntryBox *p = (GF_3GPPAudioSampleEntryBox *)a;	switch (p->type) {	case GF_ISOM_SUBTYPE_3GP_AMR: szName = "AMRSampleDescription"; break;	case GF_ISOM_SUBTYPE_3GP_AMR_WB: szName = "AMR_WB_SampleDescription"; break;	case GF_ISOM_SUBTYPE_3GP_EVRC: szName = "EVRCSampleDescription"; break;	case GF_ISOM_SUBTYPE_3GP_QCELP: szName = "QCELPSampleDescription"; break;	case GF_ISOM_SUBTYPE_3GP_SMV: szName = "SMVSampleDescription"; break;	default: szName = "3GPAudioSampleDescription"; break;	}	fprintf(trace, "<%sBox", szName);	base_audio_entry_dump((GF_AudioSampleEntryBox *)p, trace);	fprintf(trace, ">\n");	DumpBox(a, trace);	if (p->info) {		gf_box_dump(p->info, trace);	} else {		fprintf(trace, "<!--INVALID 3GPP FILE: Config not present in Sample Description-->\n");	}	fprintf(trace, "</%sBox>\n", szName);	return GF_OK;}

⌨️ 快捷键说明

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