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

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

?? bitsbuf.c

?? Mobile IP VCEG的信道模擬程序
?? C
字號:
//
// BitSBuf.c		Bit Stream Buffer Management
//
// this module is introduced to facilitate the handling of the bit stream
// reading.  It assumes a start code taht is a UVLC code word with len 31
// and info 0 for Picture Start code, and info = 1 for Slice start code.
// The module should be used for all entropy coding schemes, including UVLC
// and CABAC.



#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#include "global.h"
#include "bitsbuf.h"

static int SourceBitBufferPtr;		// the position for the next byte-write into the bit buffer
static FILE *bits;					// the bit stream file


//
// InitializeSourceBitBuffer()
//
// No Paranmeters
// Side effects: Initializes teh Source Bit Buffer

void InitializeSourceBitBuffer() {
	SourceBitBufferPtr = 0;
}


//
// static int TypeOfStartCode (byte *buf) returns the type of the start code
//   at byte aligned position buf.  Possible returns are 
//   -- the info field of a start code (len == 31) or
//   -- -1, inidicating that there is no start code here
// This function could be optimized considerably by checking for zero bytes first,
// but the current implementation gives us mroe freedom to define what a
// start code actually is
// Note that this function could be easily extended to search for non
// byte alogned start codes, by simply checking all 8 bit positions
// (and not only the zero position

static int TypeOfStartCode (byte *Buf) {
	int info;

	// A bit of optimization first: a start code starts always with 3 zero bytes
	if ((Buf[0] != 0) || (Buf[1] != 0) || (Buf[2] != 0))
		return -1;

	if (31 != GetVLCSymbol (Buf, 0, &info, MAX_CODED_FRAME_SIZE)) { 
//		printf ("TypeOfStartcode: GetVLCSymbolreturns %d\n", GetVLCSymbol (Buf, 0, &info));
		return -1;
	}
//	printf ("TypeOfStartCode: found info %d\n", info);
	if (info != 0 && info != 1)		// the only two start codes currently allowed
		return -1;
	return info;
}

//
// int GetOneSliceIntoSourceBitBuffer (int, int *)
//
// Returns the number of bytes in copied into the buffer
// The buffer includes the own start code, but excludes the
// next slice's start code
// returns 0, if there is nothing any more to read (EOF)
// returns -1 in case of any error
//
// Note: GetOneSliceIntoSourceBitBuffer() expects start codes as follows:
//   Slice start code: UVLC, len == 31, info == 1
//   Picture Start code: UVLC, len == 31, info == 0
// Note: getOneSliceIntoSourceBitBuffer expects Slice and Picture start codes
//   at byte aligned positions in the file
//

int GetOneSliceIntoSourceBitBuffer(byte *Buf) {
	int info, pos;
	int StartCodeFound;

	InitializeSourceBitBuffer();
	// read the first 32 bits (which MUST contain a start code, or eof)
	if (4 != fread (Buf, 1, 4, bits)) {
// printf ("GetOneSliceIntoSourceBitBuffer: cannot read four bytes header, return 0\n");
		return 0;
	}
	info = TypeOfStartCode (Buf);
	if (info < 0) {
		printf ("GetOneSliceIntoSourceBitBuffer: no Start Code at the begin of the slice, return -1\n");
		return -1;
	}
	if (info != 0 && info != 1) {
		printf ("GetOneSliceIntoSourceBitBuffer: found start code with invalid info %d, return -1\n", info);
		return -1;
	}
// printf ("GetOneSliceIntoSourceBitBuffer: got a correct start code\n");
	pos = 4;
	StartCodeFound = 0;
	
	while (!StartCodeFound) {
		if (feof (bits))
			return pos;
		Buf[pos++] = fgetc (bits);
		
		info = TypeOfStartCode(&Buf[pos-4]);
		StartCodeFound = (info == 0 || info == 1);
	}

	// Here, we have found another start code (and read four bytes more than we should
	// have.  Hence, go back in the file

	if (0 != fseek (bits, -4, SEEK_CUR)) {
		printf ("GetOneSliceIntoSourceBitBuffer: Cannot fseek -4 in the bit stream file, exit\n");
		exit (-1);
	}

// { int i; for (i=0;i<12;i++) printf ("%02x ", Buf[i]); printf ("\n"); }
	return (pos-4);
}





//
// int OpenBitstreamFile (char *fn)
//
// Attempts to open the bit stream file named fn
// returns 0 on success, -1 in case of error
//
int OpenBitstreamFile (char *fn) {
	if (NULL == (bits=fopen(fn, "rb")))
		return -1;
//	printf ("OpenBitstreamFile: sucessfully opened file\n");
	return 0;
}


//
// void CloseBitstreamFile()
//
// Closes the bit stream file
//

void CloseBitstreamFile() {
	fclose (bits);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产iv一区二区三区| 91精品国产黑色紧身裤美女| 成人av网址在线观看| 色婷婷av一区| 欧美一区二区三区电影| 国产欧美视频一区二区三区| 国产精品久线在线观看| 无码av中文一区二区三区桃花岛| 久久国内精品视频| www.日本不卡| 日韩一卡二卡三卡国产欧美| 国产欧美一区二区精品性色| 天堂影院一区二区| 国产伦精品一区二区三区免费| 极品美女销魂一区二区三区| 一本大道久久a久久综合婷婷| 欧美日韩国产电影| 亚洲精品国产视频| 国产剧情一区二区| 337p亚洲精品色噜噜狠狠| 国产网站一区二区三区| 午夜精品福利在线| 99久久久国产精品| 久久影院视频免费| 亚洲成av人片一区二区三区| 成人精品gif动图一区| 91精品国产一区二区三区| 国产精品久久看| 免费观看在线综合色| 国产成人av电影免费在线观看| 91精品国产欧美一区二区18| 亚洲蜜臀av乱码久久精品 | 色婷婷综合久久久中文一区二区| 日韩午夜激情免费电影| 亚洲午夜免费电影| 激情国产一区二区| 日韩欧美亚洲国产精品字幕久久久| 亚洲人亚洲人成电影网站色| 国产精品一二三区在线| 欧美一区二区三区系列电影| 一区二区日韩电影| 91麻豆swag| 亚洲婷婷在线视频| 9i看片成人免费高清| 中文字幕高清不卡| 99综合影院在线| 亚洲欧洲成人av每日更新| 成人精品一区二区三区四区| 欧美日韩不卡在线| 中文字幕欧美一| 9久草视频在线视频精品| 国产精品天美传媒| 不卡av电影在线播放| 欧美激情综合网| 国产成人久久精品77777最新版本| 精品少妇一区二区三区免费观看| 天天综合天天做天天综合| 337p亚洲精品色噜噜狠狠| 日本成人在线网站| 欧美成人a视频| 国产成人亚洲精品青草天美| 91精品国产综合久久久久久久| 亚洲成人一区二区| 欧美大片免费久久精品三p| 国模少妇一区二区三区| 久久久精品黄色| 不卡av在线免费观看| 一区二区三区在线高清| 欧美四级电影在线观看| 日韩成人免费电影| 欧美精品一区二区三区视频| 国产aⅴ精品一区二区三区色成熟| 国产午夜一区二区三区| 成人免费毛片高清视频| 国产精品美女久久久久高潮| 91老师片黄在线观看| 亚洲图片欧美色图| 91精品国产色综合久久不卡蜜臀| 久久国产尿小便嘘嘘| 中文字幕不卡一区| 在线免费不卡电影| 捆绑紧缚一区二区三区视频| 国产人妖乱国产精品人妖| 91麻豆国产在线观看| 性欧美疯狂xxxxbbbb| 日韩欧美在线网站| 99精品一区二区三区| 日韩av一区二区三区四区| 国产片一区二区| 欧美精品1区2区3区| 国产乱人伦偷精品视频不卡| 中文字幕在线观看一区二区| 91精品国产综合久久久蜜臀粉嫩 | 一区二区高清在线| 91精品国产91热久久久做人人| 国产成人夜色高潮福利影视| 成人免费在线视频观看| 777精品伊人久久久久大香线蕉| 国产麻豆成人传媒免费观看| 亚洲一区av在线| 久久精品免费在线观看| 欧美日韩卡一卡二| 成人激情免费网站| 久久99久久精品| 一区二区三区电影在线播| 久久综合网色—综合色88| 99在线热播精品免费| 亚洲gay无套男同| 《视频一区视频二区| 国产日韩欧美一区二区三区综合| 欧美日本一区二区三区四区| 99久久er热在这里只有精品15| 久久99精品久久久久久国产越南| 午夜影院久久久| 中文字幕一区二区三区视频| 精品久久久久一区| 精品伦理精品一区| 色婷婷av一区| 99久久99久久精品国产片果冻| 麻豆精品国产传媒mv男同| 亚洲一区视频在线| 亚洲免费色视频| 亚洲国产精品国自产拍av| 精品国产免费久久| 日韩三级中文字幕| 日韩一区和二区| 91精品国产麻豆| 日韩三级伦理片妻子的秘密按摩| 欧美视频在线一区二区三区 | 欧美精品一区二区三区在线| 欧美精品xxxxbbbb| 在线综合+亚洲+欧美中文字幕| 欧美性大战久久久久久久蜜臀 | 精品国偷自产国产一区| 91精品国产美女浴室洗澡无遮挡| 8v天堂国产在线一区二区| 欧美人妇做爰xxxⅹ性高电影| 欧美在线免费观看亚洲| 在线观看国产日韩| 欧美日韩在线播放三区| 67194成人在线观看| 91美女蜜桃在线| 99精品视频在线观看| 91影院在线免费观看| 91麻豆swag| 欧美伦理视频网站| 欧美va亚洲va在线观看蝴蝶网| 91精品国产手机| 26uuu亚洲综合色| 国产精品二区一区二区aⅴ污介绍| 国产精品日产欧美久久久久| 亚洲另类色综合网站| 亚洲第一二三四区| 亚洲va天堂va国产va久| 日韩国产欧美在线观看| 久久国产精品第一页| 国产精品一色哟哟哟| caoporen国产精品视频| 在线观看视频一区二区欧美日韩| 欧美成人aa大片| 亚洲永久精品大片| 成人视屏免费看| 日韩一卡二卡三卡四卡| 亚洲一二三级电影| 99国产精品99久久久久久| 日韩欧美成人午夜| 午夜欧美在线一二页| www.亚洲色图| 国产日本亚洲高清| 精品一区二区三区久久久| 欧美色综合影院| 亚洲婷婷综合久久一本伊一区| 国产一区啦啦啦在线观看| 欧美三级视频在线播放| 中文字幕在线一区免费| 国产剧情av麻豆香蕉精品| 欧美一级生活片| 亚洲超碰97人人做人人爱| 色婷婷国产精品| 自拍偷拍欧美激情| 成人免费毛片片v| 国产三级一区二区三区| 精品无码三级在线观看视频| 欧美剧情片在线观看| 亚洲综合一区二区精品导航| 91在线精品一区二区| 自拍偷拍国产亚洲| 91美女福利视频| 国产精品欧美极品| 成人99免费视频| 自拍av一区二区三区| av福利精品导航| 亚洲免费电影在线| 欧美伊人久久久久久午夜久久久久| 亚洲丝袜另类动漫二区| 99久久精品国产精品久久| 亚洲视频狠狠干| 欧美系列在线观看| 丝袜脚交一区二区| 欧美成人女星排行榜|