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

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

?? mp4_vld.c

?? < VC++視頻音頻開發>> 這本書的源碼
?? 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) { 
		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 {

		switch (showbits(2)) {
			case 0x0 :  
			case 0x1 :  
				flushbits(1);
				tab = vldTableB16(showbits(12));  
				if (!tab) { 
					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);  
				event.level += lmax;
				event.level =  getbits(1) ? -event.level : event.level;
				break;
			case 0x2 :  
				flushbits(2);
				tab = vldTableB16(showbits(12));  
				if (!tab) { 
					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);  
				event.run = event.run + rmax + 1;
				event.level = getbits(1) ? -event.level : event.level;
				break;
			case 0x3 :  
				flushbits(2);
				event.last  = getbits(1);
				event.run   = getbits(6);  
				getbits(1); 
				event.level = getbits(12); 
				
				event.level = (event.level & 0x800) ? (event.level | (-1 ^ 0xfff)) : event.level;
				getbits(1); 
				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) { 
		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 {

		int mode = showbits(2);
		switch (mode) {
			case 0x0 :  
			case 0x1 : 
				flushbits(1);
				tab = vldTableB17(showbits(12));  
				if (!tab) { 
					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);  
				event.level += lmax;
				event.level = getbits(1) ? -event.level : event.level;
				break;
			case 0x2 :  
				flushbits(2);
				tab = vldTableB17(showbits(12));  
				if (!tab) { 
					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);  
				event.run = event.run + rmax + 1;
				event.level = getbits(1) ? -event.level : event.level;
				break;
			case 0x3 : 
				flushbits(2);
				event.last  = getbits(1);
				event.run   = getbits(6);   
				getbits(1); 
				event.level = getbits(12); 
				
				event.level = (event.level & 0x800) ? (event.level | (-1 ^ 0xfff)) : event.level;
				getbits(1); 
				break;
		}
	}

	return event;
}

/***/

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

/***/


int vldTableB19(int last, int run) {
	if (!last){ 
		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 { 
			return  0; 
		}
	} else {    
		if        (run ==  0) {
			return  8;
		} else if (run ==  1) {
			return  3;
		} else if (run <=  6) {
			return  2;
		} else if (run <= 20) {
			return  1;
		} else { 
			return  0; 
		}		
	}
}

/***/


int vldTableB20(int last, int run) {
	if (!last){ 
		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 {
			return  0; 
		}
	} else {   
		if        (run ==  0) {
			return  3;
		} else if (run ==  1) {
			return  2;
		} else if (run <= 40) {
			return  1;
		} else { 
			return  0; 
		}		
	}
}

/***/


int vldTableB21(int last, int level) {
	if (!last){ 
		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 { 
			return  0; 
		}
	} else {   
		if        (level ==  1) {
			return  20;
		} else if (level ==  2) {
			return  6;
		} else if (level ==  3) {
			return  1;
		} else if (level <=  8) {
			return  0;
		} else { 
			return  0; 
		}		
	}
}

/***/


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 { 
			return  0; 
		}
	} else {   
		if        (level ==  1) {
			return  40;
		} else if (level ==  2) {
			return  1;
		} else if (level ==  3) {
			return  0;
		} else { 
			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 {
		
		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 {
	
		return (tab_type *) NULL;
	}
	flushbits(tab->len);
	return tab;
}

/***/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕中文字幕中文字幕亚洲无线 | 一区二区三区成人| 日韩高清一区在线| 欧洲生活片亚洲生活在线观看| 91.成人天堂一区| 国产精品久久久久久福利一牛影视| 亚洲成av人片一区二区梦乃 | 轻轻草成人在线| 99久久国产综合色|国产精品| 91精品国产免费| 综合久久久久久| 狠狠色狠狠色合久久伊人| 欧美日韩一区高清| 中文字幕一区不卡| 经典一区二区三区| 欧美日韩欧美一区二区| 中文字幕在线不卡一区二区三区| 日韩国产欧美在线视频| 91国产精品成人| 国产精品国产自产拍高清av王其| 久久国产精品99精品国产| 欧美另类z0zxhd电影| 一区二区在线观看不卡| 成人动漫av在线| 国产亚洲精品精华液| 久久se这里有精品| 91精品婷婷国产综合久久性色 | 亚洲午夜免费电影| 成人永久aaa| 2020日本不卡一区二区视频| 日韩不卡一二三区| 欧美日韩电影一区| 亚洲电影欧美电影有声小说| 91在线云播放| 国产精品久久久久久福利一牛影视| 国产福利一区二区三区| 久久久精品人体av艺术| 国产99久久久久| 国产精品污网站| 99久久精品99国产精品| 亚洲女同ⅹxx女同tv| 在线观看国产一区二区| 一区二区三区不卡在线观看 | 9人人澡人人爽人人精品| 亚洲国产激情av| 成人av网站免费| 亚洲免费在线播放| 欧美少妇一区二区| 奇米影视7777精品一区二区| 日韩片之四级片| 国产精品资源网站| 国产精品久久久久久久裸模| 成人av在线资源| 一区二区三区免费| 51午夜精品国产| 国产一区二区免费看| 中文文精品字幕一区二区| 99久久免费视频.com| 一区二区三区免费看视频| 91精品国产综合久久久久| 国产在线精品免费av| 国产视频不卡一区| 色综合色狠狠综合色| 午夜精品福利一区二区三区av| 日韩一二三区不卡| 成人性生交大片免费看中文| 亚洲欧美国产三级| 欧美电影精品一区二区| 高清不卡一区二区在线| 亚洲在线观看免费视频| 精品福利av导航| 在线亚洲人成电影网站色www| 日韩电影一二三区| 欧美高清在线一区| 欧美精品亚洲二区| 国产v综合v亚洲欧| 亚洲综合视频在线观看| 久久这里都是精品| 欧美日韩一区二区三区不卡| 久久成人av少妇免费| 中文字幕中文字幕一区| 日韩精品一区二区三区蜜臀| 99久久99久久精品免费观看| 日本色综合中文字幕| 国产精品乱码人人做人人爱| 日韩欧美一级在线播放| 91色porny蝌蚪| 国产综合色精品一区二区三区| 亚洲色图欧洲色图| 久久婷婷色综合| 欧美福利视频导航| 91免费国产视频网站| 久久99九九99精品| 午夜一区二区三区视频| 国产精品美女视频| 欧美精品一区二| 欧美伦理视频网站| 日本国产一区二区| 成人精品一区二区三区四区| 九九**精品视频免费播放| 亚洲综合精品自拍| 国产精品国产a| 国产亚洲制服色| 日韩欧美国产综合一区 | 欧美日韩一级片在线观看| 北条麻妃国产九九精品视频| 国模娜娜一区二区三区| 五月天激情综合网| 亚洲与欧洲av电影| 亚洲午夜在线电影| 亚洲国产一区视频| 亚洲精品乱码久久久久久久久| 中文字幕成人在线观看| 国产日韩影视精品| 国产欧美日韩三级| 国产日韩成人精品| 国产欧美精品一区二区色综合 | 色欧美片视频在线观看| 日本道免费精品一区二区三区| 99精品黄色片免费大全| 99视频有精品| 色8久久精品久久久久久蜜| 日本丶国产丶欧美色综合| 91成人免费在线视频| 欧日韩精品视频| 欧美日韩国产一级片| 91精品国产色综合久久ai换脸| 欧美吞精做爰啪啪高潮| 欧美高清视频一二三区 | 日本高清不卡在线观看| 91久久精品一区二区三区| 在线观看三级视频欧美| 欧美精品一二三| 精品欧美黑人一区二区三区| 久久久亚洲欧洲日产国码αv| 国产亚洲精品久| 亚洲欧美日韩国产中文在线| 亚洲午夜在线视频| 久久se精品一区精品二区| 国产精品白丝jk白祙喷水网站| 成人av片在线观看| 欧美片在线播放| 精品av久久707| 日韩美女精品在线| 亚洲成人免费电影| 国产一区二区主播在线| 丁香天五香天堂综合| 色狠狠桃花综合| 日韩欧美视频在线| 国产精品不卡在线| 日韩精品亚洲一区| 国产成人亚洲综合a∨婷婷| 欧洲激情一区二区| 久久久国产精品不卡| 亚洲一区二三区| 蜜桃一区二区三区在线观看| 不卡视频在线观看| 欧美一二三区精品| 亚洲欧洲日产国码二区| 天天综合天天做天天综合| 大尺度一区二区| 这里只有精品电影| 一色桃子久久精品亚洲| 日本少妇一区二区| 色婷婷激情综合| 久久久综合九色合综国产精品| 亚洲午夜久久久久久久久电影院 | 亚洲综合激情网| 国产毛片精品国产一区二区三区| 91老师国产黑色丝袜在线| 精品国产欧美一区二区| 亚洲午夜久久久久久久久久久| 国产精品1区二区.| 日韩欧美一级二级三级| 一区二区三区色| 波多野结衣中文字幕一区二区三区| 欧美肥妇bbw| 亚洲精品日韩专区silk| 国产美女一区二区| 精品国内二区三区| 日韩黄色一级片| 色综合久久88色综合天天免费| 久久蜜桃av一区精品变态类天堂 | 99久久婷婷国产精品综合| 欧美精品一区在线观看| 日韩国产一二三区| 欧美日韩视频一区二区| 日韩理论在线观看| 国产成人精品免费一区二区| 日韩你懂的在线观看| 亚洲成人精品影院| 91国内精品野花午夜精品 | 亚洲欧美一区二区三区极速播放| 国产在线视频精品一区| 日韩欧美一级特黄在线播放| 一区二区三区美女| 一本大道久久a久久综合婷婷| 国产精品丝袜91| 高清国产一区二区三区| 精品不卡在线视频|