in src/isomedia/box_funcs.c [898:1552]
void gf_isom_box_del(GF_Box *a)
{
if (!a) return;
if (a->other_boxes) {
gf_isom_box_array_del(a->other_boxes);
a->other_boxes = NULL;
}
switch (a->type) {
case GF_ISOM_BOX_TYPE_REFT:
reftype_del(a);
return;
case GF_ISOM_BOX_TYPE_FREE:
case GF_ISOM_BOX_TYPE_SKIP:
free_del(a);
return;
case GF_ISOM_BOX_TYPE_MDAT:
mdat_del(a);
return;
case GF_ISOM_BOX_TYPE_MOOV:
moov_del(a);
return;
case GF_ISOM_BOX_TYPE_MVHD:
mvhd_del(a);
return;
case GF_ISOM_BOX_TYPE_MDHD:
mdhd_del(a);
return;
case GF_ISOM_BOX_TYPE_VMHD:
vmhd_del(a);
return;
case GF_ISOM_BOX_TYPE_SMHD:
smhd_del(a);
return;
case GF_ISOM_BOX_TYPE_HMHD:
hmhd_del(a);
return;
case GF_ISOM_BOX_TYPE_ODHD:
case GF_ISOM_BOX_TYPE_CRHD:
case GF_ISOM_BOX_TYPE_SDHD:
case GF_ISOM_BOX_TYPE_NMHD:
nmhd_del(a);
return;
case GF_ISOM_BOX_TYPE_STBL:
stbl_del(a);
return;
case GF_ISOM_BOX_TYPE_DINF:
dinf_del(a);
return;
case GF_ISOM_BOX_TYPE_URL:
url_del(a);
return;
case GF_ISOM_BOX_TYPE_URN:
urn_del(a);
return;
case GF_ISOM_BOX_TYPE_CHPL:
chpl_del(a);
return;
case GF_ISOM_BOX_TYPE_CPRT:
cprt_del(a);
return;
case GF_ISOM_BOX_TYPE_KIND:
kind_del(a);
return;
case GF_ISOM_BOX_TYPE_HDLR:
hdlr_del(a);
return;
case GF_ISOM_BOX_TYPE_IODS:
iods_del(a);
return;
case GF_ISOM_BOX_TYPE_TRAK:
trak_del(a);
return;
case GF_ISOM_BOX_TYPE_MP4S:
mp4s_del(a);
return;
case GF_4CC('2','6','4','b'):
case GF_ISOM_BOX_TYPE_MP4V:
mp4v_del(a);
return;
case GF_ISOM_BOX_TYPE_MP4A:
mp4a_del(a);
return;
case GF_ISOM_BOX_TYPE_GNRM:
gnrm_del(a);
return;
case GF_ISOM_BOX_TYPE_GNRV:
gnrv_del(a);
return;
case GF_ISOM_BOX_TYPE_GNRA:
gnra_del(a);
return;
case GF_ISOM_BOX_TYPE_EDTS:
edts_del(a);
return;
case GF_ISOM_BOX_TYPE_UDTA:
udta_del(a);
return;
case GF_ISOM_BOX_TYPE_DREF:
dref_del(a);
return;
case GF_ISOM_BOX_TYPE_STSD:
stsd_del(a);
return;
case GF_ISOM_BOX_TYPE_STTS:
stts_del(a);
return;
case GF_ISOM_BOX_TYPE_CTTS:
ctts_del(a);
return;
case GF_ISOM_BOX_TYPE_CSLG:
cslg_del(a);
return;
case GF_ISOM_BOX_TYPE_STSH:
stsh_del(a);
return;
case GF_ISOM_BOX_TYPE_ELST:
elst_del(a);
return;
case GF_ISOM_BOX_TYPE_STSC:
stsc_del(a);
return;
case GF_ISOM_BOX_TYPE_STZ2:
case GF_ISOM_BOX_TYPE_STSZ:
stsz_del(a);
return;
case GF_ISOM_BOX_TYPE_STCO:
stco_del(a);
return;
case GF_ISOM_BOX_TYPE_STSS:
stss_del(a);
return;
case GF_ISOM_BOX_TYPE_STDP:
stdp_del(a);
return;
case GF_ISOM_BOX_TYPE_SDTP:
sdtp_del(a);
return;
case GF_ISOM_BOX_TYPE_CO64:
co64_del(a);
return;
case GF_ISOM_BOX_TYPE_ESDS:
esds_del(a);
return;
case GF_ISOM_BOX_TYPE_MINF:
minf_del(a);
return;
case GF_ISOM_BOX_TYPE_TKHD:
tkhd_del(a);
return;
case GF_ISOM_BOX_TYPE_TREF:
tref_del(a);
return;
case GF_ISOM_BOX_TYPE_MDIA:
mdia_del(a);
return;
case GF_ISOM_BOX_TYPE_ELNG:
elng_del(a);
return;
case GF_ISOM_BOX_TYPE_FTYP:
case GF_ISOM_BOX_TYPE_STYP:
ftyp_del(a);
return;
case GF_ISOM_BOX_TYPE_PADB:
padb_del(a);
return;
case GF_ISOM_BOX_TYPE_VOID:
void_del(a);
return;
case GF_ISOM_BOX_TYPE_STSF:
stsf_del(a);
return;
case GF_ISOM_BOX_TYPE_PDIN:
pdin_del(a);
return;
case GF_ISOM_BOX_TYPE_SBGP:
sbgp_del(a);
return;
case GF_ISOM_BOX_TYPE_SGPD:
sgpd_del(a);
return;
case GF_ISOM_BOX_TYPE_SAIZ:
saiz_del(a);
return;
case GF_ISOM_BOX_TYPE_SAIO:
saio_del(a);
return;
case GF_ISOM_BOX_TYPE_PSSH:
pssh_del(a);
return;
case GF_ISOM_BOX_TYPE_TENC:
tenc_del(a);
return;
#ifndef GPAC_DISABLE_ISOM_HINTING
case GF_ISOM_BOX_TYPE_RTP_STSD:
ghnt_del(a);
return;
case GF_ISOM_BOX_TYPE_RTPO:
rtpo_del(a);
return;
case GF_ISOM_BOX_TYPE_HNTI:
hnti_del(a);
return;
case GF_ISOM_BOX_TYPE_SDP:
sdp_del(a);
return;
case GF_ISOM_BOX_TYPE_HINF:
hinf_del(a);
return;
case GF_ISOM_BOX_TYPE_RELY:
rely_del(a);
return;
case GF_ISOM_BOX_TYPE_TIMS:
tims_del(a);
return;
case GF_ISOM_BOX_TYPE_TSRO:
tsro_del(a);
return;
case GF_ISOM_BOX_TYPE_SNRO:
snro_del(a);
return;
case GF_ISOM_BOX_TYPE_TRPY:
trpy_del(a);
return;
case GF_ISOM_BOX_TYPE_NUMP:
nump_del(a);
return;
case GF_ISOM_BOX_TYPE_TOTL:
totl_del(a);
return;
case GF_ISOM_BOX_TYPE_NPCK:
npck_del(a);
return;
case GF_ISOM_BOX_TYPE_TPYL:
tpyl_del(a);
return;
case GF_ISOM_BOX_TYPE_TPAY:
tpay_del(a);
return;
case GF_ISOM_BOX_TYPE_MAXR:
maxr_del(a);
return;
case GF_ISOM_BOX_TYPE_DMED:
dmed_del(a);
return;
case GF_ISOM_BOX_TYPE_DIMM:
dimm_del(a);
return;
case GF_ISOM_BOX_TYPE_DREP:
drep_del(a);
return;
case GF_ISOM_BOX_TYPE_TMIN:
tmin_del(a);
return;
case GF_ISOM_BOX_TYPE_TMAX:
tmax_del(a);
return;
case GF_ISOM_BOX_TYPE_PMAX:
pmax_del(a);
return;
case GF_ISOM_BOX_TYPE_DMAX:
dmax_del(a);
return;
case GF_ISOM_BOX_TYPE_PAYT:
payt_del(a);
return;
case GF_ISOM_BOX_TYPE_NAME:
name_del(a);
return;
#endif /*GPAC_DISABLE_ISOM_HINTING*/
#ifndef GPAC_DISABLE_ISOM_FRAGMENTS
case GF_ISOM_BOX_TYPE_MVEX:
mvex_del(a);
return;
case GF_ISOM_BOX_TYPE_MEHD:
mehd_del(a);
return;
case GF_ISOM_BOX_TYPE_TREX:
trex_del(a);
return;
case GF_ISOM_BOX_TYPE_TREP:
trep_del(a);
return;
case GF_ISOM_BOX_TYPE_MOOF:
moof_del(a);
return;
case GF_ISOM_BOX_TYPE_MFHD:
mfhd_del(a);
return;
case GF_ISOM_BOX_TYPE_TRAF:
traf_del(a);
return;
case GF_ISOM_BOX_TYPE_TFHD:
tfhd_del(a);
return;
case GF_ISOM_BOX_TYPE_TFDT:
tfdt_del(a);
return;
case GF_ISOM_BOX_TYPE_TRUN:
trun_del(a);
return;
#endif
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:
gppa_del(a);
return;
case GF_ISOM_SUBTYPE_3GP_H263:
gppv_del(a);
return;
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:
gppc_del(a);
return;
/*AVC boxes*/
case GF_ISOM_BOX_TYPE_AVCC:
case GF_ISOM_BOX_TYPE_SVCC:
avcc_del(a);
return;
case GF_ISOM_BOX_TYPE_BTRT:
btrt_del(a);
return;
case GF_ISOM_BOX_TYPE_M4DS:
m4ds_del(a);
return;
case GF_ISOM_BOX_TYPE_AVC1:
case GF_ISOM_BOX_TYPE_AVC2:
case GF_ISOM_BOX_TYPE_AVC3:
case GF_ISOM_BOX_TYPE_AVC4:
case GF_ISOM_BOX_TYPE_SVC1:
case GF_ISOM_BOX_TYPE_HVC1:
case GF_ISOM_BOX_TYPE_HEV1:
case GF_ISOM_BOX_TYPE_HVC2:
case GF_ISOM_BOX_TYPE_HEV2:
case GF_ISOM_BOX_TYPE_SHC1:
case GF_ISOM_BOX_TYPE_SHV1:
case GF_ISOM_BOX_TYPE_HVT1:
mp4v_del(a);
return;
case GF_ISOM_BOX_TYPE_HVCC:
case GF_ISOM_BOX_TYPE_SHCC:
hvcc_del(a);
return;
/*3GPP streaming text*/
case GF_ISOM_BOX_TYPE_FTAB:
ftab_del(a);
return;
case GF_ISOM_BOX_TYPE_TX3G:
tx3g_del(a);
return;
case GF_ISOM_BOX_TYPE_TEXT:
text_del(a);
return;
case GF_ISOM_BOX_TYPE_STYL:
styl_del(a);
return;
case GF_ISOM_BOX_TYPE_HLIT:
hlit_del(a);
return;
case GF_ISOM_BOX_TYPE_HCLR:
hclr_del(a);
return;
case GF_ISOM_BOX_TYPE_KROK:
krok_del(a);
return;
case GF_ISOM_BOX_TYPE_DLAY:
dlay_del(a);
return;
case GF_ISOM_BOX_TYPE_HREF:
href_del(a);
return;
case GF_ISOM_BOX_TYPE_TBOX:
tbox_del(a);
return;
case GF_ISOM_BOX_TYPE_BLNK:
blnk_del(a);
return;
case GF_ISOM_BOX_TYPE_TWRP:
twrp_del(a);
return;
/* ISMA 1.0 Encryption and Authentication V 1.0 */
case GF_ISOM_BOX_TYPE_IKMS:
iKMS_del(a);
return;
case GF_ISOM_BOX_TYPE_ISFM:
iSFM_del(a);
return;
/* 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_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:
{
GF_ProtectionInfoBox *sinf = gf_list_get(((GF_SampleEntryBox *)a)->protections, 0);
a->type = sinf->original_format->data_format;
gf_isom_box_del(a);
}
return;
case GF_ISOM_BOX_TYPE_SENC:
senc_del(a);
return;
case GF_ISOM_BOX_TYPE_UUID:
switch (((GF_UnknownUUIDBox *)a)->internal_4cc) {
case GF_ISOM_BOX_UUID_TENC:
piff_tenc_del(a);
return;
case GF_ISOM_BOX_UUID_PSEC:
piff_psec_del(a);
return;
case GF_ISOM_BOX_UUID_PSSH:
piff_pssh_del(a);
return;
case GF_ISOM_BOX_UUID_TFRF:
case GF_ISOM_BOX_UUID_TFXD:
default:
uuid_del(a);
return;
}
return;
#ifndef GPAC_DISABLE_ISOM_ADOBE
/* Adobe extensions */
case GF_ISOM_BOX_TYPE_ABST:
abst_del(a);
return;
case GF_ISOM_BOX_TYPE_AFRA:
afra_del(a);
return;
case GF_ISOM_BOX_TYPE_ASRT:
asrt_del(a);
return;
case GF_ISOM_BOX_TYPE_AFRT:
afrt_del(a);
return;
#endif
/* 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;
case GF_ISOM_BOX_TYPE_PASP:
pasp_del(a);
return;
case GF_ISOM_BOX_TYPE_TSEL:
tsel_del(a);
return;
case GF_ISOM_BOX_TYPE_METX:
case GF_ISOM_BOX_TYPE_METT:
metx_del(a);
return;
case GF_ISOM_BOX_TYPE_DIMS:
dims_del(a);
return;
case GF_ISOM_BOX_TYPE_DIMC:
dimC_del(a);
return;
case GF_ISOM_BOX_TYPE_DIST:
diST_del(a);
return;
case GF_ISOM_BOX_TYPE_AC3:
ac3_del(a);
return;
case GF_ISOM_BOX_TYPE_DAC3:
dac3_del(a);
return;
case GF_ISOM_BOX_TYPE_LSRC:
lsrc_del(a);
return;
case GF_ISOM_BOX_TYPE_LSR1:
lsr1_del(a);
return;
case GF_ISOM_BOX_TYPE_SIDX:
sidx_del(a);
return;
case GF_ISOM_BOX_TYPE_PCRB:
pcrb_del(a);
return;
case GF_ISOM_BOX_TYPE_SUBS:
subs_del(a);
return;
case GF_ISOM_BOX_TYPE_RVCC:
rvcc_del(a);
return;
case GF_ISOM_BOX_TYPE_PRFT:
prft_del(a);
return;
#ifndef GPAC_DISABLE_TTXT
case GF_ISOM_BOX_TYPE_STXT:
metx_del(a);
return;
case GF_ISOM_BOX_TYPE_TXTC:
txtc_del(a);
return;
case GF_ISOM_BOX_TYPE_VTCU:
vtcu_del(a);
return;
case GF_ISOM_BOX_TYPE_VTTE:
vtte_del(a);
return;
case GF_ISOM_BOX_TYPE_VTTC:
case GF_ISOM_BOX_TYPE_CTIM:
case GF_ISOM_BOX_TYPE_IDEN:
case GF_ISOM_BOX_TYPE_STTG:
case GF_ISOM_BOX_TYPE_VTTA:
case GF_ISOM_BOX_TYPE_PAYL:
boxstring_del(a);
return;
case GF_ISOM_BOX_TYPE_WVTT:
wvtt_del(a);
return;
case GF_ISOM_BOX_TYPE_STPP:
metx_del(a);
return;
case GF_ISOM_BOX_TYPE_SBTT:
metx_del(a);
return;
#endif // GPAC_DISABLE_TTXT
case GF_ISOM_BOX_TYPE_ADKM:
adkm_del(a);
return;
case GF_ISOM_BOX_TYPE_AHDR:
ahdr_del(a);
return;
case GF_ISOM_BOX_TYPE_APRM:
aprm_del(a);
return;
case GF_ISOM_BOX_TYPE_AEIB:
aeib_del(a);
return;
case GF_ISOM_BOX_TYPE_AKEY:
akey_del(a);
return;
case GF_ISOM_BOX_TYPE_FLXS:
flxs_del(a);
return;
case GF_ISOM_BOX_TYPE_ADAF:
adaf_del(a);
return;
default:
defa_del(a);
return;
}
}