GF_Err gppa_Size(GF_Box *s) { GF_Err e; GF_3GPPAudioSampleEntryBox *ptr = (GF_3GPPAudioSampleEntryBox *)s; e = gf_isom_box_get_size(s); if (e) return e; gf_isom_audio_sample_entry_size((GF_AudioSampleEntryBox*)s); e = gf_isom_box_size((GF_Box *)ptr->info); if (e) return e; ptr->size += ptr->info->size; return GF_OK; }
GF_Err ghnt_Size(GF_Box *s) { GF_Err e; GF_HintSampleEntryBox *ptr = (GF_HintSampleEntryBox *)s; e = gf_isom_box_get_size(s); if (e) return e; ptr->size += 16; e = gf_isom_box_array_size(s, ptr->HintDataTable); if (e) return e; return GF_OK; }
GF_Err gppv_Size(GF_Box *s) { GF_Err e; GF_3GPPVisualSampleEntryBox *ptr = (GF_3GPPVisualSampleEntryBox*)s; e = gf_isom_box_get_size(s); if (e) return e; gf_isom_video_sample_entry_size((GF_VisualSampleEntryBox *)s); e = gf_isom_box_size((GF_Box *)ptr->info); if (e) return e; ptr->size += ptr->info->size; return GF_OK; }
GF_Err ftab_Size(GF_Box *s) { u32 i; GF_FontTableBox *ptr = (GF_FontTableBox *)s; GF_Err e = gf_isom_box_get_size(s); if (e) return e; s->size += 2; for (i=0; i<ptr->entry_count; i++) { s->size += 3; if (ptr->fonts[i].fontName) s->size += strlen(ptr->fonts[i].fontName); } return GF_OK; }
GF_Err wvtt_Size(GF_Box *s) { GF_Err e; GF_WebVTTSampleEntryBox *wvtt = (GF_WebVTTSampleEntryBox *)s; e = gf_isom_box_get_size(s); if (e) return e; s->size += 8; // reserved and dataReferenceIndex if (wvtt->config) { e = gf_isom_box_size((GF_Box *)wvtt->config); if (e) return e; wvtt->size += wvtt->config->size; } return e; }
GF_Err piff_psec_Size(GF_Box *s) { GF_Err e; GF_PIFFSampleEncryptionBox *ptr = (GF_PIFFSampleEncryptionBox*)s; e = gf_isom_box_get_size(s); if (e) return e; ptr->size += 4; if (ptr->flags & 1) { ptr->size += 20; } ptr->size += 4; if (ptr->cenc_data && ptr->cenc_data_size) { ptr->size += ptr->cenc_data_size; } return GF_OK; }
GF_Err avcc_Size(GF_Box *s) { GF_Err e; u32 i, count; GF_AVCConfigurationBox *ptr = (GF_AVCConfigurationBox *)s; e = gf_isom_box_get_size(s); if (e) return e; if (!ptr->config) { ptr->size = 0; return e; } ptr->size += 7; count = gf_list_count(ptr->config->sequenceParameterSets); for (i=0; i<count; i++) ptr->size += 2 + ((GF_AVCConfigSlot *)gf_list_get(ptr->config->sequenceParameterSets, i))->size; count = gf_list_count(ptr->config->pictureParameterSets); for (i=0; i<count; i++) ptr->size += 2 + ((GF_AVCConfigSlot *)gf_list_get(ptr->config->pictureParameterSets, i))->size; return GF_OK; }
GF_Err sinf_Size(GF_Box *s) { GF_Err e; GF_ProtectionInfoBox *ptr = (GF_ProtectionInfoBox *)s; if (!s) return GF_BAD_PARAM; e = gf_isom_box_get_size(s); if (e) return e; e = gf_isom_box_size((GF_Box *) ptr->original_format); if (e) return e; ptr->size += ptr->original_format->size; e = gf_isom_box_size((GF_Box *) ptr->scheme_type); if (e) return e; ptr->size += ptr->scheme_type->size; e = gf_isom_box_size((GF_Box *) ptr->info); if (e) return e; ptr->size += ptr->info->size; return GF_OK; }
GF_Err ListItem_Size(GF_Box *s) { GF_Err e; GF_ListItemBox *ptr = (GF_ListItemBox *)s; e = gf_isom_box_get_size(s); if (e) return e; /*iTune way*/ if (ptr->data && ptr->data->type) { e = gf_isom_box_size((GF_Box *)ptr->data); if (e) return e; ptr->size += ptr->data->size; } /*QT way*/ else if (ptr->data) { ptr->size += ptr->data->dataSize + 4; } return GF_OK; }
GF_Err schi_Size(GF_Box *s) { GF_Err e; GF_SchemeInformationBox *ptr = (GF_SchemeInformationBox *)s; if (!s) return GF_BAD_PARAM; e = gf_isom_box_get_size(s); if (e) return e; if (ptr->ikms) { e = gf_isom_box_size((GF_Box *)ptr->ikms); if (e) return e; ptr->size += ptr->ikms->size; } if (ptr->isfm) { e = gf_isom_box_size((GF_Box *)ptr->isfm); if (e) return e; ptr->size += ptr->isfm->size; } if (ptr->okms) { e = gf_isom_box_size((GF_Box *)ptr->okms); if (e) return e; ptr->size += ptr->okms->size; } if (ptr->tenc) { e = gf_isom_box_size((GF_Box *)ptr->tenc); if (e) return e; ptr->size += ptr->tenc->size; } if (ptr->adkm) { e = gf_isom_box_size((GF_Box *)ptr->adkm); if (e) return e; ptr->size += ptr->adkm->size; } if (ptr->piff_tenc) { e = gf_isom_box_size((GF_Box *)ptr->piff_tenc); if (e) return e; ptr->size += ptr->piff_tenc->size; } return GF_OK; }
GF_Err piff_psec_Size(GF_Box *s) { u32 i, sample_count; GF_Err e; GF_PIFFSampleEncryptionBox *ptr = (GF_PIFFSampleEncryptionBox*)s; e = gf_isom_box_get_size(s); if (e) return e; ptr->size += 4; if (ptr->flags & 1) { ptr->size += 20; } ptr->size += 4; sample_count = gf_list_count(ptr->samp_aux_info); if (sample_count) { for (i = 0; i < sample_count; i++) { GF_CENCSampleAuxInfo *sai = (GF_CENCSampleAuxInfo *)gf_list_get(ptr->samp_aux_info, i); if (!sai->IV_size) continue; ptr->size += 18 + 6 * sai->subsample_count; } } return GF_OK; }
GF_Err vtcu_Size(GF_Box *s) { GF_Err e; GF_VTTCueBox *cuebox = (GF_VTTCueBox *)s; e = gf_isom_box_get_size(s); if (e) return e; if (cuebox->id) { e = gf_isom_box_size((GF_Box *)cuebox->id); if (e) return e; cuebox->size += cuebox->id->size; } if (cuebox->settings) { e = gf_isom_box_size((GF_Box *)cuebox->settings); if (e) return e; cuebox->size += cuebox->settings->size; } if (cuebox->payload) { e = gf_isom_box_size((GF_Box *)cuebox->payload); if (e) return e; cuebox->size += cuebox->payload->size; } return GF_OK; }
GF_Err gppc_Size(GF_Box *s) { GF_Err e; GF_3GPPConfigBox *ptr = (GF_3GPPConfigBox *)s; e = gf_isom_box_get_size(s); if (e) return e; s->size += 5; switch (ptr->cfg.type) { case GF_ISOM_SUBTYPE_3GP_H263: s->size += 2; break; case GF_ISOM_SUBTYPE_3GP_AMR: case GF_ISOM_SUBTYPE_3GP_AMR_WB: s->size += 4; break; case GF_ISOM_SUBTYPE_3GP_EVRC: case GF_ISOM_SUBTYPE_3GP_QCELP: case GF_ISOM_SUBTYPE_3GP_SMV: s->size += 1; break; } return GF_OK; }
GF_Err senc_Size(GF_Box *s) { GF_Err e; u32 sample_count; u32 i; GF_SampleEncryptionBox *ptr = (GF_SampleEncryptionBox*)s; //WARNING - PSEC (UUID) IS TYPECASTED TO SENC (FULL BOX) SO WE CANNOT USE USUAL FULL BOX FUNCTIONS e = gf_isom_box_get_size(s); if (e) return e; ptr->size += 4; ptr->size += 4; sample_count = gf_list_count(ptr->samp_aux_info); if (sample_count) { for (i = 0; i < sample_count; i++) { GF_CENCSampleAuxInfo *sai = (GF_CENCSampleAuxInfo *)gf_list_get(ptr->samp_aux_info, i); //if (! sai->IV_size) continue; ptr->size += sai->IV_size; if (ptr->flags & 0x00000002) ptr->size += 2 + 6 * sai->subsample_count; } } return GF_OK; }
GF_Err hvcc_Size(GF_Box *s) { GF_Err e; u32 i, count, j, subcount; GF_HEVCConfigurationBox *ptr = (GF_HEVCConfigurationBox *)s; e = gf_isom_box_get_size(s); if (e) return e; if (!ptr->config) { ptr->size = 0; return e; } ptr->size += 16; count = gf_list_count(ptr->config->param_array); for (i=0; i<count; i++) { GF_HEVCParamArray *ar = gf_list_get(ptr->config->param_array, i); ptr->size += 3; subcount = gf_list_count(ar->nalus); for (j=0; j<subcount; j++) { ptr->size += 2 + ((GF_AVCConfigSlot *)gf_list_get(ar->nalus, j))->size; } } return GF_OK; }
GF_Err vtte_Size(GF_Box *s) { return gf_isom_box_get_size(s); }