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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? decode.c

?? ac3的解碼程序
?? C
字號(hào):
/*  *    decode.c * *	Copyright (C) Aaron Holtzman - May 1999 * *  This file is part of ac3dec, a free Dolby AC-3 stream decoder. *	 *  ac3dec is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2, or (at your option) *  any later version. *    *  ac3dec is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. *    *  You should have received a copy of the GNU General Public License *  along with GNU Make; see the file COPYING.  If not, write to *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  * * */#ifdef HAVE_CONFIG_H#include "config.h"#endif #include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#include "ac3.h"#include "decode.h"#include "bitstream.h"#include "imdct.h"#include "exponent.h"#include "mantissa.h"#include "bit_allocate.h"#include "uncouple.h"#include "parse.h"#include "output.h"#include "crc.h"#include "rematrix.h"#include "sys/time.h"#include "debug.h"static void decode_find_sync(bitstream_t *bs);static void decode_print_banner(void);static stream_coeffs_t stream_coeffs;static stream_samples_t stream_samples;static audblk_t audblk;static bsi_t bsi;static syncinfo_t syncinfo;static uint_32 frame_count = 0;prefs_t global_prefs = {0,0};#ifdef DO_NISTSynchronization *s;AudioStream *inputstream;void output_flush(void);int decode_ac3(AudioStream* inp, Synchronization* syn)#elseint main(int argc,char *argv[])#endif{	int i;	bitstream_t *bs;	FILE *in_file;	int done_banner = 0;#ifdef DO_NIST        s = syn;        inputstream = inp;#else	/* If we get an argument then use it as a filename... otherwise use	 * stdin */	if(argc > 1)	{		in_file = fopen(argv[1],"r");			if(!in_file)		{			fprintf(stderr,"%s - Couldn't open file %s\n",strerror(errno),argv[1]);			exit(1);		}	}	else		in_file = stdin;	bs = bitstream_open(in_file);#endif	imdct_init();	decode_sanity_check_init();	output_open(16,48000,2);	while(1)	{		decode_find_sync(bs);		parse_syncinfo(&syncinfo,bs);		parse_bsi(&bsi,bs);		if(!done_banner)		{			decode_print_banner();			done_banner = 1;		}		for(i=0; i < 6; i++)		{			/* Extract most of the audblk info from the bitstream			 * (minus the mantissas */			parse_audblk(&bsi,&audblk,bs);			decode_sanity_check();			/* Take the differential exponent data and turn it into			 * absolute exponents */			exponent_unpack(&bsi,&audblk,&stream_coeffs); 			decode_sanity_check();			/* Figure out how many bits per mantissa */			bit_allocate(syncinfo.fscod,&bsi,&audblk);			decode_sanity_check();			/* Extract the mantissas from the data stream */			mantissa_unpack(&bsi,&audblk,bs);			decode_sanity_check();			/* Uncouple the coupling channel if it exists and			 * convert the mantissa and exponents to IEEE floating			 * point format */			uncouple(&bsi,&audblk,&stream_coeffs);			decode_sanity_check();			if(bsi.acmod == 0x2)				rematrix(&audblk,&stream_coeffs);#if 0			/* Perform dynamic range compensation */			dynamic_range(&bsi,&audblk,&stream_coeffs); #endif			/* Convert the frequency data into time samples */			imdct(&bsi,&audblk,&stream_coeffs,&stream_samples);			decode_sanity_check();			/* Send the samples to the output device */			output_play(&bsi,&stream_samples);		}#ifdef DO_NIST                if (s) {                  output_flush();                  s->wait(2);                }#endif		parse_auxdata(&syncinfo,bs);		if(!crc_validate())		{			dprintf("(crc) CRC check failed\n");		}		else		{			dprintf("(crc) CRC check passed\n");		}		decode_sanity_check();#ifndef DO_NIST		if(bitstream_done(bs))			break;#endif	}	printf("End of stream\n");#ifndef DO_NIST	bitstream_close(bs);#endif	output_close();	return 0;}static void decode_find_sync(bitstream_t *bs){	uint_16 sync_word;	uint_32 i = 0;#ifdef DO_NIST        inputstream->get_header_ac3();#else	sync_word = bitstream_get(bs,16);	/* Make sure we sync'ed */	while(1)	{		if(sync_word == 0x0b77)			break;		sync_word <<= 8;		sync_word |= bitstream_get(bs,8);		i++;	}	dprintf("(sync) %ld bits skipped to synchronize\n",i);	dprintf("(sync) begin frame %ld\n",frame_count);	frame_count++;	bs->total_bits_read = 16;#endif	crc_init();}void decode_sanity_check_init(void){	syncinfo.magic = DECODE_MAGIC_NUMBER;	bsi.magic = DECODE_MAGIC_NUMBER;	audblk.magic1 = DECODE_MAGIC_NUMBER;	audblk.magic2 = DECODE_MAGIC_NUMBER;	audblk.magic3 = DECODE_MAGIC_NUMBER;}void decode_sanity_check(void){	int i;#ifdef DO_NIST return;#endif	if(syncinfo.magic != DECODE_MAGIC_NUMBER)		fprintf(stderr,"\n** Sanity check failed -- syncinfo magic number **");		if(bsi.magic != DECODE_MAGIC_NUMBER)		fprintf(stderr,"\n** Sanity check failed -- bsi magic number **");	if(audblk.magic1 != DECODE_MAGIC_NUMBER)		fprintf(stderr,"\n** Sanity check failed -- audblk magic number 1 **"); 	if(audblk.magic2 != DECODE_MAGIC_NUMBER)		fprintf(stderr,"\n** Sanity check failed -- audblk magic number 2 **"); 	if(audblk.magic3 != DECODE_MAGIC_NUMBER)		fprintf(stderr,"\n** Sanity check failed -- audblk magic number 3 **"); 	for(i = 0;i < 5 ; i++)	{		if (audblk.fbw_exp[i][255] !=0 || audblk.fbw_exp[i][254] !=0 || 				audblk.fbw_exp[i][253] !=0)			fprintf(stderr,"\n** Sanity check failed -- fbw_exp out of bounds **"); 		if (audblk.fbw_bap[i][255] !=0 || audblk.fbw_bap[i][254] !=0 || 				audblk.fbw_bap[i][253] !=0)			fprintf(stderr,"\n** Sanity check failed -- fbw_bap out of bounds **"); 		if (audblk.chmant[i][255] !=0 || audblk.chmant[i][254] !=0 || 				audblk.chmant[i][253] !=0)			fprintf(stderr,"\n** Sanity check failed -- chmant out of bounds **"); 	}	if (audblk.cpl_exp[255] !=0 || audblk.cpl_exp[254] !=0 || 			audblk.cpl_exp[253] !=0)		fprintf(stderr,"\n** Sanity check failed -- cpl_exp out of bounds **"); 	if (audblk.cpl_bap[255] !=0 || audblk.cpl_bap[254] !=0 || 			audblk.cpl_bap[253] !=0)		fprintf(stderr,"\n** Sanity check failed -- cpl_bap out of bounds **"); 	if (audblk.cplmant[255] !=0 || audblk.cplmant[254] !=0 || 			audblk.cplmant[253] !=0)		fprintf(stderr,"\n** Sanity check failed -- cpl_mant out of bounds **"); 	if ((audblk.cplinu == 1) && (audblk.cplbegf > (audblk.cplendf+2)))		fprintf(stderr,"\n** Sanity check failed -- cpl params inconsistent **"); 	for(i=0; i < bsi.nfchans; i++)	{		if((audblk.chincpl[i] == 0) && (audblk.chbwcod[i] > 60))			fprintf(stderr,"\n** Sanity check failed -- chbwcod too big **"); 	}	return;}	const char *const language[256] = {"unknown", "Albanian", "Breton", "Catalan", "Croatian", "Welsh", "Czech","Danish", "German", "English", "Spanish", "Esperanto", "Estonian", "Basque","Faroese", "French", "Frisian", "Irish", "Gaelic", "Galician", "Icelandic","Italian", "Lappish", "Latin", "Latvian", "Luxembourgian", "Lithuanian","Faroese", "French", "Frisian", "Irish", "Gaelic", "Galician", "Icelandic","Italian", "Lappish", "Latin", "Latvian", "Luxembourgian", "Lithuanian","Hungarian", "Maltese", "Dutch", "Norwegian", "Occitan", "Polish","Portugese","Romanian", "Romansh", "Serbian", "Slovak", "Slovene", "Finnish", "Swedish","Turkish", "Flemish", "Walloon", "0x2c", "0x2d", "0x2e", "0x2f", "0x30","0x31", "0x32", "0x33", "0x34", "0x35", "0x36", "0x37", "0x38", "0x39","0x3a", "0x3b", "0x3c", "0x3d", "0x3e", "0x3f", "background", "0x41", "0x42", "0x43","0x44", "Zulu", "Vietnamese", "Uzbek", "Urdu", "Ukrainian", "Thai", "Telugu","Tatar", "Tamil", "Tadzhik", "Swahili", "Sranan Tongo", "Somali", "Sinhalese","Shona", "Serbo-Croat", "Ruthenian", "Russian", "Quechua", "Pustu", "Punjabi","Persian", "Papamiento", "Oriya", "Nepali", "Ndebele", "Marathi", "Moldavian","Malaysian", "Malagasay", "Macedonian", "Laotian", "Korean", "Khmer", "Kazakh","Kannada", "Japanese", "Indonesian", "Hindi", "Hebrew", "Hausa", "Gurani","Gujurati", "Greek", "Georgian", "Fulani", "Dari", "Churash", "Chinese","Burmese", "Bulgarian", "Bengali", "Belorussian", "Bambora", "Azerbijani","Assamese", "Armenian", "Arabic", "Amharic"}; void decode_print_banner(void){	printf(PACKAGE"-"VERSION" (C) 1999 Aaron Holtzman (aholtzma@ess.engr.uvic.ca)\n");	printf("%d.%d Mode ",bsi.nfchans,bsi.lfeon);	if (bsi.langcode)	        printf("%s ", language[bsi.langcod]);	switch (syncinfo.fscod)	{		case 2:			printf("32 KHz   ");			break;		case 1:			printf("44.1 KHz ");			break;		case 0:			printf("48 KHz   ");			break;		default:			printf("Invalid sampling rate ");			break;	}	printf("%4d kbps ",syncinfo.bit_rate);	switch(bsi.bsmod)	{		case 0:			printf("Complete Main Audio Service");			break;		case 1:			printf("Music and Effects Audio Service");		case 2:			printf("Visually Impaired Audio Service");			break;		case 3:			printf("Hearing Impaired Audio Service");			break;		case 4:			printf("Dialogue Audio Service");			break;		case 5:			printf("Commentary Audio Service");			break;		case 6:			printf("Emergency Audio Service");			break;		case 7:			printf("Voice Over Audio Service");			break;	}	printf("\n");}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合色综合88| 成人免费看的视频| 日韩久久久久久| 激情图片小说一区| 久久久久久黄色| 国产寡妇亲子伦一区二区| 久久精品一区蜜桃臀影院| 国产成人精品免费在线| 日韩一区有码在线| 欧美中文一区二区三区| 美女一区二区在线观看| 欧美激情一区在线观看| 在线国产电影不卡| 麻豆freexxxx性91精品| 久久精品一区二区三区不卡| 成人91在线观看| 免费的成人av| 亚洲精品视频在线观看网站| av中文字幕亚洲| 日韩成人一区二区| 综合久久久久综合| 久久这里只有精品首页| 色婷婷激情一区二区三区| 久色婷婷小香蕉久久| 亚洲欧美区自拍先锋| 日韩美一区二区三区| 欧美无砖砖区免费| 91视频免费观看| 国产传媒久久文化传媒| 日韩高清在线观看| 伊人夜夜躁av伊人久久| 国产丝袜欧美中文另类| 欧美一区二区三区婷婷月色| 99精品视频在线免费观看| 黄色资源网久久资源365| 日韩精品亚洲一区二区三区免费| 国产精品毛片a∨一区二区三区| 精品国产一区二区三区av性色| 色噜噜久久综合| 色婷婷激情综合| 日本精品一区二区三区高清| 波多野结衣一区二区三区| 看国产成人h片视频| 蜜臀国产一区二区三区在线播放| 午夜精品久久久久影视| 午夜精品福利视频网站| 婷婷开心久久网| 日本中文字幕一区二区视频| 日韩有码一区二区三区| 日本女优在线视频一区二区| 日产欧产美韩系列久久99| 蜜桃视频一区二区三区| 国产成人精品免费看| av电影在线不卡| 欧美久久久久中文字幕| 精品免费国产一区二区三区四区| 久久综合狠狠综合| 国产精品传媒在线| 一区二区三区日韩精品| 亚洲18色成人| 欧美高清www午色夜在线视频| 高潮精品一区videoshd| 91视视频在线观看入口直接观看www| aa级大片欧美| 精品视频在线免费看| 久久婷婷色综合| 亚洲精品国产一区二区精华液 | 美女一区二区三区在线观看| 韩国毛片一区二区三区| 色94色欧美sute亚洲线路一ni| 欧美日韩不卡一区| 中文字幕一区日韩精品欧美| 青青国产91久久久久久| 一本色道**综合亚洲精品蜜桃冫| 欧美一级日韩免费不卡| 国产精品视频一二| 韩国精品久久久| 欧美日韩dvd在线观看| 亚洲情趣在线观看| 成人精品免费视频| 久久久国际精品| 日韩av中文在线观看| 在线影院国内精品| 国产精品不卡在线观看| 成人网页在线观看| 国产午夜精品美女毛片视频| 日韩1区2区3区| 91精品国产福利在线观看| 一区二区三区在线观看国产| 99久久精品免费观看| 国产欧美一区二区三区在线看蜜臀| 免费的成人av| 欧美福利视频导航| 亚洲mv在线观看| 欧美另类videos死尸| 午夜成人在线视频| 欧美日韩在线亚洲一区蜜芽| 亚洲成人黄色小说| 日韩精品一区二区三区四区| 久久精品久久精品| 久久精品一区八戒影视| 成人午夜视频网站| 国产精品精品国产色婷婷| 丁香天五香天堂综合| 中文字幕综合网| 6080日韩午夜伦伦午夜伦| 精品在线观看视频| 国产嫩草影院久久久久| 日本久久电影网| 国产一区三区三区| 亚洲日本一区二区| 日韩久久久久久| aa级大片欧美| 奇米一区二区三区| 国产精品国产三级国产aⅴ原创| 欧美视频一区二区三区在线观看 | 精品三级av在线| 成人午夜视频免费看| 五月激情综合网| 亚洲国产成人午夜在线一区| 欧美在线不卡视频| 成人免费毛片a| 国产曰批免费观看久久久| 亚洲一二三四久久| 国产女同互慰高潮91漫画| 欧美一区二区在线看| 日本高清无吗v一区| 麻豆精品久久精品色综合| 亚洲福利一二三区| 国产精品的网站| 欧美国产97人人爽人人喊| 精品理论电影在线| 欧美妇女性影城| 欧美高清性hdvideosex| 在线免费观看日韩欧美| 91丨九色丨尤物| 91在线国内视频| 97se亚洲国产综合自在线不卡| 国产精品影视在线观看| 久久99最新地址| 国产综合久久久久久鬼色| 国产在线一区二区综合免费视频| 亚洲成av人影院| 亚洲不卡在线观看| 奇米精品一区二区三区在线观看| 亚洲图片自拍偷拍| 免费精品视频最新在线| 极品尤物av久久免费看| 国产精品18久久久久久久久久久久 | 精品一区二区三区免费观看| 麻豆久久一区二区| 国产精品一品二品| av亚洲精华国产精华精| 一本大道av一区二区在线播放| 91小宝寻花一区二区三区| 欧美在线观看视频一区二区三区| 欧美精品日韩一本| 久久久国产精华| 亚洲国产综合在线| 蜜乳av一区二区| 99久久综合精品| 日韩一区二区中文字幕| 中文字幕欧美日本乱码一线二线| 一区二区三区视频在线看| 日本午夜一本久久久综合| 成人在线一区二区三区| 欧美精品黑人性xxxx| 国产精品成人免费在线| 日本不卡视频一二三区| 色视频欧美一区二区三区| 欧美成人vps| 性欧美疯狂xxxxbbbb| caoporn国产一区二区| 日韩一区二区在线免费观看| 国产精品久久久久天堂| 精品午夜久久福利影院| 欧美日韩精品欧美日韩精品一 | 欧美猛男超大videosgay| 国产精品成人免费精品自在线观看| 视频一区二区三区中文字幕| 91论坛在线播放| 国产精品久久久久久久裸模| 国产中文字幕一区| 欧美www视频| 韩国在线一区二区| 精品黑人一区二区三区久久| 艳妇臀荡乳欲伦亚洲一区| 国产欧美日韩精品在线| 1000部国产精品成人观看| 国产一区二区中文字幕| 91精品国产一区二区人妖| 一区二区三区在线视频免费| 成人国产电影网| 国产亲近乱来精品视频| 国产在线视频一区二区三区| 国产日韩欧美综合在线| 久久99在线观看| 亚洲国产成人在线| 99re8在线精品视频免费播放| 久久精品水蜜桃av综合天堂|