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

📄 box_code_3gpp.c

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 C
📖 第 1 页 / 共 2 页
字号:
	/*base + this  + box + style*/	s->size += 18 + GPP_BOX_SIZE + GPP_STYLE_SIZE;	if (ptr->font_table) {		e = gf_isom_box_size((GF_Box *) ptr->font_table);		if (e) return e;		s->size += ptr->font_table->size;	}	return GF_OK;}#endifGF_Box *styl_New(){	GF_TextStyleBox *tmp;	GF_SAFEALLOC(tmp, GF_TextStyleBox);	if (!tmp) return NULL;	tmp->type = GF_ISOM_BOX_TYPE_STYL;	return (GF_Box *) tmp;}void styl_del(GF_Box *s){	GF_TextStyleBox*ptr = (GF_TextStyleBox*)s;	if (ptr->styles) free(ptr->styles);	free(ptr);}GF_Err styl_Read(GF_Box *s, GF_BitStream *bs){	u32 i;	GF_TextStyleBox*ptr = (GF_TextStyleBox*)s;	ptr->entry_count = gf_bs_read_u16(bs);	if (ptr->entry_count) {		ptr->styles = (GF_StyleRecord*)malloc(sizeof(GF_StyleRecord)*ptr->entry_count);		for (i=0; i<ptr->entry_count; i++) {			gpp_read_style(bs, &ptr->styles[i]);		}	}	return GF_OK;}#ifndef GPAC_READ_ONLYGF_Err styl_Write(GF_Box *s, GF_BitStream *bs){	GF_Err e;	u32 i;	GF_TextStyleBox*ptr = (GF_TextStyleBox*)s;	e = gf_isom_box_write_header(s, bs);	gf_bs_write_u16(bs, ptr->entry_count);	for (i=0; i<ptr->entry_count; i++) gpp_write_style(bs, &ptr->styles[i]);	return GF_OK;}GF_Err styl_Size(GF_Box *s){	GF_TextStyleBox*ptr = (GF_TextStyleBox*)s;	GF_Err e = gf_isom_box_get_size(s);	if (e) return e;	s->size += 2 + ptr->entry_count * GPP_STYLE_SIZE;	return GF_OK;}#endifGF_Box *hlit_New(){	GF_TextHighlightBox *tmp;	GF_SAFEALLOC(tmp, GF_TextHighlightBox);	if (!tmp) return NULL;	tmp->type = GF_ISOM_BOX_TYPE_HLIT;	return (GF_Box *) tmp;}void hlit_del(GF_Box *s){	free(s);}GF_Err hlit_Read(GF_Box *s, GF_BitStream *bs){	GF_TextHighlightBox *ptr = (GF_TextHighlightBox *)s;	ptr->startcharoffset = gf_bs_read_u16(bs);	ptr->endcharoffset = gf_bs_read_u16(bs);	return GF_OK;}#ifndef GPAC_READ_ONLYGF_Err hlit_Write(GF_Box *s, GF_BitStream *bs){	GF_Err e;	GF_TextHighlightBox *ptr = (GF_TextHighlightBox *)s;	e = gf_isom_box_write_header(s, bs);	if (e) return e;	gf_bs_write_u16(bs, ptr->startcharoffset);	gf_bs_write_u16(bs, ptr->endcharoffset);	return GF_OK;}GF_Err hlit_Size(GF_Box *s){	GF_Err e = gf_isom_box_get_size(s);	if (e) return e;	s->size += 4;	return GF_OK;}#endifGF_Box *hclr_New(){	GF_TextHighlightColorBox*tmp;	GF_SAFEALLOC(tmp, GF_TextHighlightColorBox);	if (!tmp) return NULL;	tmp->type = GF_ISOM_BOX_TYPE_HCLR;	return (GF_Box *) tmp;}void hclr_del(GF_Box *s){	free(s);}GF_Err hclr_Read(GF_Box *s, GF_BitStream *bs){	GF_TextHighlightColorBox*ptr = (GF_TextHighlightColorBox*)s;	ptr->hil_color = gpp_read_rgba(bs);	return GF_OK;}#ifndef GPAC_READ_ONLYGF_Err hclr_Write(GF_Box *s, GF_BitStream *bs){	GF_Err e;	GF_TextHighlightColorBox*ptr = (GF_TextHighlightColorBox*)s;	e = gf_isom_box_write_header(s, bs);	if (e) return e;	gpp_write_rgba(bs, ptr->hil_color);	return GF_OK;}GF_Err hclr_Size(GF_Box *s){	GF_Err e = gf_isom_box_get_size(s);	if (e) return e;	s->size += 4;	return GF_OK;}#endifGF_Box *krok_New(){	GF_TextKaraokeBox*tmp;	GF_SAFEALLOC(tmp, GF_TextKaraokeBox);	if (!tmp) return NULL;	tmp->type = GF_ISOM_BOX_TYPE_KROK;	return (GF_Box *) tmp;}void krok_del(GF_Box *s){	GF_TextKaraokeBox*ptr = (GF_TextKaraokeBox*)s;	if (ptr->records) free(ptr->records);	free(ptr);}GF_Err krok_Read(GF_Box *s, GF_BitStream *bs){	GF_TextKaraokeBox*ptr = (GF_TextKaraokeBox*)s;	ptr->highlight_starttime = gf_bs_read_u32(bs);	ptr->entrycount = gf_bs_read_u16(bs);	if (ptr->entrycount) {		u32 i;		ptr->records = (KaraokeRecord*)malloc(sizeof(KaraokeRecord)*ptr->entrycount);		for (i=0; i<ptr->entrycount; i++) {			ptr->records[i].highlight_endtime = gf_bs_read_u32(bs);			ptr->records[i].start_charoffset = gf_bs_read_u16(bs);			ptr->records[i].end_charoffset = gf_bs_read_u16(bs);		}	}	return GF_OK;}#ifndef GPAC_READ_ONLYGF_Err krok_Write(GF_Box *s, GF_BitStream *bs){	GF_Err e;	u32 i;	GF_TextKaraokeBox*ptr = (GF_TextKaraokeBox*)s;	e = gf_isom_box_write_header(s, bs);	if (e) return e;	gf_bs_write_u32(bs, ptr->highlight_starttime);	gf_bs_write_u16(bs, ptr->entrycount);	for (i=0; i<ptr->entrycount; i++) {		gf_bs_write_u32(bs, ptr->records[i].highlight_endtime);		gf_bs_write_u16(bs, ptr->records[i].start_charoffset);		gf_bs_write_u16(bs, ptr->records[i].end_charoffset);	}	return GF_OK;}GF_Err krok_Size(GF_Box *s){	GF_TextKaraokeBox*ptr = (GF_TextKaraokeBox*)s;	GF_Err e = gf_isom_box_get_size(s);	if (e) return e;	s->size += 6 * 8*ptr->entrycount;	return GF_OK;}#endifGF_Box *dlay_New(){	GF_TextScrollDelayBox*tmp;	GF_SAFEALLOC(tmp, GF_TextScrollDelayBox);	if (!tmp) return NULL;	tmp->type = GF_ISOM_BOX_TYPE_DLAY;	return (GF_Box *) tmp;}void dlay_del(GF_Box *s){	free(s);}GF_Err dlay_Read(GF_Box *s, GF_BitStream *bs){	GF_TextScrollDelayBox*ptr = (GF_TextScrollDelayBox*)s;	ptr->scroll_delay = gf_bs_read_u32(bs);	return GF_OK;}#ifndef GPAC_READ_ONLYGF_Err dlay_Write(GF_Box *s, GF_BitStream *bs){	GF_Err e;	GF_TextScrollDelayBox*ptr = (GF_TextScrollDelayBox*)s;	e = gf_isom_box_write_header(s, bs);	if (e) return e;	gf_bs_write_u32(bs, ptr->scroll_delay);	return GF_OK;}GF_Err dlay_Size(GF_Box *s){	GF_Err e = gf_isom_box_get_size(s);	if (e) return e;	s->size += 4;	return GF_OK;}#endifGF_Box *href_New(){	GF_TextHyperTextBox*tmp;	GF_SAFEALLOC(tmp, GF_TextHyperTextBox);	if (!tmp) return NULL;	tmp->type = GF_ISOM_BOX_TYPE_HREF;	return (GF_Box *) tmp;}void href_del(GF_Box *s){	GF_TextHyperTextBox*ptr = (GF_TextHyperTextBox*)s;	if (ptr->URL) free(ptr->URL);	if (ptr->URL_hint) free(ptr->URL_hint);	free(ptr);}GF_Err href_Read(GF_Box *s, GF_BitStream *bs){	u32 len;	GF_TextHyperTextBox*ptr = (GF_TextHyperTextBox*)s;	ptr->startcharoffset = gf_bs_read_u16(bs);	ptr->endcharoffset = gf_bs_read_u16(bs);	len = gf_bs_read_u8(bs);	if (len) {		ptr->URL = (char *) malloc(sizeof(char) * (len+1));		gf_bs_read_data(bs, ptr->URL, len);		ptr->URL[len] = 0;	}	len = gf_bs_read_u8(bs);	if (len) {		ptr->URL_hint = (char *) malloc(sizeof(char) * (len+1));		gf_bs_read_data(bs, ptr->URL_hint, len);		ptr->URL_hint[len]= 0;	}	return GF_OK;}#ifndef GPAC_READ_ONLYGF_Err href_Write(GF_Box *s, GF_BitStream *bs){	u32 len;	GF_Err e;	GF_TextHyperTextBox*ptr = (GF_TextHyperTextBox*)s;	e = gf_isom_box_write_header(s, bs);	if (e) return e;	gf_bs_write_u16(bs, ptr->startcharoffset);	gf_bs_write_u16(bs, ptr->endcharoffset);	if (ptr->URL) {		len = strlen(ptr->URL);		gf_bs_write_u8(bs, len);		gf_bs_write_data(bs, ptr->URL, len);	} else {		gf_bs_write_u8(bs, 0);	}	if (ptr->URL_hint) {		len = strlen(ptr->URL_hint);		gf_bs_write_u8(bs, len);		gf_bs_write_data(bs, ptr->URL_hint, len);	} else {		gf_bs_write_u8(bs, 0);	}	return GF_OK;}GF_Err href_Size(GF_Box *s){	GF_TextHyperTextBox*ptr = (GF_TextHyperTextBox*)s;	GF_Err e = gf_isom_box_get_size(s);	if (e) return e;	s->size += 6;	if (ptr->URL) s->size += strlen(ptr->URL);	if (ptr->URL_hint) s->size += strlen(ptr->URL_hint);	return GF_OK;}#endifGF_Box *tbox_New(){	GF_TextBoxBox*tmp;	GF_SAFEALLOC(tmp, GF_TextBoxBox);	if (!tmp) return NULL;	tmp->type = GF_ISOM_BOX_TYPE_TBOX;	return (GF_Box *) tmp;}void tbox_del(GF_Box *s){	free(s);}GF_Err tbox_Read(GF_Box *s, GF_BitStream *bs){	GF_TextBoxBox*ptr = (GF_TextBoxBox*)s;	gpp_read_box(bs, &ptr->box);	return GF_OK;}#ifndef GPAC_READ_ONLYGF_Err tbox_Write(GF_Box *s, GF_BitStream *bs){	GF_Err e;	GF_TextBoxBox*ptr = (GF_TextBoxBox*)s;	e = gf_isom_box_write_header(s, bs);	if (e) return e;	gpp_write_box(bs, &ptr->box);	return GF_OK;}GF_Err tbox_Size(GF_Box *s){	GF_Err e = gf_isom_box_get_size(s);	if (e) return e;	s->size += 8;	return GF_OK;}#endifGF_Box *blnk_New(){	GF_TextBlinkBox*tmp;	GF_SAFEALLOC(tmp, GF_TextBlinkBox);	if (!tmp) return NULL;	tmp->type = GF_ISOM_BOX_TYPE_BLNK;	return (GF_Box *) tmp;}void blnk_del(GF_Box *s){	free(s);}GF_Err blnk_Read(GF_Box *s, GF_BitStream *bs){	GF_TextBlinkBox*ptr = (GF_TextBlinkBox*)s;	ptr->startcharoffset = gf_bs_read_u16(bs);	ptr->endcharoffset = gf_bs_read_u16(bs);	return GF_OK;}#ifndef GPAC_READ_ONLYGF_Err blnk_Write(GF_Box *s, GF_BitStream *bs){	GF_Err e;	GF_TextBlinkBox*ptr = (GF_TextBlinkBox*)s;	e = gf_isom_box_write_header(s, bs);	if (e) return e;	gf_bs_write_u16(bs, ptr->startcharoffset);	gf_bs_write_u16(bs, ptr->endcharoffset);	return GF_OK;}GF_Err blnk_Size(GF_Box *s){	GF_Err e = gf_isom_box_get_size(s);	if (e) return e;	s->size += 4;	return GF_OK;}#endifGF_Box *twrp_New(){	GF_TextWrapBox*tmp;	GF_SAFEALLOC(tmp, GF_TextWrapBox);	if (!tmp) return NULL;	tmp->type = GF_ISOM_BOX_TYPE_TWRP;	return (GF_Box *) tmp;}void twrp_del(GF_Box *s){	free(s);}GF_Err twrp_Read(GF_Box *s, GF_BitStream *bs){	GF_TextWrapBox*ptr = (GF_TextWrapBox*)s;	ptr->wrap_flag = gf_bs_read_u8(bs);	return GF_OK;}#ifndef GPAC_READ_ONLYGF_Err twrp_Write(GF_Box *s, GF_BitStream *bs){	GF_Err e;	GF_TextWrapBox*ptr = (GF_TextWrapBox*)s;	e = gf_isom_box_write_header(s, bs);	if (e) return e;	gf_bs_write_u8(bs, ptr->wrap_flag);	return GF_OK;}GF_Err twrp_Size(GF_Box *s){	GF_Err e = gf_isom_box_get_size(s);	if (e) return e;	s->size += 1;	return GF_OK;}#endif

⌨️ 快捷键说明

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