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

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

?? output_wav.c

?? ac3的解碼程序
?? C
字號:
/* * *  output_wav.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.  * *  This file is based on output_linux.c by Aaron Holtzman. *  All .wav modifications were done by Jorgen Lundman <lundman@lundman.net> *  Any .wav bugs and errors should be reported to him. * * */#ifdef HAVE_CONFIG_H#  include <config.h>#endif#include <stdio.h>#include <errno.h>#include <string.h>#include <unistd.h>#include <fcntl.h>#include "ac3.h"#include "decode.h"#include "debug.h"#include "output.h"#include "downmix.h"#include "ring_buffer.h"#include "wav.h"#define BUFFER_SIZE 1024 static char output_file[] = "output.wav";static int fd;static struct wave_header wave;/* * open the file for writing to */int output_open(int bits, int rate, int channels){  /*  int tmp;*/    /*   * Open the output file   */  fd=open(output_file,O_WRONLY | O_TRUNC | O_CREAT, 0644);   if(fd < 0)     {      dprintf("%s: Opening audio output %s\n",	      strerror(errno), output_file);      goto ERR;    }  dprintf("Opened audio output \"%s\"\n",output_file);  /* Write out a ZEROD wave header first */  memset(&wave, 0, sizeof(wave));  /* Store information */  wave.common.wChannels = channels;  wave.common.wBitsPerSample = bits;  wave.common.dwSamplesPerSec = rate;  if (write(fd, &wave, sizeof(wave)) != sizeof(wave)) {    dprintf("failed to write wav-header: %s\n", strerror(errno));    goto ERR;  }  return 1;   ERR:  if(fd >= 0) { close(fd); }  return 0;}/* * play the sample to the already opened file descriptor */void output_play(bsi_t *bsi,stream_samples_t *samples){  int i;	float *left,*right;	float norm = 1.0;	float left_tmp = 0.0;	float right_tmp = 0.0;	sint_16 *out_buf;    if(fd < 0)    return;  	//Downmix if necessary 	downmix(bsi,samples);	//Determine a normalization constant if the signal exceeds 	//100% digital [-1.0,1.0]	//	//perhaps use the dynamic range info to do this instead	for(i=0; i< 256;i++)	{    left_tmp = samples->channel[0][i];    right_tmp = samples->channel[1][i];		if(left_tmp > norm)			norm = left_tmp;		if(left_tmp < -norm)			norm = -left_tmp;		if(right_tmp > norm)			norm = right_tmp;		if(right_tmp < -norm)			norm = -right_tmp; 	}	norm = 32000.0/norm;	/* Take the floating point audio data and convert it into	 * 16 bit signed PCM data */	left = samples->channel[0];	right = samples->channel[1];	for(i=0; i < 256; i++)	{		out_buf[i * 2 ]    = (sint_16) (*left++  * norm);		out_buf[i * 2 + 1] = (sint_16) (*right++ * norm);	}	write(fd, out_buf,BUFFER_SIZE);}voidoutput_close(void){  off_t offset;  /* Find how long our file is in total, including header */  offset = lseek(fd, 0, SEEK_CUR);  if (offset < 0) 	{    dprintf("lseek failed - wav-header is corrupt\n");    goto ERR;  }  /* Rewind file */  if (lseek(fd, 0, SEEK_SET) < 0) 	{    dprintf("rewind failed - wav-header is corrupt\n");    goto ERR;  }  /* Fill out our wav-header with some information. */  offset -= 8;  strcpy(wave.riff.id, "RIFF");  wave.riff.len = offset + 24;  strcpy(wave.riff.wave_id, "WAVE");  offset -= 4;  offset -= 8;  strcpy(wave.format.id, "fmt ");  wave.format.len = sizeof(struct common_struct);  wave.common.wFormatTag = WAVE_FORMAT_PCM;  wave.common.dwAvgBytesPerSec =     wave.common.wChannels * wave.common.dwSamplesPerSec *    (wave.common.wBitsPerSample >> 4);  wave.common.wBlockAlign = wave.common.wChannels *     (wave.common.wBitsPerSample >> 4);  strcpy(wave.data.id, "data");  offset -= sizeof(struct common_struct);  wave.data.len = offset;  offset -= 8;  strcpy(wave.riffdata.id, "RIFF");  wave.riffdata.len = offset;  strcpy(wave.riffdata.wave_id, "WAVE");  offset -= 4;  offset -= 8;  strcpy(wave.dataformat.id, "DATA");  wave.dataformat.len = offset;  if (write(fd, &wave, sizeof(wave)) < sizeof(wave)) 	{    dprintf("wav-header write failed -- file is corrupt\n");    goto ERR;  } ERR:  close(fd);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新国产成人在线观看| 丝袜诱惑亚洲看片| 91成人网在线| 亚洲一区二区欧美| 欧美一区二区三区电影| 九一九一国产精品| 国产日韩精品一区二区浪潮av | 国产成人8x视频一区二区| 国产精品网站在线播放| 51精品久久久久久久蜜臀| 国产精品卡一卡二| 色妹子一区二区| 亚洲国产sm捆绑调教视频 | 樱花草国产18久久久久| 欧美日韩一区小说| 美女一区二区在线观看| 国产日韩影视精品| 色婷婷综合五月| 奇米影视一区二区三区| 欧美精品一区二区三区蜜桃视频| 国产成人在线视频网址| 日韩一区在线看| 欧美日韩成人综合| 久久99久久精品欧美| 国产精品无人区| 欧美日韩国产中文| 久久超碰97中文字幕| 国产欧美一区二区精品久导航| 91免费观看国产| 丝瓜av网站精品一区二区| 国产情人综合久久777777| 色香蕉成人二区免费| 男女激情视频一区| 中文字幕第一区| 欧美日韩亚洲综合| 国产精品一区二区黑丝| 一区二区三区精密机械公司| 日韩一区二区三区免费看 | 久久久三级国产网站| 色一区在线观看| 九九精品一区二区| 亚洲免费观看高清完整| 精品剧情v国产在线观看在线| 成人黄色777网| 日本vs亚洲vs韩国一区三区| 中文字幕av一区二区三区| 91精品黄色片免费大全| 99精品国产一区二区三区不卡| 男女激情视频一区| 亚洲三级在线看| 久久蜜桃av一区二区天堂| 欧美色图免费看| 国产丶欧美丶日本不卡视频| 日韩一区欧美二区| 亚洲欧洲www| 精品国产乱码久久久久久浪潮| 在线亚洲一区二区| 国产成人av网站| 午夜精品影院在线观看| 欧美国产激情一区二区三区蜜月| 538在线一区二区精品国产| 成人av资源站| 美女任你摸久久| 亚洲综合在线电影| 久久久久久亚洲综合| 91精品久久久久久久99蜜桃| 色婷婷狠狠综合| 国产成人福利片| 久久99精品久久久久| 婷婷六月综合网| 亚洲日本一区二区三区| 国产区在线观看成人精品| 日韩精品一区二区三区蜜臀| 日本一区二区成人在线| caoporn国产一区二区| 九色综合狠狠综合久久| 香港成人在线视频| 亚洲男帅同性gay1069| 国产精品视频麻豆| 欧美成人高清电影在线| 制服.丝袜.亚洲.中文.综合| 91视视频在线观看入口直接观看www | 粉嫩av一区二区三区粉嫩| 蜜臀a∨国产成人精品| 亚洲成人综合网站| 一区二区三区在线播| 国产精品久久久久影院亚瑟| 久久久久国产成人精品亚洲午夜| 91精品国产91久久久久久一区二区| 欧美性生交片4| 色综合天天综合网国产成人综合天 | 免费成人在线观看视频| 亚洲成人综合在线| 亚洲愉拍自拍另类高清精品| 中文字幕亚洲视频| 国产精品久久久久久亚洲伦| 国产肉丝袜一区二区| 久久久久久久久久久黄色| 精品国产一区二区三区av性色| 欧美电影一区二区三区| 欧美日韩高清影院| 欧美日韩国产片| 欧美日韩欧美一区二区| 欧美日韩另类国产亚洲欧美一级| 在线观看精品一区| 欧美视频一区二区三区四区| 欧洲精品在线观看| 色偷偷一区二区三区| 在线视频欧美精品| 欧美午夜精品一区二区蜜桃| 欧美日韩中文一区| 欧美日韩免费一区二区三区视频| 欧美日韩在线免费视频| 欧美精品一二三四| 日韩一卡二卡三卡国产欧美| 日韩欧美电影一区| 精品国产伦一区二区三区免费| 欧美精品一区男女天堂| 久久免费美女视频| 国产欧美一区二区精品性色| 国产精品免费视频网站| 国产精品国模大尺度视频| 亚洲视频精选在线| 亚洲一卡二卡三卡四卡| 亚洲国产精品影院| 日韩精品一二三区| 狂野欧美性猛交blacked| 激情综合网天天干| 国产盗摄一区二区三区| 91在线视频官网| 欧美亚洲综合另类| 国产精品久久久久国产精品日日 | 国内精品嫩模私拍在线| 奇米影视一区二区三区| 久久99久久精品欧美| 国产美女一区二区三区| 成人午夜视频免费看| av成人免费在线| 91亚洲午夜精品久久久久久| 欧美午夜电影网| 日韩欧美在线一区二区三区| 久久综合999| 国产精品不卡一区| 国产精品一区在线观看乱码| 亚洲成在人线在线播放| 美女一区二区三区在线观看| 韩国精品免费视频| 国产成人精品在线看| 97久久精品人人澡人人爽| 欧美日韩你懂的| 精品国产区一区| 国产中文一区二区三区| 奇米一区二区三区| 国产精品一色哟哟哟| 色综合久久66| 日韩午夜在线观看视频| 国产精品欧美综合在线| 一级女性全黄久久生活片免费| 日本成人在线网站| 国产成人亚洲精品狼色在线 | 国产精品自拍在线| 色婷婷av一区| 精品久久久网站| 亚洲卡通动漫在线| 午夜a成v人精品| 久久丁香综合五月国产三级网站| 成人av在线网站| 欧美一区二区三区在| 中文字幕乱码久久午夜不卡| 亚洲成人av一区二区| 国产精品影视网| 欧美三级三级三级| 国产欧美日韩在线看| 性感美女极品91精品| 丁香婷婷深情五月亚洲| 欧美午夜影院一区| 久久精品夜色噜噜亚洲aⅴ| 性做久久久久久免费观看| 成人一区二区三区| 欧美一级高清大全免费观看| 综合久久国产九一剧情麻豆| 韩国精品久久久| 欧美麻豆精品久久久久久| 国产精品国产自产拍高清av| 蓝色福利精品导航| 欧美丝袜丝交足nylons图片| 中文字幕第一页久久| 久久成人精品无人区| 在线视频国产一区| 中文字幕免费在线观看视频一区| 日韩福利视频网| 色婷婷激情久久| 中文字幕乱码久久午夜不卡| 精品在线观看免费| 欧美喷水一区二区| 一区二区三区自拍| av亚洲精华国产精华精| 26uuu亚洲综合色| 日本伊人色综合网| 91久久精品午夜一区二区|