亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bitstream.c

?? 視頻壓縮編解碼標(biāo)準(zhǔn)MPEG4商業(yè)級別的VC代碼實現(xiàn)標(biāo)準(zhǔn)
?? C
?? 第 1 頁 / 共 3 頁
字號:
					length = bs_get_spritetrajectory(bs);					if(length){						y = BitstreamGetBits(bs, length);						if ((y >> (length - 1)) == 0) /* if MSB not set it is negative*/							y = - (y ^ ((1 << length) - 1));					}					READ_MARKER();					gmc_warp->duv[i].x = x;					gmc_warp->duv[i].y = y;					DPRINTF(XVID_DEBUG_HEADER,"sprite_warping_point[%i] xy=(%i,%i)\n", i, x, y);				}				if (dec->sprite_brightness_change)				{					/* XXX: brightness_change_factor() */				}				if (dec->sprite_enable == SPRITE_STATIC)				{					/* XXX: todo */				}			}			if ((*quant = BitstreamGetBits(bs, dec->quant_bits)) < 1)	/* vop_quant */				*quant = 1;			DPRINTF(XVID_DEBUG_HEADER, "quant %i\n", *quant);			if (coding_type != I_VOP) {				*fcode_forward = BitstreamGetBits(bs, 3);	/* fcode_forward */				DPRINTF(XVID_DEBUG_HEADER, "fcode_forward %i\n", *fcode_forward);			}			if (coding_type == B_VOP) {				*fcode_backward = BitstreamGetBits(bs, 3);	/* fcode_backward */				DPRINTF(XVID_DEBUG_HEADER, "fcode_backward %i\n", *fcode_backward);			}			if (!dec->scalability) {				if ((dec->shape != VIDOBJLAY_SHAPE_RECTANGULAR) &&					(coding_type != I_VOP)) {					BitstreamSkip(bs, 1);	/* vop_shape_coding_type */				}			}			return coding_type;		} else if (start_code == USERDATA_START_CODE) {			char tmp[256];		    int i, version, build;			char packed;			BitstreamSkip(bs, 32);	/* user_data_start_code */			memset(tmp, 0, 256);			tmp[0] = BitstreamShowBits(bs, 8);			for(i = 1; i < 256; i++){				tmp[i] = (BitstreamShowBits(bs, 16) & 0xFF);				if(tmp[i] == 0)					break;				BitstreamSkip(bs, 8);			}			DPRINTF(XVID_DEBUG_STARTCODE, "<user_data>: %s\n", tmp);			/* read xvid bitstream version */			if(strncmp(tmp, "XviD", 4) == 0) {				if (tmp[strlen(tmp)-1] == 'C') {									sscanf(tmp, "XviD%dC", &dec->bs_version);					dec->cartoon_mode = 1;				}				else					sscanf(tmp, "XviD%d", &dec->bs_version);				DPRINTF(XVID_DEBUG_HEADER, "xvid bitstream version=%i\n", dec->bs_version);			}		    /* divx detection */			i = sscanf(tmp, "DivX%dBuild%d%c", &version, &build, &packed);			if (i < 2)				i = sscanf(tmp, "DivX%db%d%c", &version, &build, &packed);			if (i >= 2)			{				dec->packed_mode = (i == 3 && packed == 'p');				DPRINTF(XVID_DEBUG_HEADER, "divx version=%i, build=%i packed=%i\n",						version, build, dec->packed_mode);			}		} else					/* start_code == ? */		{			if (BitstreamShowBits(bs, 24) == 0x000001) {				DPRINTF(XVID_DEBUG_STARTCODE, "<unknown: %x>\n", BitstreamShowBits(bs, 32));			}			BitstreamSkip(bs, 8);		}	}#if 0	DPRINTF("*** WARNING: no vop_start_code found");#endif	return -1;					/* ignore it */}/* write custom quant matrix */static voidbs_put_matrix(Bitstream * bs,			  const uint16_t * matrix){	int i, j;	const int last = matrix[scan_tables[0][63]];	for (j = 63; j > 0 && matrix[scan_tables[0][j - 1]] == last; j--);	for (i = 0; i <= j; i++) {		BitstreamPutBits(bs, matrix[scan_tables[0][i]], 8);	}	if (j < 63) {		BitstreamPutBits(bs, 0, 8);	}}/*	write vol header*/voidBitstreamWriteVolHeader(Bitstream * const bs,						const MBParam * pParam,						const FRAMEINFO * const frame){	static const unsigned int vo_id = 0;	static const unsigned int vol_id = 0;	int vol_ver_id = 1;	int vol_type_ind = VIDOBJLAY_TYPE_SIMPLE;	int vol_profile = pParam->profile;	if ( (pParam->vol_flags & XVID_VOL_QUARTERPEL) ||         (pParam->vol_flags & XVID_VOL_GMC) ||		 (pParam->vol_flags & XVID_VOL_REDUCED_ENABLE))		vol_ver_id = 2;    if ((pParam->vol_flags & XVID_VOL_REDUCED_ENABLE)) {        vol_type_ind = VIDOBJLAY_TYPE_ART_SIMPLE;    }	if ((pParam->vol_flags & XVID_VOL_QUARTERPEL) ||        (pParam->vol_flags & XVID_VOL_GMC)) {        vol_type_ind = VIDOBJLAY_TYPE_ASP;    }	/* visual_object_sequence_start_code */#if 0	BitstreamPad(bs);#endif	/*	 * no padding here, anymore. You have to make sure that you are	 * byte aligned, and that always 1-8 padding bits have been written	 */    if (!vol_profile) {		/* Profile was not set by client app, use the more permissive profile		 * compatible with the vol_type_id */		switch(vol_type_ind) {		case VIDOBJLAY_TYPE_ASP:			vol_profile = 0xf5; /* ASP level 5 */			break;		case VIDOBJLAY_TYPE_ART_SIMPLE:			vol_profile = 0x94; /* ARTS level 4 */			break;		default:			vol_profile = 0x03; /* Simple level 3 */			break;		}	}	/* Write the VOS header */	BitstreamPutBits(bs, VISOBJSEQ_START_CODE, 32);	BitstreamPutBits(bs, vol_profile, 8); 	/* profile_and_level_indication */	/* visual_object_start_code */	BitstreamPad(bs);	BitstreamPutBits(bs, VISOBJ_START_CODE, 32);	BitstreamPutBits(bs, 0, 1);		/* is_visual_object_identifier */	/* Video type */	BitstreamPutBits(bs, VISOBJ_TYPE_VIDEO, 4);		/* visual_object_type */	BitstreamPutBit(bs, 0); /* video_signal_type */	/* video object_start_code & vo_id */	BitstreamPadAlways(bs); /* next_start_code() */	BitstreamPutBits(bs, VIDOBJ_START_CODE|(vo_id&0x5), 32);	/* video_object_layer_start_code & vol_id */	BitstreamPad(bs);	BitstreamPutBits(bs, VIDOBJLAY_START_CODE|(vol_id&0x4), 32);	BitstreamPutBit(bs, 0);		/* random_accessible_vol */	BitstreamPutBits(bs, vol_type_ind, 8);	/* video_object_type_indication */	if (vol_ver_id == 1) {		BitstreamPutBit(bs, 0);				/* is_object_layer_identified (0=not given) */	} else {		BitstreamPutBit(bs, 1);		/* is_object_layer_identified */		BitstreamPutBits(bs, vol_ver_id, 4);	/* vol_ver_id == 2 */		BitstreamPutBits(bs, 4, 3); /* vol_ver_priority (1==highest, 7==lowest) */	}	/* Aspect ratio */	BitstreamPutBits(bs, pParam->par, 4); /* aspect_ratio_info (1=1:1) */	if(pParam->par == XVID_PAR_EXT) {		BitstreamPutBits(bs, pParam->par_width, 8);		BitstreamPutBits(bs, pParam->par_height, 8);	}	BitstreamPutBit(bs, 1);	/* vol_control_parameters */	BitstreamPutBits(bs, 1, 2);	/* chroma_format 1="4:2:0" */	if (pParam->max_bframes > 0) {		BitstreamPutBit(bs, 0);	/* low_delay */	} else	{		BitstreamPutBit(bs, 1);	/* low_delay */	}	BitstreamPutBit(bs, 0);	/* vbv_parameters (0=not given) */	BitstreamPutBits(bs, 0, 2);	/* video_object_layer_shape (0=rectangular) */	WRITE_MARKER();	/*	 * time_inc_resolution; ignored by current decore versions	 * eg. 2fps     res=2       inc=1	 *     25fps    res=25      inc=1	 *     29.97fps res=30000   inc=1001	 */	BitstreamPutBits(bs, pParam->fbase, 16);	WRITE_MARKER();    if (pParam->fincr>0) {		BitstreamPutBit(bs, 1);		/* fixed_vop_rate = 1 */		BitstreamPutBits(bs, pParam->fincr, MAX(log2bin(pParam->fbase-1),1));	/* fixed_vop_time_increment */    }else{        BitstreamPutBit(bs, 0);		/* fixed_vop_rate = 0 */    }	WRITE_MARKER();	BitstreamPutBits(bs, pParam->width, 13);	/* width */	WRITE_MARKER();	BitstreamPutBits(bs, pParam->height, 13);	/* height */	WRITE_MARKER();	BitstreamPutBit(bs, pParam->vol_flags & XVID_VOL_INTERLACING);	/* interlace */	BitstreamPutBit(bs, 1);		/* obmc_disable (overlapped block motion compensation) */	if (vol_ver_id != 1)	{	if ((pParam->vol_flags & XVID_VOL_GMC))		{	BitstreamPutBits(bs, 2, 2);		/* sprite_enable=='GMC' */			BitstreamPutBits(bs, 3, 6);		/* no_of_sprite_warping_points */			BitstreamPutBits(bs, 3, 2);		/* sprite_warping_accuracy 0==1/2, 1=1/4, 2=1/8, 3=1/16 */			BitstreamPutBit(bs, 0);			/* sprite_brightness_change (not supported) */			/*			 * currently we use no_of_sprite_warping_points==2, sprite_warping_accuracy==3			 * for DivX5 compatability			 */		} else			BitstreamPutBits(bs, 0, 2);		/* sprite_enable==off */	}	else		BitstreamPutBit(bs, 0);		/* sprite_enable==off */	BitstreamPutBit(bs, 0);		/* not_8_bit */	/* quant_type   0=h.263  1=mpeg4(quantizer tables) */	BitstreamPutBit(bs, pParam->vol_flags & XVID_VOL_MPEGQUANT);	if ((pParam->vol_flags & XVID_VOL_MPEGQUANT)) {		BitstreamPutBit(bs, is_custom_intra_matrix(pParam->mpeg_quant_matrices));	/* load_intra_quant_mat */		if(is_custom_intra_matrix(pParam->mpeg_quant_matrices))			bs_put_matrix(bs, get_intra_matrix(pParam->mpeg_quant_matrices));		BitstreamPutBit(bs, is_custom_inter_matrix(pParam->mpeg_quant_matrices));	/* load_inter_quant_mat */		if(is_custom_inter_matrix(pParam->mpeg_quant_matrices))			bs_put_matrix(bs, get_inter_matrix(pParam->mpeg_quant_matrices));	}	if (vol_ver_id != 1) {		if ((pParam->vol_flags & XVID_VOL_QUARTERPEL))			BitstreamPutBit(bs, 1);	 	/* quarterpel  */		else			BitstreamPutBit(bs, 0);		/* no quarterpel */	}	BitstreamPutBit(bs, 1);		/* complexity_estimation_disable */	BitstreamPutBit(bs, 1);		/* resync_marker_disable */	BitstreamPutBit(bs, 0);		/* data_partitioned */	if (vol_ver_id != 1) {		BitstreamPutBit(bs, 0);		/* newpred_enable */		BitstreamPutBit(bs, (pParam->vol_flags & XVID_VOL_REDUCED_ENABLE)?1:0);									/* reduced_resolution_vop_enabled */	}	BitstreamPutBit(bs, 0);		/* scalability */	BitstreamPadAlways(bs); /* next_start_code(); */	/* divx5 userdata string */#define DIVX5_ID "DivX503b1393"  if ((pParam->global_flags & XVID_GLOBAL_DIVX5_USERDATA)) {    BitstreamWriteUserData(bs, DIVX5_ID, strlen(DIVX5_ID));  	if (pParam->max_bframes > 0 && (pParam->global_flags & XVID_GLOBAL_PACKED))      BitstreamPutBits(bs, 'p', 8);	}	/* xvid id */	{		const char xvid_user_format[] = "XviD%04d%c";		char xvid_user_data[100];		sprintf(xvid_user_data,				xvid_user_format,				XVID_BS_VERSION,				(frame->vop_flags & XVID_VOP_CARTOON)?'C':'\0');		BitstreamWriteUserData(bs, xvid_user_data, strlen(xvid_user_data));	}}/*  write vop header*/voidBitstreamWriteVopHeader(						Bitstream * const bs,						const MBParam * pParam,						const FRAMEINFO * const frame,						int vop_coded,						unsigned int quant){	uint32_t i;#if 0	BitstreamPad(bs);#endif	/*	 * no padding here, anymore. You have to make sure that you are	 * byte aligned, and that always 1-8 padding bits have been written	 */	BitstreamPutBits(bs, VOP_START_CODE, 32);	BitstreamPutBits(bs, frame->coding_type, 2);#if 0	DPRINTF(XVID_DEBUG_HEADER, "coding_type = %i\n", frame->coding_type);#endif	for (i = 0; i < frame->seconds; i++) {		BitstreamPutBit(bs, 1);	}	BitstreamPutBit(bs, 0);	WRITE_MARKER();	/* time_increment: value=nth_of_sec, nbits = log2(resolution) */	BitstreamPutBits(bs, frame->ticks, MAX(log2bin(pParam->fbase-1), 1));#if 0	DPRINTF("[%i:%i] %c",			frame->seconds, frame->ticks,			frame->coding_type == I_VOP ? 'I' :			frame->coding_type == P_VOP ? 'P' :			frame->coding_type == S_VOP ? 'S' :	'B');#endif	WRITE_MARKER();	if (!vop_coded) {		BitstreamPutBits(bs, 0, 1);#if 0		BitstreamPadAlways(bs); /*  next_start_code() */#endif		/* NB: It's up to the function caller to write the next_start_code().		 * At the moment encoder.c respects that requisite because a VOP		 * always ends with a next_start_code either if it's coded or not		 * and encoder.c terminates a frame with a next_start_code in whatever		 * case */		return;	}	BitstreamPutBits(bs, 1, 1);	/* vop_coded */	if ( (frame->coding_type == P_VOP) || (frame->coding_type == S_VOP) )		BitstreamPutBits(bs, frame->rounding_type, 1);	if ((frame->vol_flags & XVID_VOL_REDUCED_ENABLE))		BitstreamPutBit(bs, 0);	BitstreamPutBits(bs, 0, 3);	/* intra_dc_vlc_threshold */	if ((frame->vol_flags & XVID_VOL_INTERLACING)) {		BitstreamPutBit(bs, (frame->vop_flags & XVID_VOP_TOPFIELDFIRST));		BitstreamPutBit(bs, (frame->vop_flags & XVID_VOP_ALTERNATESCAN));	}	if (frame->coding_type == S_VOP) {		if (1)	{		/* no_of_sprite_warping_points>=1 (we use 2!) */			int k;			for (k=0;k<3;k++)			{				bs_put_spritetrajectory(bs, frame->warp.duv[k].x ); /* du[k]  */				WRITE_MARKER();				bs_put_spritetrajectory(bs, frame->warp.duv[k].y ); /* dv[k]  */				WRITE_MARKER();			if ((frame->vol_flags & XVID_VOL_QUARTERPEL))			{				DPRINTF(XVID_DEBUG_HEADER,"sprite_warping_point[%i] xy=(%i,%i) *QPEL*\n", k, frame->warp.duv[k].x/2, frame->warp.duv[k].y/2);			}			else			{				DPRINTF(XVID_DEBUG_HEADER,"sprite_warping_point[%i] xy=(%i,%i)\n", k, frame->warp.duv[k].x, frame->warp.duv[k].y);			}			}		}	}#if 0	DPRINTF(XVID_DEBUG_HEADER, "quant = %i\n", quant);#endif	BitstreamPutBits(bs, quant, 5);	/* quantizer */	if (frame->coding_type != I_VOP)		BitstreamPutBits(bs, frame->fcode, 3);	/* forward_fixed_code */	if (frame->coding_type == B_VOP)		BitstreamPutBits(bs, frame->bcode, 3);	/* backward_fixed_code */}voidBitstreamWriteUserData(Bitstream * const bs,						uint8_t * data,						const int length){	int i;	BitstreamPad(bs);	BitstreamPutBits(bs, USERDATA_START_CODE, 32);	for (i = 0; i < length; i++) {		BitstreamPutBits(bs, data[i], 8);	}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久国际精品| 国产成人免费在线视频| 亚洲国产日韩a在线播放性色| 亚洲日本va在线观看| 久久精品欧美一区二区三区不卡 | 日韩av成人高清| 视频一区欧美日韩| 免费成人在线网站| 韩国女主播一区| 国产高清亚洲一区| www..com久久爱| 99在线精品一区二区三区| 94-欧美-setu| 欧美日韩一区在线观看| 欧美乱熟臀69xxxxxx| 日韩女优av电影| 久久久久久久久蜜桃| 国产精品国产a级| 亚洲一区在线观看免费观看电影高清| 亚洲第一精品在线| 毛片不卡一区二区| 成人午夜碰碰视频| 色综合视频一区二区三区高清| 一本色道a无线码一区v| 欧美日韩免费一区二区三区视频| 日韩一区二区三区视频在线| 精品国产免费一区二区三区香蕉| 日本一区二区视频在线观看| 国产精品白丝在线| 亚洲电影一级片| 国产乱对白刺激视频不卡 | 久久久亚洲精品石原莉奈| 国产精品三级视频| 亚洲一区二区高清| 捆绑紧缚一区二区三区视频| 北条麻妃一区二区三区| 9191国产精品| 国产欧美综合在线观看第十页 | 国产综合一区二区| 99精品国产一区二区三区不卡| 欧美亚洲综合网| 久久久国产一区二区三区四区小说 | 亚洲444eee在线观看| 国内精品在线播放| 色综合久久天天综合网| 日韩欧美国产wwwww| 亚洲欧美日韩一区二区 | 精品一区二区免费看| 91小视频在线免费看| 日韩欧美色综合| 亚洲素人一区二区| 精品一区二区三区欧美| 91精品福利在线| 久久久精品免费网站| 亚洲成a人在线观看| 成人激情综合网站| 欧美一区二区美女| 亚洲激情自拍偷拍| 丁香桃色午夜亚洲一区二区三区| 欧美日韩国产首页| 中文字幕综合网| 国产精品中文有码| 欧美精品久久一区| 亚洲免费在线观看视频| 国产精品亚洲成人| 亚洲大尺度视频在线观看| 亚洲综合视频在线| 国产精品1区2区3区| 91精品国产综合久久福利软件| 亚洲品质自拍视频网站| 国产高清在线精品| 欧美变态口味重另类| 亚洲成人资源在线| 色综合久久66| 中文字幕一区二区5566日韩| 国产伦理精品不卡| 欧美一区二区三区系列电影| 亚洲国产日韩在线一区模特| 91麻豆免费在线观看| 欧美激情一区二区三区在线| 国产在线精品一区二区不卡了 | 91在线播放网址| 国产欧美日韩亚州综合| 久久精品国内一区二区三区| 欧美精品乱码久久久久久| 亚洲午夜电影在线观看| 一本色道a无线码一区v| 亚洲色图另类专区| 北条麻妃一区二区三区| 中文字幕不卡的av| 成人免费福利片| 国产精品麻豆视频| 国产91丝袜在线播放0| 日本一区免费视频| 懂色av噜噜一区二区三区av| 久久精品夜色噜噜亚洲a∨| 国产一区二区三区在线看麻豆| 日韩欧美一区二区久久婷婷| 日韩二区在线观看| 69堂精品视频| 日本亚洲最大的色成网站www| 欧美日韩一区二区三区四区五区| 亚洲一区二区三区四区在线免费观看 | 午夜影院久久久| 欧美日韩大陆在线| 日韩成人av影视| 日韩精品一区二区三区在线| 久久机这里只有精品| 久久天堂av综合合色蜜桃网| 国产麻豆成人精品| 中文字幕不卡的av| 日本韩国精品在线| 亚洲在线免费播放| 欧美一级日韩一级| 国产精品资源在线看| 中文字幕欧美三区| 色中色一区二区| 天涯成人国产亚洲精品一区av| 欧美一级生活片| 国产成人精品亚洲午夜麻豆| 国产精品女同互慰在线看| 97se狠狠狠综合亚洲狠狠| 亚洲一卡二卡三卡四卡五卡| 亚洲一区在线免费观看| 色成人在线视频| 日韩黄色在线观看| 久久嫩草精品久久久精品| 成人精品一区二区三区四区 | 亚洲欧美日韩系列| 欧美男女性生活在线直播观看| 蜜臀a∨国产成人精品| 久久先锋影音av鲁色资源 | 国产欧美日韩一区二区三区在线观看| 成人少妇影院yyyy| 亚洲高清免费观看 | 亚洲精品视频一区二区| 欧美一区二区在线免费观看| 国产精品系列在线播放| 一区二区三区中文免费| 日韩欧美综合一区| 成人18视频日本| 日本成人中文字幕在线视频| 久久久久久夜精品精品免费| 色欧美乱欧美15图片| 麻豆精品一区二区综合av| 亚洲欧美一区二区视频| 欧美一区二区女人| av日韩在线网站| 免费看精品久久片| 亚洲视频免费看| 精品国产乱码91久久久久久网站| 97se亚洲国产综合自在线不卡| 青草av.久久免费一区| 国产精品每日更新在线播放网址| 555www色欧美视频| 99精品欧美一区二区三区小说 | 99国内精品久久| 青青草原综合久久大伊人精品 | 夜夜夜精品看看| 久久久美女艺术照精彩视频福利播放| 在线亚洲高清视频| 风流少妇一区二区| 欧美aaaaa成人免费观看视频| 最新中文字幕一区二区三区| 日韩美女在线视频| 欧美视频一区二区在线观看| 成人在线综合网站| 久久99在线观看| 偷窥国产亚洲免费视频| 中文字幕日韩精品一区| 久久色在线视频| 欧美一二三区精品| 欧美日韩国产综合一区二区| 99久久综合精品| 国产传媒日韩欧美成人| 裸体健美xxxx欧美裸体表演| 亚洲国产精品久久久男人的天堂| 国产精品国产精品国产专区不蜜| 26uuu欧美| 日韩美女主播在线视频一区二区三区 | 欧美亚洲日本国产| 97久久精品人人做人人爽50路| 国产一区二区在线视频| 美女视频一区在线观看| 三级欧美韩日大片在线看| 一区二区三区精品| 亚洲美女视频在线观看| 国产精品电影一区二区| 国产亚洲一区二区在线观看| 精品国产伦一区二区三区免费 | 亚洲成在线观看| 一区二区三区在线观看视频| 亚洲欧洲日韩女同| 成人欧美一区二区三区视频网页| 国产日韩欧美高清在线| 国产亚洲精品bt天堂精选| 久久久影视传媒| 国产亚洲精品超碰| 亚洲国产精品二十页| 国产精品免费视频网站|