📄 box_funcs.c
字号:
/* ISO FF extensions for MPEG-21 */ case GF_ISOM_BOX_TYPE_META: meta_del(a); return; case GF_ISOM_BOX_TYPE_XML: xml_del(a); return; case GF_ISOM_BOX_TYPE_BXML: bxml_del(a); return; case GF_ISOM_BOX_TYPE_ILOC: iloc_del(a); return; case GF_ISOM_BOX_TYPE_PITM: pitm_del(a); return; case GF_ISOM_BOX_TYPE_IPRO: ipro_del(a); return; case GF_ISOM_BOX_TYPE_INFE: infe_del(a); return; case GF_ISOM_BOX_TYPE_IINF: iinf_del(a); return; case GF_ISOM_BOX_TYPE_IMIF: imif_del(a); return; case GF_ISOM_BOX_TYPE_IPMC: ipmc_del(a); return; case GF_ISOM_BOX_TYPE_SINF: sinf_del(a); return; case GF_ISOM_BOX_TYPE_FRMA: frma_del(a); return; case GF_ISOM_BOX_TYPE_SCHM: schm_del(a); return; case GF_ISOM_BOX_TYPE_SCHI: schi_del(a); return; case GF_ISOM_BOX_TYPE_ENCA: case GF_ISOM_BOX_TYPE_ENCV: case GF_ISOM_BOX_TYPE_ENCS: a->type = ((GF_SampleEntryBox *)a)->protection_info->original_format->data_format; gf_isom_box_del(a); return; case GF_ISOM_BOX_TYPE_UUID: uuid_del(a); return; /* Apple extensions */ case GF_ISOM_BOX_TYPE_ILST: ilst_del(a); return; case GF_ISOM_BOX_TYPE_0xA9NAM: case GF_ISOM_BOX_TYPE_0xA9CMT: case GF_ISOM_BOX_TYPE_0xA9DAY: case GF_ISOM_BOX_TYPE_0xA9ART: case GF_ISOM_BOX_TYPE_0xA9TRK: case GF_ISOM_BOX_TYPE_0xA9ALB: case GF_ISOM_BOX_TYPE_0xA9COM: case GF_ISOM_BOX_TYPE_0xA9WRT: case GF_ISOM_BOX_TYPE_0xA9TOO: case GF_ISOM_BOX_TYPE_0xA9CPY: case GF_ISOM_BOX_TYPE_0xA9DES: case GF_ISOM_BOX_TYPE_0xA9GEN: case GF_ISOM_BOX_TYPE_0xA9GRP: case GF_ISOM_BOX_TYPE_0xA9ENC: case GF_ISOM_BOX_TYPE_aART: case GF_ISOM_BOX_TYPE_GNRE: case GF_ISOM_BOX_TYPE_DISK: case GF_ISOM_BOX_TYPE_TRKN: case GF_ISOM_BOX_TYPE_TMPO: case GF_ISOM_BOX_TYPE_CPIL: case GF_ISOM_BOX_TYPE_PGAP: case GF_ISOM_BOX_TYPE_COVR: ListItem_del(a); return; case GF_ISOM_BOX_TYPE_DATA: data_del(a); return; case GF_ISOM_BOX_TYPE_OHDR: ohdr_del(a); return; case GF_ISOM_BOX_TYPE_GRPI: grpi_del(a); return; case GF_ISOM_BOX_TYPE_MDRI: mdri_del(a); return; case GF_ISOM_BOX_TYPE_ODTT: odtt_del(a); return; case GF_ISOM_BOX_TYPE_ODRB: odrb_del(a); return; case GF_ISOM_BOX_TYPE_ODKM: odkm_del(a); return; case GF_ISOM_BOX_TYPE_ODAF: iSFM_del(a); return; default: defa_del(a); return; }}GF_Err gf_isom_box_read(GF_Box *a, GF_BitStream *bs){ switch (a->type) { case GF_ISOM_BOX_TYPE_HINT: case GF_ISOM_BOX_TYPE_DPND: case GF_ISOM_BOX_TYPE_MPOD: case GF_ISOM_BOX_TYPE_SYNC: case GF_ISOM_BOX_TYPE_IPIR: case GF_ISOM_BOX_TYPE_CHAP: return reftype_Read(a, bs); case GF_ISOM_BOX_TYPE_FREE: case GF_ISOM_BOX_TYPE_SKIP: return free_Read(a, bs); case GF_ISOM_BOX_TYPE_MDAT: return mdat_Read(a, bs); case GF_ISOM_BOX_TYPE_MOOV: return moov_Read(a, bs); case GF_ISOM_BOX_TYPE_MVHD: return mvhd_Read(a, bs); case GF_ISOM_BOX_TYPE_MDHD: return mdhd_Read(a, bs); case GF_ISOM_BOX_TYPE_VMHD: return vmhd_Read(a, bs); case GF_ISOM_BOX_TYPE_SMHD: return smhd_Read(a, bs); case GF_ISOM_BOX_TYPE_HMHD: return hmhd_Read(a, bs); case GF_ISOM_BOX_TYPE_ODHD: case GF_ISOM_BOX_TYPE_CRHD: case GF_ISOM_BOX_TYPE_SDHD: case GF_ISOM_BOX_TYPE_NMHD: return nmhd_Read(a, bs); case GF_ISOM_BOX_TYPE_STBL: return stbl_Read(a, bs); case GF_ISOM_BOX_TYPE_DINF: return dinf_Read(a, bs); case GF_ISOM_BOX_TYPE_URL: return url_Read(a, bs); case GF_ISOM_BOX_TYPE_URN: return urn_Read(a, bs); case GF_ISOM_BOX_TYPE_CPRT: return cprt_Read(a, bs); case GF_ISOM_BOX_TYPE_HDLR: return hdlr_Read(a, bs); case GF_ISOM_BOX_TYPE_IODS: return iods_Read(a, bs); case GF_ISOM_BOX_TYPE_TRAK: return trak_Read(a, bs); case GF_ISOM_BOX_TYPE_MP4S: return mp4s_Read(a, bs); case GF_ISOM_BOX_TYPE_MP4V: return mp4v_Read(a, bs); case GF_ISOM_BOX_TYPE_MP4A: return mp4a_Read(a, bs); case GF_ISOM_BOX_TYPE_EDTS: return edts_Read(a, bs); case GF_ISOM_BOX_TYPE_UDTA: return udta_Read(a, bs); case GF_ISOM_BOX_TYPE_DREF: return dref_Read(a, bs); case GF_ISOM_BOX_TYPE_STSD: return stsd_Read(a, bs); case GF_ISOM_BOX_TYPE_STTS: return stts_Read(a, bs); case GF_ISOM_BOX_TYPE_CTTS: return ctts_Read(a, bs); case GF_ISOM_BOX_TYPE_STSH: return stsh_Read(a, bs); case GF_ISOM_BOX_TYPE_ELST: return elst_Read(a, bs); case GF_ISOM_BOX_TYPE_STSC: return stsc_Read(a, bs); case GF_ISOM_BOX_TYPE_STZ2: case GF_ISOM_BOX_TYPE_STSZ: return stsz_Read(a, bs); case GF_ISOM_BOX_TYPE_STCO: return stco_Read(a, bs); case GF_ISOM_BOX_TYPE_STSS: return stss_Read(a, bs); case GF_ISOM_BOX_TYPE_STDP: return stdp_Read(a, bs); case GF_ISOM_BOX_TYPE_SDTP: return sdtp_Read(a, bs); case GF_ISOM_BOX_TYPE_CO64: return co64_Read(a, bs); case GF_ISOM_BOX_TYPE_ESDS: return esds_Read(a, bs); case GF_ISOM_BOX_TYPE_MINF: return minf_Read(a, bs); case GF_ISOM_BOX_TYPE_TKHD: return tkhd_Read(a, bs); case GF_ISOM_BOX_TYPE_TREF: return tref_Read(a, bs); case GF_ISOM_BOX_TYPE_MDIA: return mdia_Read(a, bs); case GF_ISOM_BOX_TYPE_CHPL: return chpl_Read(a, bs); case GF_ISOM_BOX_TYPE_FTYP: return ftyp_Read(a, bs); case GF_ISOM_BOX_TYPE_FADB: return padb_Read(a, bs); case GF_ISOM_BOX_TYPE_VOID: return void_Read(a, bs); case GF_ISOM_BOX_TYPE_STSF: return stsf_Read(a, bs); case GF_ISOM_BOX_TYPE_PDIN: return pdin_Read(a, bs); case GF_ISOM_BOX_TYPE_RTP_STSD: return ghnt_Read(a, bs); case GF_ISOM_BOX_TYPE_RTPO: return rtpo_Read(a, bs); case GF_ISOM_BOX_TYPE_HNTI: return hnti_Read(a, bs); case GF_ISOM_BOX_TYPE_SDP: return sdp_Read(a, bs); case GF_ISOM_BOX_TYPE_HINF: return hinf_Read(a, bs); case GF_ISOM_BOX_TYPE_RELY: return rely_Read(a, bs); case GF_ISOM_BOX_TYPE_TIMS: return tims_Read(a, bs); case GF_ISOM_BOX_TYPE_TSRO: return tsro_Read(a, bs); case GF_ISOM_BOX_TYPE_SNRO: return snro_Read(a, bs); case GF_ISOM_BOX_TYPE_TRPY: return trpy_Read(a, bs); case GF_ISOM_BOX_TYPE_NUMP: return nump_Read(a, bs); case GF_ISOM_BOX_TYPE_TOTL: return totl_Read(a, bs); case GF_ISOM_BOX_TYPE_NPCK: return npck_Read(a, bs); case GF_ISOM_BOX_TYPE_TPYL: return tpyl_Read(a, bs); case GF_ISOM_BOX_TYPE_TPAY: return tpay_Read(a, bs); case GF_ISOM_BOX_TYPE_MAXR: return maxr_Read(a, bs); case GF_ISOM_BOX_TYPE_DMED: return dmed_Read(a, bs); case GF_ISOM_BOX_TYPE_DIMM: return dimm_Read(a, bs); case GF_ISOM_BOX_TYPE_DREP: return drep_Read(a, bs); case GF_ISOM_BOX_TYPE_TMIN: return tmin_Read(a, bs); case GF_ISOM_BOX_TYPE_TMAX: return tmax_Read(a, bs); case GF_ISOM_BOX_TYPE_PMAX: return pmax_Read(a, bs); case GF_ISOM_BOX_TYPE_DMAX: return dmax_Read(a, bs); case GF_ISOM_BOX_TYPE_PAYT: return payt_Read(a, bs); case GF_ISOM_BOX_TYPE_NAME: return name_Read(a, bs); #ifndef GF_ISOM_NO_FRAGMENTS case GF_ISOM_BOX_TYPE_MVEX: return mvex_Read(a, bs); case GF_ISOM_BOX_TYPE_MEHD: return mehd_Read(a, bs); case GF_ISOM_BOX_TYPE_TREX: return trex_Read(a, bs); case GF_ISOM_BOX_TYPE_MOOF: return moof_Read(a, bs); case GF_ISOM_BOX_TYPE_MFHD: return mfhd_Read(a, bs); case GF_ISOM_BOX_TYPE_TRAF: return traf_Read(a, bs); case GF_ISOM_BOX_TYPE_TFHD: return tfhd_Read(a, bs); case GF_ISOM_BOX_TYPE_TRUN: return trun_Read(a, bs);#endif /*3GPP boxes*/ case GF_ISOM_SUBTYPE_3GP_AMR: case GF_ISOM_SUBTYPE_3GP_AMR_WB: case GF_ISOM_SUBTYPE_3GP_EVRC: case GF_ISOM_SUBTYPE_3GP_QCELP: case GF_ISOM_SUBTYPE_3GP_SMV: return gppa_Read(a, bs); case GF_ISOM_SUBTYPE_3GP_H263: return gppv_Read(a, bs); case GF_ISOM_BOX_TYPE_DAMR: case GF_ISOM_BOX_TYPE_DEVC: case GF_ISOM_BOX_TYPE_DQCP: case GF_ISOM_BOX_TYPE_DSMV: case GF_ISOM_BOX_TYPE_D263: return gppc_Read(a, bs); case GF_ISOM_BOX_TYPE_AVCC: return avcc_Read(a, bs); case GF_ISOM_BOX_TYPE_BTRT: return btrt_Read(a, bs); case GF_ISOM_BOX_TYPE_M4DS: return m4ds_Read(a, bs); case GF_ISOM_BOX_TYPE_AVC1: return mp4v_Read(a, bs); /*3GPP streaming text*/ case GF_ISOM_BOX_TYPE_FTAB: return ftab_Read(a, bs); case GF_ISOM_BOX_TYPE_TX3G: return tx3g_Read(a, bs); case GF_ISOM_BOX_TYPE_STYL: return styl_Read(a, bs); case GF_ISOM_BOX_TYPE_HLIT: return hlit_Read(a, bs); case GF_ISOM_BOX_TYPE_HCLR: return hclr_Read(a, bs); case GF_ISOM_BOX_TYPE_KROK: return krok_Read(a, bs); case GF_ISOM_BOX_TYPE_DLAY: return dlay_Read(a, bs); case GF_ISOM_BOX_TYPE_HREF: return href_Read(a, bs); case GF_ISOM_BOX_TYPE_TBOX: return tbox_Read(a, bs); case GF_ISOM_BOX_TYPE_BLNK: return blnk_Read(a, bs); case GF_ISOM_BOX_TYPE_TWRP: return twrp_Read(a, bs); /* ISMA 1.0 Encryption and Authentication V 1.0 */ case GF_ISOM_BOX_TYPE_IKMS: return iKMS_Read(a, bs); case GF_ISOM_BOX_TYPE_ISFM: return iSFM_Read(a, bs); /* ISO FF extensions for MPEG-21 */ case GF_ISOM_BOX_TYPE_META: return meta_Read(a, bs); case GF_ISOM_BOX_TYPE_XML: return xml_Read(a, bs); case GF_ISOM_BOX_TYPE_BXML: return bxml_Read(a, bs); case GF_ISOM_BOX_TYPE_ILOC: return iloc_Read(a, bs); case GF_ISOM_BOX_TYPE_PITM: return pitm_Read(a, bs); case GF_ISOM_BOX_TYPE_IPRO: return ipro_Read(a, bs); case GF_ISOM_BOX_TYPE_INFE: return infe_Read(a, bs); case GF_ISOM_BOX_TYPE_IINF: return iinf_Read(a, bs); case GF_ISOM_BOX_TYPE_IMIF: return imif_Read(a, bs); case GF_ISOM_BOX_TYPE_IPMC: return ipmc_Read(a, bs); case GF_ISOM_BOX_TYPE_SINF: return sinf_Read(a, bs); case GF_ISOM_BOX_TYPE_FRMA: return frma_Read(a, bs); case GF_ISOM_BOX_TYPE_SCHM: return schm_Read(a, bs); case GF_ISOM_BOX_TYPE_SCHI: return schi_Read(a, bs); case GF_ISOM_BOX_TYPE_ENCA: return mp4a_Read(a, bs); case GF_ISOM_BOX_TYPE_ENCV: return mp4v_Read(a, bs); case GF_ISOM_BOX_TYPE_ENCS: return mp4s_Read(a, bs); case GF_ISOM_BOX_TYPE_UUID: return uuid_Read(a, bs); /* Apple extensions */ case GF_ISOM_BOX_TYPE_ILST: return ilst_Read(a, bs); case GF_ISOM_BOX_TYPE_0xA9NAM: case GF_ISOM_BOX_TYPE_0xA9CMT: case GF_ISOM_BOX_TYPE_0xA9DAY: case GF_ISOM_BOX_TYPE_0xA9ART: case GF_ISOM_BOX_TYPE_0xA9TRK: case GF_ISOM_BOX_TYPE_0xA9ALB: case GF_ISOM_BOX_TYPE_0xA9COM: case GF_ISOM_BOX_TYPE_0xA9WRT: case GF_ISOM_BOX_TYPE_0xA9TOO: case GF_ISOM_BOX_TYPE_0xA9CPY: case GF_ISOM_BOX_TYPE_0xA9DES: case GF_ISOM_BOX_TYPE_0xA9GEN: case GF_ISOM_BOX_TYPE_0xA9GRP: case GF_ISOM_BOX_TYPE_0xA9ENC: case GF_ISOM_BOX_TYPE_aART: case GF_ISOM_BOX_TYPE_GNRE: case GF_ISOM_BOX_TYPE_DISK: case GF_ISOM_BOX_TYPE_TRKN: case GF_ISOM_BOX_TYPE_TMPO: case GF_ISOM_BOX_TYPE_CPIL: case GF_ISOM_BOX_TYPE_PGAP: case GF_ISOM_BOX_TYPE_COVR: return ListItem_Read(a, bs); case GF_ISOM_BOX_TYPE_DATA: return data_Read(a, bs); case GF_ISOM_BOX_TYPE_OHDR: return ohdr_Read(a, bs); case GF_ISOM_BOX_TYPE_GRPI: return grpi_Read(a, bs); case GF_ISOM_BOX_TYPE_MDRI: return mdri_Read(a, bs); case GF_ISOM_BOX_TYPE_ODTT: return odtt_Read(a, bs); case GF_ISOM_BOX_TYPE_ODRB: return odrb_Read(a, bs); case GF_ISOM_BOX_TYPE_ODKM: return odkm_Read(a, bs); case GF_ISOM_BOX_TYPE_ODAF: return iSFM_Read(a, bs); default: return defa_Read(a, bs); }}/*from here, for write/edit versions*/#ifndef GPAC_READ_ONLYGF_Err gf_isom_box_write(GF_Box *a, GF_BitStream *bs){ switch (a->type) { case GF_ISOM_BOX_TYPE_HINT: case GF_ISOM_BOX_TYPE_DPND: case GF_ISOM_BOX_TYPE_MPOD: case GF_ISOM_BOX_TYPE_SYNC: case GF_ISOM_BOX_TYPE_IPIR: case GF_ISOM_BOX_TYPE_CHAP: return reftype_Write(a, bs); case GF_ISOM_BOX_TYPE_FREE: case GF_ISOM_BOX_TYPE_SKIP: return free_Write(a, bs); case GF_ISOM_BOX_TYPE_MDAT: return mdat_Write(a, bs); case GF_ISOM_BOX_TYPE_MOOV: return moov_Write(a, bs); case GF_ISOM_BOX_TYPE_MVHD: return mvhd_Write(a, bs); case GF_ISOM_BOX_TYPE_MDHD: return mdhd_Write(a, bs); case GF_ISOM_BOX_TYPE_VMHD: return vmhd_Write(a, bs); case GF_ISOM_BOX_TYPE_SMHD: return smhd_Write(a, bs); case GF_ISOM_BOX_TYPE_HMHD: return hmhd_Write(a, bs); case GF_ISOM_BOX_TYPE_ODHD: case GF_ISOM_BOX_TYPE_CRHD: case GF_ISOM_BOX_TYPE_SDHD: case GF_ISOM_BOX_TYPE_NMHD: return nmhd_Write(a, bs); case GF_ISOM_BOX_TYPE_STBL: return stbl_Write(a, bs); case GF_ISOM_BOX_TYPE_DINF: return dinf_Write(a, bs); case GF_ISOM_BOX_TYPE_URL: return url_Write(a, bs); case GF_ISOM_BOX_TYPE_URN: return urn_Write(a, bs); case GF_ISOM_BOX_TYPE_CHPL: return chpl_Write(a, bs); case GF_ISOM_BOX_TYPE_CPRT: return cprt_Write(a, bs); case GF_ISOM_BOX_TYPE_HDLR: return hdlr_Write(a, bs); case GF_ISOM_BOX_TYPE_IODS: return iods_Write(a, bs); case GF_ISOM_BOX_TYPE_TRAK: return trak_Write(a, bs); case GF_ISOM_BOX_TYPE_MP4S: return mp4s_Write(a, bs); case GF_ISOM_BOX_TYPE_MP4V: return mp4v_Write(a, bs); case GF_ISOM_BOX_TYPE_MP4A: return mp4a_Write(a, bs); case GF_ISOM_BOX_TYPE_GNRM: return gnrm_Write(a, bs); case GF_ISOM_BOX_TYPE_GNRV: return gnrv_Write(a, bs); case GF_ISOM_BOX_TYPE_GNRA: return gnra_Write(a, bs); case GF_ISOM_BOX_TYPE_EDTS: return edts_Write(a, bs); case GF_ISOM_BOX_TYPE_UDTA: return udta_Write(a, bs); case GF_ISOM_BOX_TYPE_DREF: return dref_Write(a, bs); case GF_ISOM_BOX_TYPE_STSD: return stsd_Write(a, bs); case GF_ISOM_BOX_TYPE_STTS: return stts_Write(a, bs); case GF_ISOM_BOX_TYPE_CTTS: return ctts_Write(a, bs); case GF_ISOM_BOX_TYPE_STSH: return stsh_Write(a, bs); case GF_ISOM_BOX_TYPE_ELST: return elst_Write(a, bs); case GF_ISOM_BOX_TYPE_STSC: return stsc_Write(a, bs); case GF_ISOM_BOX_TYPE_STZ2: case GF_ISOM_BOX_TYPE_STSZ: return stsz_Write(a, bs); case GF_ISOM_BOX_TYPE_STCO: return stco_Write(a, bs); case GF_ISOM_BOX_TYPE_STSS: return stss_Write(a, bs); case GF_ISOM_BOX_TYPE_STDP: return stdp_Write(a, bs); case GF_ISOM_BOX_TYPE_SDTP: return sdtp_Write(a, bs); case GF_ISOM_BOX_TYPE_CO64: return co64_Write(a, bs); case GF_ISOM_BOX_TYPE_ESDS: return esds_Write(a, bs); case GF_ISOM_BOX_TYPE_MINF: return minf_Write(a, bs); case GF_ISOM_BOX_TYPE_TKHD: return tkhd_Write(a, bs); case GF_ISOM_BOX_TYPE_TREF: return tref_Write(a, bs); case GF_ISOM_BOX_TYPE_MDIA: return mdia_Write(a, bs); case GF_ISOM_BOX_TYPE_FTYP: return ftyp_Write(a, bs); case GF_ISOM_BOX_TYPE_FADB: return padb_Write(a, bs); case GF_ISOM_BOX_TYPE_VOID: return void_Write(a, bs); case GF_ISOM_BOX_TYPE_STSF: return stsf_Write(a, bs); case GF_ISOM_BOX_TYPE_PDIN: return pdin_Write(a, bs);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -