GF_Err aprm_Read(GF_Box *s, GF_BitStream *bs) { GF_Err e; e = gf_isom_full_box_read(s, bs); if (e) return e; return gf_isom_read_box_list(s, bs, aprm_AddBox); }
GF_Err wvtt_Read(GF_Box *s, GF_BitStream *bs) { GF_WebVTTSampleEntryBox *wvtt = (GF_WebVTTSampleEntryBox *)s; gf_bs_read_data(bs, wvtt->reserved, 6); wvtt->dataReferenceIndex = gf_bs_read_u16(bs); wvtt->size -= 8; return gf_isom_read_box_list(s, bs, wvtt_Add); }
GF_Err odkm_Read(GF_Box *s, GF_BitStream *bs) { GF_Err e; if (s == NULL) return GF_BAD_PARAM; e = gf_isom_full_box_read(s, bs); if (e) return e; return gf_isom_read_box_list(s, bs, odkm_Add); }
GF_Err meta_Read(GF_Box *s, GF_BitStream *bs) { u32 next_size = gf_bs_peek_bits(bs, 32, 4); GF_Err e; /*try to hack around QT files which don't use a full box for meta*/ if (next_size<s->size) { e = gf_isom_full_box_read(s, bs); if (e) return e; } return gf_isom_read_box_list(s, bs, meta_AddBox); }
GF_Err ohdr_Read(GF_Box *s, GF_BitStream *bs) { u16 cid_len, ri_len; GF_Err e; GF_OMADRMCommonHeaderBox *ptr = (GF_OMADRMCommonHeaderBox*)s; if (ptr == NULL) return GF_BAD_PARAM; e = gf_isom_full_box_read(s, bs); if (e) return e; ptr->EncryptionMethod = gf_bs_read_u8(bs); ptr->PaddingScheme = gf_bs_read_u8(bs); ptr->PlaintextLength = gf_bs_read_u64(bs); cid_len = gf_bs_read_u16(bs); ri_len = gf_bs_read_u16(bs); ptr->TextualHeadersLen = gf_bs_read_u16(bs); ptr->size -= 1+1+8+2+2+2; if (ptr->size<cid_len+ri_len+ptr->TextualHeadersLen) return GF_ISOM_INVALID_FILE; if (cid_len) { ptr->ContentID = (char *)gf_malloc(sizeof(char)*(cid_len+1)); gf_bs_read_data(bs, ptr->ContentID, cid_len); ptr->ContentID[cid_len]=0; } if (ri_len) { ptr->RightsIssuerURL = (char *)gf_malloc(sizeof(char)*(ri_len+1)); gf_bs_read_data(bs, ptr->RightsIssuerURL, ri_len); ptr->RightsIssuerURL[ri_len]=0; } if (ptr->TextualHeadersLen) { ptr->TextualHeaders = (char *)gf_malloc(sizeof(char)*(ptr->TextualHeadersLen+1)); gf_bs_read_data(bs, ptr->TextualHeaders, ptr->TextualHeadersLen); ptr->TextualHeaders[ptr->TextualHeadersLen] = 0; } ptr->size -= cid_len+ri_len+ptr->TextualHeadersLen; return gf_isom_read_box_list(s, bs, ohdr_AddBox); }
GF_Err vtte_Read(GF_Box *s, GF_BitStream *bs) { return gf_isom_read_box_list(s, bs, gf_isom_box_add_default); }
GF_Err vtcu_Read(GF_Box *s, GF_BitStream *bs) { return gf_isom_read_box_list(s, bs, vtcu_Add); }
GF_Err sinf_Read(GF_Box *s, GF_BitStream *bs) { return gf_isom_read_box_list(s, bs, sinf_AddBox); }
GF_Err mdri_Read(GF_Box *s, GF_BitStream *bs) { return gf_isom_read_box_list(s, bs, mdri_AddBox); }