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

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

?? common.c

?? USB技術大全-54.8M.zip
?? C
字號:
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include "common.h"

char *layer_names[3] = { "I", "II", "III" };
int bitrate[3][15] = {
	{0,32,64,96,128,160,192,224,256,288,320,352,384,416,448},
	{0,32,48,56,64,80,96,112,128,160,192,224,256,320,384},
	{0,32,40,48,56,64,80,96,112,128,160,192,224,256,320}
};
double  s_freq[4] = {44.1, 48, 32, 0};
char *mode_names[4] = { "stereo", "j-stereo", "dual-ch", "single-ch" };


FILE *OpenTableFile(char *name)
{
	char fulname[80];
	FILE *f;

	fulname[0] = '\0';

	strcat(fulname, name);
	if( (f=fopen(fulname,"r"))==NULL ) {
		fprintf(stderr,"\nOpenTable: could not find %s\n", fulname);
    }
    return f;
}


void WriteHdr(frame_params *fr_ps)
{
	layer *info = fr_ps->header;

	printf("HDR:  sync=FFF, id=%X, layer=%X, ep=%X, br=%X, sf=%X, pd=%X, ",
		info->version, info->lay, !info->error_protection,
		info->bitrate_index, info->sampling_frequency, info->padding);

	printf("pr=%X, m=%X, js=%X, c=%X, o=%X, e=%X\n",
		info->extension, info->mode, info->mode_ext,
		info->copyright, info->original, info->emphasis);

	printf("layer=%s, tot bitrate=%d, sfrq=%.1f, mode=%s, ",
		layer_names[info->lay-1], bitrate[info->lay-1][info->bitrate_index],
		s_freq[info->sampling_frequency], mode_names[info->mode]);

	printf("sblim=%d, jsbd=%d, ch=%d\n",
		fr_ps->sblimit, fr_ps->jsbound, fr_ps->stereo);
}

void *mem_alloc(unsigned long block, char *item)
{
	void *ptr;
	ptr = (void *)malloc((unsigned long)block);
	if (ptr != NULL)
		memset(ptr, 0, block);
	else{
		printf("Unable to allocate %s\n", item);
		exit(0);
	}
	return ptr;
}

/*open and initialize the buffer; */
void alloc_buffer(Bit_stream_struc *bs, int size)
{
	bs->buf = (unsigned char *) mem_alloc(size*sizeof(unsigned char), "buffer");
	bs->buf_size = size;
}

void desalloc_buffer(Bit_stream_struc *bs)
{
	free(bs->buf);
}

/* open the device to read the bit stream from it */
void open_bit_stream_r(Bit_stream_struc *bs, char *bs_filenam, int size)
{
	register unsigned char flag = 1;

	if ((bs->pt = fopen(bs_filenam, "rb")) == NULL) {
		printf("Could not find \"%s\".\n", bs_filenam);
		exit(1);
	}

	bs->format = BINARY;
	alloc_buffer(bs, size);
	bs->buf_byte_idx=0;
	bs->buf_bit_idx=0;
	bs->totbit=0;
	bs->mode = READ_MODE;
	bs->eob = FALSE;
	bs->eobs = FALSE;
}

void close_bit_stream_r(Bit_stream_struc *bs)
{
	fclose(bs->pt);
	desalloc_buffer(bs);
}

/*return the status of the bit stream*/
/* returns 1 if end of bit stream was reached */
/* returns 0 if end of bit stream was not reached */
int end_bs(Bit_stream_struc *bs)
{
  return(bs->eobs);
}


/*return the current bit stream length (in bits)*/
unsigned long sstell(Bit_stream_struc *bs)
{
  return(bs->totbit);
}


void refill_buffer(Bit_stream_struc *bs)
{
	register int i=bs->buf_size-2-bs->buf_byte_idx;
	register unsigned long n=1;

	while ((i>=0) && (!bs->eob)) {
			n=fread(&bs->buf[i--], sizeof(unsigned char), 1, bs->pt);
		if (!n)
		bs->eob= i+1;
	}
}


int mask[8]={0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80};

/*read 1 bit from the bit stream */
unsigned int get1bit(Bit_stream_struc *bs)
{
   unsigned int bit;
   register int i;

   bs->totbit++;

   if (!bs->buf_bit_idx) {
        bs->buf_bit_idx = 8;
        bs->buf_byte_idx--;
        if ((bs->buf_byte_idx < MINIMUM) || (bs->buf_byte_idx < bs->eob)) {
             if (bs->eob)
                bs->eobs = TRUE;
             else {
                for (i=bs->buf_byte_idx; i>=0;i--)
                  bs->buf[bs->buf_size-1-bs->buf_byte_idx+i] = bs->buf[i];
                refill_buffer(bs);
                bs->buf_byte_idx = bs->buf_size-1;
             }
        }
   }
   bit = bs->buf[bs->buf_byte_idx]&mask[bs->buf_bit_idx-1];
   bit = bit >> (bs->buf_bit_idx-1);
   bs->buf_bit_idx--;
   return(bit);
}

int putmask[9]={0x0, 0x1, 0x3, 0x7, 0xf, 0x1f, 0x3f, 0x7f, 0xff};

/*read N bit from the bit stream */
unsigned long getbits(Bit_stream_struc *bs, int N)
{
	unsigned long val=0;
	register int i;
	register int j = N;
	register int k, tmp;

	if (N > MAX_LENGTH)
		printf("Cannot read or write more than %d bits at a time.\n", MAX_LENGTH);

	bs->totbit += N;
	while (j > 0) {
		if (!bs->buf_bit_idx) {
			bs->buf_bit_idx = 8;
			bs->buf_byte_idx--;
			if ((bs->buf_byte_idx < MINIMUM) || (bs->buf_byte_idx < bs->eob)) {
				if (bs->eob)
					bs->eobs = TRUE;
				else {
					for (i=bs->buf_byte_idx; i>=0;i--)
						bs->buf[bs->buf_size-1-bs->buf_byte_idx+i] = bs->buf[i];
						refill_buffer(bs);
					bs->buf_byte_idx = bs->buf_size-1;
				}
			}
		}
		k = MIN(j, bs->buf_bit_idx);
		tmp = bs->buf[bs->buf_byte_idx]&putmask[bs->buf_bit_idx];
		tmp = tmp >> (bs->buf_bit_idx-k);
		val |= tmp << (j-k);
		bs->buf_bit_idx -= k;
		j -= k;
	}
	return val;
}


int seek_sync(Bit_stream_struc *bs, unsigned long sync, int N)
{
	unsigned long aligning;
	unsigned long val;
	long maxi = (int)pow(2.0, (double)N) - 1;

	aligning = sstell(bs)%ALIGNING;
	if (aligning)
		getbits(bs, (int)(ALIGNING-aligning));

	val = getbits(bs, N);
	while (((val&maxi) != sync) && (!end_bs(bs))) {
		val <<= ALIGNING;
		val |= getbits(bs, ALIGNING);
	}

	if (end_bs(bs))
		return(0);
	else
		return(1);
}

int js_bound(int lay, int m_ext)
{
	static int jsb_table[3][4] =  {
		{ 4, 8, 12, 16 },
		{ 4, 8, 12, 16},
		{ 0, 4, 8, 16}
	};  /* lay+m_e -> jsbound */

    if(lay<1 || lay >3 || m_ext<0 || m_ext>3) {
        fprintf(stderr, "js_bound bad layer/modext (%d/%d)\n", lay, m_ext);
        exit(1);
    }
	return(jsb_table[lay-1][m_ext]);
}

/* interpret data in hdr str to fields in fr_ps */
void hdr_to_frps(frame_params *fr_ps)
{
	layer *hdr = fr_ps->header;     /* (or pass in as arg?) */

	fr_ps->actual_mode = hdr->mode;
	fr_ps->stereo = (hdr->mode == MPG_MD_MONO) ? 1 : 2;
	fr_ps->sblimit = SBLIMIT;
	if(hdr->mode == MPG_MD_JOINT_STEREO)
		fr_ps->jsbound = js_bound(hdr->lay, hdr->mode_ext);
	else
		fr_ps->jsbound = fr_ps->sblimit;
}

#define	BUFSIZE	4096
static unsigned int buf[BUFSIZE];
static unsigned int buf_bit_idx=8;
static unsigned long offset, totbit=0, buf_byte_idx=0;

void hputbuf(unsigned int val, int N)
{
	if (N != 8) {
		printf("Not Supported yet!!\n");
		exit(-3);
	}
	buf[offset % BUFSIZE] = val;
	offset++;
}

/*return the current bit stream length (in bits)*/
unsigned long hsstell()
{
	return(totbit);
}

/*read N bit from the bit stream */
unsigned long hgetbits(int N)
{
	unsigned long val=0;
	register int j = N;
	register int k, tmp;

/*
	 if (N > MAX_LENGTH)
		 printf("Cannot read or write more than %d bits at a time.\n", MAX_LENGTH);
*/
	totbit += N;
	while (j > 0) {
		if (!buf_bit_idx) {
			buf_bit_idx = 8;
			buf_byte_idx++;
			if (buf_byte_idx > offset) {
				printf("Buffer overflow !!\n");
				exit(3);
			}
		}
		k = MIN(j, buf_bit_idx);
		tmp = buf[buf_byte_idx%BUFSIZE]&putmask[buf_bit_idx];
		tmp = tmp >> (buf_bit_idx-k);
		val |= tmp << (j-k);
		buf_bit_idx -= k;
		j -= k;
	}
	return(val);
}


unsigned int hget1bit()
{
	return(hgetbits(1));
}


void rewindNbits(int N)
{
	totbit -= N;
	buf_bit_idx += N;
	while( buf_bit_idx >= 8 ){
		buf_bit_idx -= 8;
		buf_byte_idx--;
	}
}


void rewindNbytes(int N)
{
	totbit -= N*8;
	buf_byte_idx -= N;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91精品一区二区麻豆网站 | 色播五月激情综合网| 久久国产精品72免费观看| 日韩国产欧美在线视频| 日韩和欧美一区二区| 天天综合网天天综合色| 日韩av成人高清| 免费看黄色91| 国产麻豆一精品一av一免费| 国产精品一品视频| www.日本不卡| 欧美日韩综合在线免费观看| 欧美久久久久中文字幕| 欧美精品1区2区3区| 欧美成人aa大片| 国产亚洲精品精华液| 亚洲国产精品精华液ab| 亚洲精品视频免费观看| 性久久久久久久久久久久| 琪琪一区二区三区| 国产在线精品视频| 91在线视频观看| 欧美高清视频不卡网| 亚洲精品一区在线观看| 国产精品久久夜| 日韩影院在线观看| 成人丝袜18视频在线观看| 欧美综合色免费| 欧美大片一区二区| 最新国产の精品合集bt伙计| 亚洲动漫第一页| 国产成人综合精品三级| 欧美伊人久久大香线蕉综合69| 欧美一级一区二区| 成人欧美一区二区三区白人| 日韩国产精品久久| 成人午夜免费视频| 91精品国产综合久久久久久久 | 一本大道久久a久久综合婷婷| 欧美日韩一卡二卡三卡| 国产日韩欧美精品电影三级在线| 亚洲国产中文字幕| 成人一区二区视频| 日韩一区二区三区免费看| 中文字幕一区二区三区四区不卡| 午夜视黄欧洲亚洲| aaa亚洲精品| 久久综合网色—综合色88| 午夜在线电影亚洲一区| 风间由美性色一区二区三区| 在线不卡欧美精品一区二区三区| 中国av一区二区三区| 男人的天堂久久精品| 欧美色视频在线观看| 国产精品理论片| 国产精品一区在线| 日韩三级中文字幕| 亚洲第一激情av| 91福利社在线观看| 最新高清无码专区| 成人国产精品免费| 久久精品一区八戒影视| 狠狠色丁香久久婷婷综合_中 | 亚洲人一二三区| 国产精品自在在线| 久久天堂av综合合色蜜桃网| 免费观看在线综合| 欧美精品99久久久**| 亚洲高清免费观看高清完整版在线观看| 成人av影院在线| 国产精品福利一区| 成人免费毛片app| 中文子幕无线码一区tr| 国产福利精品导航| 国产精品二三区| av一二三不卡影片| 一区二区在线看| 在线亚洲+欧美+日本专区| 亚洲免费高清视频在线| 色综合天天视频在线观看| 亚洲精品你懂的| 在线观看网站黄不卡| 亚洲小说春色综合另类电影| 欧美乱妇15p| 奇米影视7777精品一区二区| 欧美成人国产一区二区| 国产福利一区二区| ...av二区三区久久精品| 91色在线porny| 亚洲午夜激情网页| 日韩精品一区二区三区在线| 国产高清视频一区| 亚洲欧美日韩综合aⅴ视频| 欧美系列在线观看| 日本成人在线电影网| 欧美精品一区二区不卡| 成人97人人超碰人人99| 亚洲综合偷拍欧美一区色| 日韩午夜激情免费电影| 国产91露脸合集magnet| 伊人夜夜躁av伊人久久| 精品久久久久99| 99久久久久久| 日本大胆欧美人术艺术动态 | 欧美在线观看你懂的| 蜜臀av一区二区在线免费观看 | 日韩美女视频一区二区在线观看| 久久99精品国产| 亚洲天堂精品在线观看| 欧美一区二区视频在线观看2020| 国产一区二区美女| 亚洲国产欧美一区二区三区丁香婷| 欧美一卡二卡三卡四卡| 91丨国产丨九色丨pron| 人人狠狠综合久久亚洲| 中文字幕亚洲区| 欧美一区二区三区日韩视频| 99久久婷婷国产综合精品| 日本三级亚洲精品| 亚洲视频精选在线| 久久久亚洲午夜电影| 日韩精品三区四区| 日韩小视频在线观看专区| 成人国产在线观看| 精品一区二区三区欧美| 亚洲乱码国产乱码精品精98午夜| 日韩欧美电影一二三| 色国产综合视频| 不卡一卡二卡三乱码免费网站| 久99久精品视频免费观看| 亚洲一二三级电影| 亚洲欧美日韩国产另类专区| 一区二区三区高清在线| 精品欧美黑人一区二区三区| 欧美日韩另类一区| 99精品欧美一区二区三区小说| 国产一区二区三区| 麻豆精品久久久| 日韩高清国产一区在线| 亚洲成人tv网| 午夜视黄欧洲亚洲| 艳妇臀荡乳欲伦亚洲一区| 国产精品嫩草久久久久| 久久九九久久九九| 久久综合狠狠综合| 精品国产百合女同互慰| 日韩三级av在线播放| 制服丝袜在线91| 91精品在线免费观看| 欧美日韩国产另类一区| 欧美亚洲愉拍一区二区| 欧美日韩国产精选| 欧美少妇一区二区| 欧美日韩mp4| 91麻豆精品国产91久久久更新时间| 欧美人体做爰大胆视频| 欧美色爱综合网| 91精品国模一区二区三区| 91精品国产综合久久小美女| 欧美videossexotv100| 精品成人佐山爱一区二区| 国产日韩欧美亚洲| 国产精品国产馆在线真实露脸| 国产精品久久久久久久久免费桃花| 欧美激情一区二区在线| 亚洲欧美日本韩国| 亚洲成人www| 国精产品一区一区三区mba桃花 | 粉嫩aⅴ一区二区三区四区五区| 国产一区二区在线影院| 成人丝袜高跟foot| 欧美在线一区二区| 欧美精品色一区二区三区| 91精品久久久久久蜜臀| 久久久久久久久99精品| 中文字幕亚洲区| 亚洲高清免费在线| 国产精品12区| 色悠久久久久综合欧美99| 91精品一区二区三区久久久久久 | 亚洲欧美一区二区视频| 一区二区三区四区高清精品免费观看 | 麻豆国产欧美日韩综合精品二区 | a亚洲天堂av| 欧美日韩免费观看一区三区| 欧美成人精品1314www| 亚洲欧洲国产专区| 亚洲高清在线视频| 国产精品自拍在线| 欧美性生活久久| 国产性色一区二区| 亚洲国产视频在线| 国产精品综合二区| 欧美精品丝袜久久久中文字幕| 国产精品欧美精品| 视频一区国产视频| 波多野结衣中文字幕一区二区三区| 91精品1区2区| 国产蜜臀97一区二区三区| 日本不卡视频在线|