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

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

?? mp4_vld.c

?? MPEG4圖像編碼和解碼處理C源代碼(非常經典的算法)
?? C
字號:
/**************************************************************************
 *                                                                        *
 * This code has been developed by John Funnell. This software is an      *
 * implementation of a part of one or more MPEG-4 Video tools as          *
 * specified in ISO/IEC 14496-2 standard.  Those intending to use this    *
 * software module in hardware or software products are advised that its  *
 * use may infringe existing patents or copyrights, and any such use      *
 * would be at such party's own risk.  The original developer of this     *
 * software module and his/her company, and subsequent editors and their  *
 * companies (including Project Mayo), will have no liability for use of  *
 * this software or modifications or derivatives thereof.                 *
 *                                                                        *
 * Project Mayo gives users of the Codec a license to this software       *
 * module or modifications thereof for use in hardware or software        *
 * products claiming conformance to the MPEG-4 Video Standard as          *
 * described in the Open DivX license.                                    *
 *                                                                        *
 * The complete Open DivX license can be found at                         *
 * http://www.projectmayo.com/opendivx/license.php                        *
 *                                                                        *
 **************************************************************************/
/**
*  Copyright (C) 2001 - Project Mayo
 *
 * John Funnell
 * Andrea Graziani
 *
 * DivX Advanced Research Center <darc@projectmayo.com>
*
**/
// mp4_vld.c //

#include <stdio.h>

#include "mp4_vars.h"

#include "getbits.h"
#include "mp4_vld.h"

/**
 * 
**/

/***/

event_t vld_intra_dct() 
{
	event_t event;
	tab_type *tab = (tab_type *) NULL;
	int lmax, rmax;

	tab = vldTableB16(showbits(12));
	if (!tab) { /* bad code */
		event.run   = 
		event.level = 
		event.last  = -1;
		return event;
	} 

	if (tab->val != ESCAPE) {
		event.run   = (tab->val >>  6) & 63;
		event.level =  tab->val        & 63;
		event.last  = (tab->val >> 12) &  1;
		event.level = getbits(1) ? -event.level : event.level;
	} else {
		/* this value is escaped - see para 7.4.1.3 */
		/* assuming short_video_header == 0 */
		switch (showbits(2)) {
			case 0x0 :  /* Type 1 */
			case 0x1 :  /* Type 1 */
				flushbits(1);
				tab = vldTableB16(showbits(12));  /* use table B-16 */
				if (!tab) { /* bad code */
					event.run   = 
					event.level = 
					event.last  = -1;
					return event;
				}
				event.run   = (tab->val >>  6) & 63;
				event.level =  tab->val        & 63;
				event.last  = (tab->val >> 12) &  1;
				lmax = vldTableB19(event.last, event.run);  /* use table B-19 */
				event.level += lmax;
				event.level =  getbits(1) ? -event.level : event.level;
				break;
			case 0x2 :  /* Type 2 */
				flushbits(2);
				tab = vldTableB16(showbits(12));  /* use table B-16 */
				if (!tab) { /* bad code */
					event.run   = 
					event.level = 
					event.last  = -1;
					break;
				}
				event.run   = (tab->val >>  6) & 63;
				event.level =  tab->val        & 63;
				event.last  = (tab->val >> 12) &  1;
				rmax = vldTableB21(event.last, event.level);  /* use table B-21 */
				event.run = event.run + rmax + 1;
				event.level = getbits(1) ? -event.level : event.level;
				break;
			case 0x3 :  /* Type 3  - fixed length codes */
				flushbits(2);
				event.last  = getbits(1);
				event.run   = getbits(6);  /* table B-18 */ 
				getbits(1); /* marker bit */
				event.level = getbits(12); /* table B-18 */
				/* sign extend level... */
				event.level = (event.level & 0x800) ? (event.level | (-1 ^ 0xfff)) : event.level;
				getbits(1); /* marker bit */
				break;
		}
	}

	return event;
}

/***/

event_t vld_inter_dct() 
{
	event_t event;
	tab_type *tab = (tab_type *) NULL;
	int lmax, rmax;

	tab = vldTableB17(showbits(12));
	if (!tab) { /* bad code */
		event.run   = 
		event.level = 
		event.last  = -1;
		return event;
	} 
	if (tab->val != ESCAPE) {
		event.run   = (tab->val >>  4) & 255;
		event.level =  tab->val        & 15;
		event.last  = (tab->val >> 12) &  1;
		event.level = getbits(1) ? -event.level : event.level;
	} else {
		/* this value is escaped - see para 7.4.1.3 */
		/* assuming short_video_header == 0 */
		int mode = showbits(2);
		switch (mode) {
			case 0x0 :  /* Type 1 */
			case 0x1 :  /* Type 1 */
				flushbits(1);
				tab = vldTableB17(showbits(12));  /* use table B-17 */
				if (!tab) { /* bad code */
					event.run   = 
					event.level = 
					event.last  = -1;
					return event;
				}
				event.run   = (tab->val >>  4) & 255;
				event.level =  tab->val        & 15;
				event.last  = (tab->val >> 12) &  1;
				lmax = vldTableB20(event.last, event.run);  /* use table B-20 */
				event.level += lmax;
				event.level = getbits(1) ? -event.level : event.level;
				break;
			case 0x2 :  /* Type 2 */
				flushbits(2);
				tab = vldTableB17(showbits(12));  /* use table B-16 */
				if (!tab) { /* bad code */
					event.run   = 
					event.level = 
					event.last  = -1;
					break;
				}
				event.run   = (tab->val >>  4) & 255;
				event.level =  tab->val        & 15;
				event.last  = (tab->val >> 12) &  1;
				rmax = vldTableB22(event.last, event.level);  /* use table B-22 */
				event.run = event.run + rmax + 1;
				event.level = getbits(1) ? -event.level : event.level;
				break;
			case 0x3 :  /* Type 3  - fixed length codes */
				flushbits(2);
				event.last  = getbits(1);
				event.run   = getbits(6);  /* table B-18 */ 
				getbits(1); /* marker bit */
				event.level = getbits(12); /* table B-18 */
				/* sign extend level... */
				event.level = (event.level & 0x800) ? (event.level | (-1 ^ 0xfff)) : event.level;
				getbits(1); /* marker bit */
				break;
		}
	}

	return event;
}

/***/

event_t vld_event(int intraFlag) 
{
	if (intraFlag) {
		return vld_intra_dct();
	} else {
		return vld_inter_dct();
	}
}

/***/

/* Table B-19 -- ESCL(a), LMAX values of intra macroblocks */
int vldTableB19(int last, int run) {
	if (!last){ /* LAST == 0 */
		if        (run ==  0) {
			return 27;
		} else if (run ==  1) {
			return 10;
		} else if (run ==  2) {
			return  5;
		} else if (run ==  3) {
			return  4;
		} else if (run <=  7) {
			return  3;
		} else if (run <=  9) {
			return  2;
		} else if (run <= 14) {
			return  1;
		} else { /* illegal? */
			return  0; 
		}
	} else {    /* LAST == 1 */
		if        (run ==  0) {
			return  8;
		} else if (run ==  1) {
			return  3;
		} else if (run <=  6) {
			return  2;
		} else if (run <= 20) {
			return  1;
		} else { /* illegal? */
			return  0; 
		}		
	}
}

/***/

/* Table B-20 -- ESCL(b), LMAX values of inter macroblocks */
int vldTableB20(int last, int run) {
	if (!last){ /* LAST == 0 */
		if        (run ==  0) {
			return 12;
		} else if (run ==  1) {
			return  6;
		} else if (run ==  2) {
			return  4;
		} else if (run <=  6) {
			return  3;
		} else if (run <= 10) {
			return  2;
		} else if (run <= 26) {
			return  1;
		} else { /* illegal? */
			return  0; 
		}
	} else {    /* LAST == 1 */
		if        (run ==  0) {
			return  3;
		} else if (run ==  1) {
			return  2;
		} else if (run <= 40) {
			return  1;
		} else { /* illegal? */
			return  0; 
		}		
	}
}

/***/

/* Table B-21 -- ESCR(a), RMAX values of intra macroblocks */
int vldTableB21(int last, int level) {
	if (!last){ /* LAST == 0 */
		if        (level ==  1) {
			return 14;
		} else if (level ==  2) {
			return  9;
		} else if (level ==  3) {
			return  7;
		} else if (level ==  4) {
			return  3;
		} else if (level ==  5) {
			return  2;
		} else if (level <= 10) {
			return  1;
		} else if (level <= 27) {
			return  0;
		} else { /* illegal? */
			return  0; 
		}
	} else {    /* LAST == 1 */
		if        (level ==  1) {
			return  20;
		} else if (level ==  2) {
			return  6;
		} else if (level ==  3) {
			return  1;
		} else if (level <=  8) {
			return  0;
		} else { /* illegal? */
			return  0; 
		}		
	}
}

/***/

/* Table B-22 -- ESCR(b), RMAX values of inter macroblocks */
int vldTableB22(int last, int level) {
	if (!last){ /* LAST == 0 */
		if        (level ==  1) {
			return 26;
		} else if (level ==  2) {
			return 10;
		} else if (level ==  3) {
			return  6;
		} else if (level ==  4) {
			return  2;
		} else if (level <=  6) {
			return  1;
		} else if (level <= 12) {
			return  0;
		} else { /* illegal? */
			return  0; 
		}
	} else {    /* LAST == 1 */
		if        (level ==  1) {
			return  40;
		} else if (level ==  2) {
			return  1;
		} else if (level ==  3) {
			return  0;
		} else { /* illegal? */
			return  0; 
		}		
	}
}

/***/

tab_type *vldTableB16(int code) {
	tab_type *tab;

	if (code >= 512) {
		tab = &(mp4_tables->tableB16_1[(code >> 5) - 16]);
	} else if (code >= 128) {
		tab = &(mp4_tables->tableB16_2[(code >> 2) - 32]);
	} else if (code >= 8) {
		tab = &(mp4_tables->tableB16_3[(code >> 0) - 8]);
	} else {
		/* invalid Huffman code */
		return (tab_type *) NULL;
	}
	flushbits(tab->len);
	return tab;
}

/***/

tab_type *vldTableB17(int code) {
	tab_type *tab;

	if (code >= 512) {
		tab = &(mp4_tables->tableB17_1[(code >> 5) - 16]);
	} else if (code >= 128) {
		tab = &(mp4_tables->tableB17_2[(code >> 2) - 32]);
	} else if (code >= 8) {
		tab = &(mp4_tables->tableB17_3[(code >> 0) - 8]);
	} else {
		/* invalid Huffman code */
		return (tab_type *) NULL;
	}
	flushbits(tab->len);
	return tab;
}

/***/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
暴力调教一区二区三区| 日韩和的一区二区| 欧美高清在线一区二区| 亚洲靠逼com| 久久99国产精品久久99果冻传媒| 本田岬高潮一区二区三区| 日韩一级二级三级| 亚洲裸体xxx| 国产成人亚洲精品狼色在线| 91精品综合久久久久久| 日韩美女精品在线| 国产精品亚洲综合一区在线观看| 91麻豆精品国产91久久久更新时间| 中文字幕乱码亚洲精品一区| 久久9热精品视频| 欧美日韩视频一区二区| 综合欧美亚洲日本| 一区二区三区**美女毛片| 久久久久亚洲蜜桃| 天堂久久一区二区三区| 91蜜桃传媒精品久久久一区二区| 国产婷婷一区二区| 国产中文一区二区三区| 91精品免费观看| 亚洲v精品v日韩v欧美v专区| 色呦呦国产精品| 一区二区三区四区五区视频在线观看| 福利一区二区在线| 国产亲近乱来精品视频| 国产老肥熟一区二区三区| 久久奇米777| 国产成人在线看| 国产午夜精品理论片a级大结局| 韩国欧美一区二区| 久久一日本道色综合| 国产乱码精品一区二区三区五月婷| 精品乱人伦小说| 国产一区二区三区免费在线观看| 精品国产乱码久久久久久老虎 | 五月天精品一区二区三区| 99国产精品视频免费观看| 国产精品久久久久久久久久久免费看| 成人精品亚洲人成在线| 亚洲天堂av一区| 欧美中文字幕一区二区三区| 亚洲成人激情综合网| 欧美电影影音先锋| 精品亚洲国产成人av制服丝袜| 精品成人在线观看| 国产不卡免费视频| 中文字幕一区二区三中文字幕| 一本大道久久a久久综合婷婷 | 亚洲mv大片欧洲mv大片精品| 欧美日韩国产片| 美国一区二区三区在线播放| 日韩精品一区在线观看| 国产suv一区二区三区88区| 综合中文字幕亚洲| 欧美精品一区二区久久久| 国产麻豆成人传媒免费观看| 国产精品三级av| 欧美性猛交xxxxxx富婆| 精品亚洲欧美一区| 亚洲欧洲三级电影| 91精品国产全国免费观看| 国内精品写真在线观看| 国产精品久久久久久久久久免费看| 欧美在线观看一区| 精品一区二区三区免费视频| 亚洲欧美一区二区三区国产精品| 欧美精品粉嫩高潮一区二区| 国产成人精品在线看| 亚洲国产精品久久不卡毛片| 久久综合九色综合欧美就去吻| 99re视频这里只有精品| 日韩va欧美va亚洲va久久| 亚洲国产精品成人综合色在线婷婷| 欧美日韩三级视频| 国产成人av资源| 日韩不卡一区二区| 中文字幕日韩欧美一区二区三区| 91麻豆精品国产91久久久更新时间| 国产v综合v亚洲欧| 免费久久精品视频| 亚洲免费av观看| 欧美极品少妇xxxxⅹ高跟鞋| 制服丝袜亚洲网站| 91免费视频观看| 国产在线日韩欧美| 日韩精品亚洲专区| 一区二区三区日韩在线观看| 欧美激情一区二区三区在线| 91精品国产综合久久久久久| 91麻豆国产自产在线观看| 精品一区二区三区香蕉蜜桃| 午夜精品久久久久久| 亚洲精品欧美激情| 国产精品福利影院| 久久久久国产免费免费| 日韩一区二区三区四区| 欧美三级中文字幕在线观看| 99国产精品久久久久| 国产成人99久久亚洲综合精品| 美国欧美日韩国产在线播放| 午夜精品福利在线| 亚洲自拍与偷拍| 亚洲精品国产一区二区精华液 | 色哟哟欧美精品| 豆国产96在线|亚洲| 国产一区三区三区| 秋霞成人午夜伦在线观看| 婷婷开心久久网| 亚洲成av人片在线观看| 亚洲一区二区精品久久av| 亚洲视频你懂的| 亚洲女与黑人做爰| 亚洲免费观看高清完整版在线观看| 国产精品久久免费看| 日本一区二区三区四区在线视频| 久久蜜桃av一区二区天堂| 亚洲精品一区二区精华| 久久网站热最新地址| 国产片一区二区| 亚洲国产欧美在线| 天堂一区二区在线| 美女国产一区二区三区| 精品无人码麻豆乱码1区2区| 国产一区二区主播在线| 九一九一国产精品| 国产成人亚洲综合a∨猫咪| 国产91高潮流白浆在线麻豆| 99视频国产精品| 91国内精品野花午夜精品| 在线免费一区三区| 精品视频全国免费看| 日韩欧美不卡在线观看视频| 精品成人免费观看| 国产精品理论在线观看| 亚洲靠逼com| 日本伊人色综合网| 国产毛片精品视频| 99re成人精品视频| 欧美日韩一区二区三区在线看| 欧美一区二区三区喷汁尤物| 精品福利二区三区| 中文字幕日韩一区| 日本v片在线高清不卡在线观看| 久草这里只有精品视频| 国产高清视频一区| 99这里只有精品| 在线电影欧美成精品| 国产欧美日韩视频在线观看| 亚洲乱码国产乱码精品精98午夜| 日韩电影在线观看网站| 国产ts人妖一区二区| 欧美区视频在线观看| 久久嫩草精品久久久精品一| 一区二区三区四区激情| 精品在线免费观看| 99久久精品久久久久久清纯| 欧美另类久久久品| 国产精品理论片在线观看| 日韩电影在线免费| 91看片淫黄大片一级在线观看| 日韩欧美一区二区免费| 亚洲人被黑人高潮完整版| 精品在线你懂的| 欧美日韩五月天| 亚洲色图都市小说| 国内精品久久久久影院色 | 日韩美女啊v在线免费观看| 亚洲丶国产丶欧美一区二区三区| 国产风韵犹存在线视精品| 欧美久久久久久久久| 亚洲色图.com| 国产黑丝在线一区二区三区| 欧美精品第1页| 亚洲美女在线一区| 成人免费三级在线| 久久网这里都是精品| 青青草精品视频| 欧美欧美午夜aⅴ在线观看| 国产精品福利一区二区三区| 国产经典欧美精品| 日韩免费观看高清完整版在线观看| 亚洲一区日韩精品中文字幕| 成人高清av在线| 欧美国产一区视频在线观看| 国内国产精品久久| 日韩欧美在线网站| 日本视频一区二区| 欧美裸体bbwbbwbbw| 亚洲一区二区欧美激情| 91九色02白丝porn| 亚洲免费在线观看视频| 色综合网站在线| 亚洲视频一二区| 91国产精品成人| 亚洲激情图片一区| 久久久久国色av免费看影院|