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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bitstream.c

?? TMS320C6713Xvid視頻壓縮算法源代碼.rar
?? C
?? 第 1 頁 / 共 3 頁
字號:
					}					READ_MARKER();					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 */			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);		}	}	while ((BitstreamPos(bs) >> 3) < bs->length);#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(); */	/* fake divx5 id, to ensure compatibility with divx5 decoder */#define DIVX5_ID "DivX999b000p"	if (pParam->max_bframes > 0 && (pParam->global_flags & XVID_GLOBAL_PACKED)) {		BitstreamWriteUserData(bs, DIVX5_ID, strlen(DIVX5_ID));	}	/* 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, (frame->vop_flags & XVID_VOP_REDUCED)?1: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);	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷久久综合九色综合绿巨人| 色婷婷av一区二区三区大白胸| 亚洲一区二区在线免费看| 国产亚洲精品超碰| 日韩欧美电影一区| 日韩一区二区在线观看视频播放| 国产91在线看| 波多野结衣中文一区| 国产成人av在线影院| 国产精品69毛片高清亚洲| 国产精品亚洲成人| 国产麻豆精品在线| 国产伦精品一区二区三区免费 | 一区二区视频免费在线观看| 欧美激情艳妇裸体舞| 最新国产の精品合集bt伙计| 亚洲日穴在线视频| 亚洲欧洲综合另类| 一区二区三区视频在线观看| 中文字幕欧美区| 国产欧美视频一区二区三区| 国产午夜亚洲精品午夜鲁丝片| 国产视频不卡一区| 国产精品久久久久aaaa樱花 | 亚洲色图制服丝袜| 亚洲欧美自拍偷拍色图| 亚洲在线成人精品| 亚洲第一狼人社区| 日本不卡一区二区三区 | 69堂亚洲精品首页| 日韩三级.com| 欧美一区二区三区免费大片| 久久影院电视剧免费观看| 久久久蜜臀国产一区二区| 国产欧美日韩另类视频免费观看| 久久精品这里都是精品| 中文字幕国产精品一区二区| 亚洲欧美日韩电影| 国产精品欧美一区二区三区| 亚洲高清不卡在线| 久久福利视频一区二区| 裸体一区二区三区| 99这里都是精品| 精品视频在线看| 欧美一级理论片| 亚洲国产岛国毛片在线| 午夜精品视频在线观看| 精品一区二区三区在线观看 | 国产精品久久久久久妇女6080 | 精品一区二区三区日韩| 日韩手机在线导航| 国产日韩欧美综合在线| 一区二区三区免费观看| 亚洲电影激情视频网站| 国产精品夜夜嗨| 91精品1区2区| 日韩欧美成人一区| 亚洲女同女同女同女同女同69| 日本sm残虐另类| 成人少妇影院yyyy| 3d动漫精品啪啪一区二区竹菊| 国产精品久久久久永久免费观看| 亚洲国产日韩a在线播放性色| 九色综合狠狠综合久久| 色综合天天综合色综合av| 国产亚洲欧美在线| 亚洲va韩国va欧美va精品| 高清不卡一二三区| 欧美亚洲国产一区二区三区va| 国产偷国产偷亚洲高清人白洁| 有码一区二区三区| 国产麻豆成人精品| 91色九色蝌蚪| 久久久影视传媒| 日韩毛片视频在线看| 久久99精品久久久久久动态图| 精品视频在线免费| 国产精品九色蝌蚪自拍| 九九在线精品视频| 欧美在线观看视频在线| 日韩美女啊v在线免费观看| 全国精品久久少妇| 欧美自拍偷拍午夜视频| 国产精品美女久久久久av爽李琼| 日韩中文字幕亚洲一区二区va在线| 91丝袜高跟美女视频| 欧美精品一区二区在线观看| 五月婷婷久久丁香| 91色视频在线| 欧美性色aⅴ视频一区日韩精品| 中文幕一区二区三区久久蜜桃| 麻豆国产精品一区二区三区 | 久久国产乱子精品免费女| 在线观看91视频| 欧美国产日本韩| 国产福利精品导航| 日韩一级片在线播放| 亚洲va在线va天堂| 成人av第一页| 中文字幕在线不卡一区二区三区| 国产一区二区视频在线| 日韩一区二区麻豆国产| 天堂影院一区二区| 欧美一区二区三级| 日韩中文字幕一区二区三区| 欧美在线制服丝袜| 国产精品第四页| 午夜精品免费在线| 欧美日韩在线综合| 亚洲一线二线三线久久久| 欧美午夜精品理论片a级按摩| 综合中文字幕亚洲| 色综合久久久久综合体| 久久综合九色综合97婷婷女人 | 日韩电影免费一区| 欧美欧美欧美欧美| 日韩专区在线视频| 日韩一区二区三区四区| 国产自产2019最新不卡| 久久人人爽爽爽人久久久| 国产美女视频一区| 国产亚洲精品精华液| av欧美精品.com| 中文字幕在线不卡| 色综合天天做天天爱| 亚洲一区视频在线观看视频| 欧美性生活一区| 麻豆精品一区二区| 国产亚洲精品7777| av福利精品导航| 亚洲另类在线视频| 精品视频全国免费看| 热久久久久久久| 久久综合色之久久综合| 天涯成人国产亚洲精品一区av| 欧美日韩aaaaa| 国产伦精品一区二区三区免费 | 亚洲精品一区二区在线观看| 成人免费看黄yyy456| 亚洲图片有声小说| 久久久噜噜噜久噜久久综合| 91亚洲国产成人精品一区二区三 | 91亚洲大成网污www| 性久久久久久久| 国产亚洲成aⅴ人片在线观看 | 亚洲欧美一区二区三区极速播放| 在线不卡欧美精品一区二区三区| 国产麻豆视频一区| 亚洲图片欧美综合| 国产日韩视频一区二区三区| 欧美亚洲综合久久| 国产69精品久久久久777| 亚洲一区二区成人在线观看| 精品福利av导航| 日本福利一区二区| 国产传媒日韩欧美成人| 午夜精品在线视频一区| 国产精品久久毛片av大全日韩| 678五月天丁香亚洲综合网| 成人avav影音| 黑人巨大精品欧美一区| 亚洲国产综合色| 国产日产欧美一区| 欧美一区二区三区思思人| 99国产麻豆精品| 国产麻豆日韩欧美久久| 天天综合色天天综合| 亚洲视频在线一区| 久久久久久久国产精品影院| 欧美区在线观看| 91香蕉视频污在线| 国产69精品久久99不卡| 捆绑调教一区二区三区| 亚洲成人动漫在线观看| 国产精品私人影院| 久久久久久麻豆| 69堂成人精品免费视频| 色天使色偷偷av一区二区| 成人精品国产一区二区4080| 国产在线日韩欧美| 另类小说综合欧美亚洲| 五月天久久比比资源色| 亚洲精品午夜久久久| 国产精品毛片久久久久久久| 精品国产一区久久| 日韩欧美成人激情| 欧美一级视频精品观看| 欧美日本国产视频| 欧美日免费三级在线| 91日韩在线专区| 9色porny自拍视频一区二区| 粉嫩欧美一区二区三区高清影视| 狠狠色伊人亚洲综合成人| 麻豆成人久久精品二区三区小说| 爽爽淫人综合网网站| 亚洲h在线观看| 五月天精品一区二区三区| 五月天激情小说综合| 亚洲va国产va欧美va观看| 亚洲国产视频一区二区|