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

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

?? encode.c

?? mp3解碼程序vc++環境下運行
?? C
?? 第 1 頁 / 共 3 頁
字號:
 #include <stdio.h>#include "global.h"#include "common.h"#include "encoder.h"#include "enwindow.h"#include "video.h"extern unsigned _stklen = 16384;extern FILE *hOutput;extern unsigned long length, last_sample;extern int channels; void filter(short *work_buffer, unsigned int length, unsigned int stereo, unsigned int mult);/* 低通濾波程序*/void low_pass( buffer, length, stereo, mult)short *buffer;unsigned int length, stereo, mult;{	short work_buffer[PCM_BUFFER + 8];	unsigned int i;    static char init = TRUE;	short pass1[8], pass2[8], pass3[8], pass4[8];    if (init)	{        for(i=0; i<8; i++)		{			work_buffer[i]=0; 			pass1[i]=pass2[i]=pass3[i]=pass4[i]=0;		}        init = FALSE;    }		for(i=0; i<length; i++)		work_buffer[i+8] = buffer[i]; // 將采樣復制到工作緩存		for(i=0; i<8; i++)		work_buffer[i] = pass1[i];		for(i=0; i<8; i++)		pass1[i] = buffer[length - 8 + i];	filter( work_buffer, length, stereo, mult); //采用1階濾波器	for(i=0; i<8; i++)		work_buffer[i] = pass2[i];	for(i=0; i<8; i++)		pass2[i] = buffer[length - 8 + i];	filter( work_buffer, length, stereo, mult); 	for(i=0; i<8; i++)		work_buffer[i] = pass3[i];	for(i=0; i<8; i++)		pass3[i] = buffer[length - 8 + i];	filter( work_buffer, length, stereo, mult); 	for(i=0; i<8; i++)		work_buffer[i] = pass4[i];	for(i=0; i<8; i++)		pass4[i] = buffer[length - 8 + i];	filter( work_buffer, length, stereo, mult); 	for(i=0; i<length; i++)		buffer[i] = work_buffer [i+8];}void filter(work_buffer, length, stereo, mult)short *work_buffer;unsigned int length, stereo, mult;{	short temp_buffer[PCM_BUFFER];	unsigned int i;	if(stereo)	{		if(mult == 2)		{			//立體聲22050			for(i=0; i<length; i++)				temp_buffer[i] = (short)(0.612626*work_buffer[i+8] +								 0.375311*work_buffer[i+6]);		}		else		{			//立體聲11025			for(i=0; i<length; i++)				temp_buffer[i] = (short)(0.516851*work_buffer[i+8] +								 0.267135*work_buffer[i+6] +								 0.138069*work_buffer[i+4] +								 0.071361*work_buffer[i+2]);		}	}	else // 單聲道	{		if(mult == 2)		{			//單聲道22050			for (i=0; i<length; i++)				temp_buffer[i] = (short)(0.612626*work_buffer[i+8] +								 0.375311*work_buffer[i+7]);		}		else		{			//單聲道11025			for (i=0; i<length; i++)				temp_buffer[i] = (short)(0.516851*work_buffer[i+8] +								 0.267135*work_buffer[i+7] +								 0.138069*work_buffer[i+6] +								 0.071361*work_buffer[i+5]);		}	}	for(i=0; i<length; i++)		work_buffer[i+8] = temp_buffer[i];}/************************************************************************//*/* read_samples()/*/* 功能: 從avi文件中讀取PCM采樣到緩存/*/* 限制條件: 僅適用于未壓縮的在11.025, 22.05, and 44.1Khz采樣率下的
/*            8 和 16 bit音頻 at/*            /*/* 結構描述:/* 從#pAudioStream#制定的avi文件中讀取#samples_read#個片斷。如果為8bit則
/*   將其擴展到16bit。如果采樣率為11.025或22.05Khz,則將采樣復制并進行低通
/*   濾波。最后返回讀取的采樣數。
  
 /************************************************************************/unsigned long read_samples(sample_buffer, num_samples, frame_size)short sample_buffer[PCM_BUFFER];unsigned long num_samples, frame_size;{    unsigned long samples_read, written, nsamples;    static unsigned long samples_to_read, avi_samples;    static char init = TRUE;	int result;	unsigned int i;	short *dest, *source;	unsigned char *csource;    int file;    long file_start=0;    if (init)	{        samples_to_read = num_samples;        init = FALSE;    }	if(bytes_processed == num_samples)	{		printf("\nInternal error, bytes_processed = num_samples!!!\n");		exit(-99); 	}	    if (samples_to_read >= frame_size)        samples_read = frame_size;    else        samples_read = samples_to_read;	if (channels == 2)		avi_samples = samples_read/2; 	else		avi_samples = samples_read;	if(pWavFormat.nSamplesPerSec == 22050)		avi_samples = avi_samples/2; 	if(pWavFormat.nSamplesPerSec == 11025)		avi_samples = avi_samples/4;     for(file=0;file<numAviFiles;file++)    {        if (last_sample < nextFileSamples[file])            break;        file_start = nextFileSamples[file];    }    result=-1;     if (avi_samples==0)        nsamples=0;    else if ((last_sample + avi_samples) <= nextFileSamples[file])        result = AVIStreamRead(pAudioStreams[file],       last_sample-file_start, avi_samples,            sample_buffer,                   (PCM_BUFFER)*sizeof(short), &written, &nsamples);    else    {        long want_samples1 = nextFileSamples[file] - last_sample;        long want_samples2 = avi_samples - want_samples1;        long got_samples1, got_samples2;        result = AVIStreamRead(pAudioStreams[file],     last_sample-file_start, want_samples1,          sample_buffer,                  (PCM_BUFFER)*sizeof(short), &written, &got_samples1);        result = AVIStreamRead(pAudioStreams[file + 1], 0,                      want_samples2,          &sample_buffer[want_samples1],  (PCM_BUFFER)*sizeof(short), &written, &got_samples2);        nsamples = got_samples1+got_samples2;    }        last_sample = last_sample + nsamples;    if (avi_samples != nsamples)	{		if(!fake_bad_frames)		{			fprintf(stderr, "\nHit end of audio data, audio length does not match video!\n");			fprintf(stderr, "avi file may be corrupt, try -e option.\n");			exit(23);		}		else		{			csource = (unsigned char*)sample_buffer;			for(i = nsamples; i < avi_samples; i++)			{				bad_audio_count++;				if(pWavFormat.wBitsPerSample == 8)				{					*csource++ = 128;					i++;				}				else				{					*csource++ = 0;					*csource++ = 0;				}			}		}	}    if(samples_to_read&&!result)    {      samples_to_read -= samples_read;	    if(pWavFormat.wBitsPerSample == 8)	    {		    dest = sample_buffer + written - 1;		    csource = ((unsigned char*)(sample_buffer)) + written - 1;		    for(i = 0; i < written; i++)			    *dest-- = (*csource-- - 128) << 8;		    written = written * 2;	    }	    if((pWavFormat.nSamplesPerSec == 22050)&&(channels == 1))	    {		    dest = sample_buffer + PCM_BUFFER - 1;		    source = sample_buffer + PCM_BUFFER/2 - 1;		    for(i = 0; i < PCM_BUFFER/2; i++)		    {			    *dest-- = *source;			    *dest-- = *source--;		    }		    low_pass(sample_buffer, samples_read, 0, 2);	    }	    if((pWavFormat.nSamplesPerSec == 22050)&&(channels == 2))	    {		    dest = sample_buffer + PCM_BUFFER - 1;		    source = sample_buffer + PCM_BUFFER/2 - 1;		    for(i = 0; i < PCM_BUFFER/4; i++)		    {			    *dest = *source;			    *(dest - 2) = *source--;			    dest--;			    *dest = *source;			    *(dest - 2) = *source--;			    dest = dest - 3;		    }		    low_pass(sample_buffer, samples_read, 1, 2);	    }	    if((pWavFormat.nSamplesPerSec == 11025)&&(channels == 1))	    {		    dest = sample_buffer + PCM_BUFFER - 1;		    source = sample_buffer + PCM_BUFFER/4 - 1;		    for(i = 0; i < PCM_BUFFER/4; i++)		    {			    *dest-- = *source;			    *dest-- = *source;			    *dest-- = *source;			    *dest-- = *source--;		    }		    low_pass(sample_buffer, samples_read, 0, 4);	    }	    if((pWavFormat.nSamplesPerSec == 11025)&&(channels == 2))	    {		    dest = sample_buffer + PCM_BUFFER - 1;		    source = sample_buffer + PCM_BUFFER/4 - 1;		    for(i = 0; i < PCM_BUFFER/8; i++)		    {			    *dest = *source;			    *(dest - 2) = *source;			    *(dest - 4) = *source;			    *(dest - 6) = *source--;			    dest--;			    *dest = *source;			    *(dest - 2) = *source;			    *(dest - 4) = *source;			    *(dest - 6) = *source--;			    dest = dest - 7;		    }		    low_pass(sample_buffer, samples_read, 1, 4);	    }        if (samples_read < frame_size && samples_read > 0)	    {            for (; samples_read < frame_size; sample_buffer[samples_read++] = 0);            samples_to_read = 0;        }	    bytes_processed = samples_to_read;        return(samples_read);    }    else    return(0);  }/************************************************************************//*/* get_audio()/*/* 功能:  從一個文件中讀取一幀音頻數據到緩存區/*        將數據排序以備后面的處理,并將其分成左右聲道/*/*/************************************************************************/ unsigned long get_audio(buffer, num_samples, stereo, lay)short buffer[2][1152];unsigned long num_samples;int stereo, lay;{   int j;   short insamp[2304];   unsigned long samples_read;    if (lay == 1)   {      if(stereo == 2)	  { /* layer 1, stereo */         samples_read = read_samples(insamp, num_samples,                                     (unsigned long) 768);         for(j=0;j<448;j++)		 {            if(j<64)			{               buffer[0][j] = buffer[0][j+384];               buffer[1][j] = buffer[1][j+384];            }            else			{               buffer[0][j] = insamp[2*j-128];               buffer[1][j] = insamp[2*j-127];            }         }      }      else	  { /* layer 1, mono */         samples_read = read_samples(insamp, num_samples,                                     (unsigned long) 384);         for(j=0;j<448;j++)		 {            if(j<64)			{               buffer[0][j] = buffer[0][j+384];               buffer[1][j] = 0;            }            else			{               buffer[0][j] = insamp[j-64];               buffer[1][j] = 0;            }         }      }   }   else {      if(stereo == 2)	  { /* layer 2 (or 3), stereo */         samples_read = read_samples(insamp, num_samples,                                     (unsigned long) 2304);         for(j=0;j<1152;j++)		 {            buffer[0][j] = insamp[2*j];            buffer[1][j] = insamp[2*j+1];         }      }      else	  { /* layer 2 (or 3), mono */         samples_read = read_samples(insamp, num_samples,                                     (unsigned long) 1152);         for(j=0;j<1152;j++)		 {            buffer[0][j] = insamp[j];            buffer[1][j] = 0;         }      }   }   return(samples_read);} /************************************************************************//*/* read_ana_window()/*/* 功能:  將編碼器窗文件 "enwindow" 讀入數組#ana_win#/*/*/************************************************************************/ void read_ana_window(ana_win)double ana_win[HAN_SIZE];{    int i;	for(i=0; i<512; i++)	{		ana_win[i] = enwindow[i];	}}/************************************************************************//*/* window_subband()/*/* 功能:  對PCM采樣重疊窗口/*/************************************************************************/ void window_subband(buffer, z, k)short **buffer;double z[HAN_SIZE];int k;{    typedef double XX[2][HAN_SIZE];    static XX *x;    int i, j;    static off[2] = {0,0};    static char init = 0;    static double *c;    if (!init)	{        c = (double *) mem_alloc(sizeof(double) * HAN_SIZE, "window");        read_ana_window(c);        x = (XX *) mem_alloc(sizeof(XX),"x");        for (i=0;i<2;i++)            for (j=0;j<HAN_SIZE;j++)                (*x)[i][j] = 0;        init = 1;    }    for (i=0;i<32;i++)		(*x)[k][31-i+off[k]] = (double) *(*buffer)++/SCALE;    for (i=0;i<HAN_SIZE;i++)		z[i] = (*x)[k][(i+off[k])&HAN_SIZE-1] * c[i];    off[k] += 480;                  off[k] &= HAN_SIZE-1;} /************************************************************************//*/* create_ana_filter()/*/* 功能:  計算分解濾波器組的系數/* 
/* 結構描述:/* 計算分解濾波器組的系數并四舍五入到小數點后第9位/* 系數存儲在#filter#中。/*/************************************************************************/ void create_ana_filter(filter)double filter[SBLIMIT][64];{   register int i,k;    for (i=0; i<32; i++)      for (k=0; k<64; k++)	  {          if ((filter[i][k] = 1e9*cos((double)((2*i+1)*(16-k)*PI64))) >= 0)             modf(filter[i][k]+0.5, &filter[i][k]);          else             modf(filter[i][k]-0.5, &filter[i][k]);          filter[i][k] *= 1e-9;	  }}/************************************************************************//*/* filter_subband()/*/* 功能:  計算分解濾波組系數/*/* 結構解釋:/*     加窗的采樣值#z#通過由矩陣#m#定義的數字濾波器,產生子帶采樣值#s#。這
是通過從加窗的樣本中取樣,并和濾波器的矩陣相乘得到的32位子帶采樣值。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人激情动漫在线观看| 欧美日韩国产高清一区二区三区| 久久精品国产999大香线蕉| 国产精品欧美经典| 欧美一区二区三区电影| 在线免费不卡视频| eeuss鲁片一区二区三区| 天天色 色综合| 午夜电影网一区| 国模一区二区三区白浆| 色屁屁一区二区| 国产色一区二区| 日本中文字幕一区二区有限公司| 99久久精品情趣| 国产欧美综合色| 另类综合日韩欧美亚洲| 91精品国产麻豆国产自产在线 | 亚洲午夜激情网页| 丁香啪啪综合成人亚洲小说| 2020国产精品久久精品美国| 天天av天天翘天天综合网 | 久久久久久久久久久久久久久99| 一区二区三区美女| 国产成人av自拍| 久久久久久久综合| 国产一区二区三区四| 制服丝袜成人动漫| 天天操天天色综合| 91超碰这里只有精品国产| 亚洲va国产天堂va久久en| 精品国产乱码久久久久久图片| 亚洲综合丝袜美腿| 欧美性猛片xxxx免费看久爱 | 精品国产一区二区亚洲人成毛片| 午夜亚洲国产au精品一区二区| 欧美伊人久久久久久午夜久久久久| 一区二区三区在线视频观看58| 色综合久久中文字幕综合网| 一区二区三区高清不卡| 欧美日韩精品福利| 日本伊人色综合网| 久久综合九色综合欧美亚洲| 精品亚洲porn| 国产精品久久久久影院色老大| 99在线热播精品免费| 国产精品三级久久久久三级| 97精品视频在线观看自产线路二| 亚洲国产精品激情在线观看| 91在线免费视频观看| 亚洲一区二区三区中文字幕在线| 欧美日产在线观看| 韩国一区二区三区| 亚洲欧洲精品天堂一级| 在线日韩av片| 麻豆免费看一区二区三区| 日韩你懂的在线播放| 国产成人免费视频网站| 一区二区三区日韩| 日韩视频在线永久播放| 成人免费看的视频| 亚洲黄色尤物视频| 精品国内二区三区| 色悠久久久久综合欧美99| 日韩二区三区四区| 中文成人综合网| 制服丝袜日韩国产| 成人精品一区二区三区四区| 亚洲va欧美va天堂v国产综合| 久久亚区不卡日本| 91原创在线视频| 韩国女主播成人在线| 亚洲精品国产精品乱码不99| 欧美一区二区视频免费观看| av资源网一区| 精品一区免费av| 一区二区三区在线观看网站| 精品国产乱码91久久久久久网站| 91麻豆产精品久久久久久| 免费视频最近日韩| 亚洲一区二区三区四区中文字幕| 久久久久99精品一区| 欧美年轻男男videosbes| www.久久精品| 激情另类小说区图片区视频区| 亚洲综合精品自拍| 亚洲欧洲成人av每日更新| www国产亚洲精品久久麻豆| 在线观看亚洲a| 97aⅴ精品视频一二三区| 国产福利一区二区三区视频在线 | 久久久久久影视| 欧美一级一级性生活免费录像| 91丨九色丨尤物| 激情六月婷婷久久| 日本aⅴ免费视频一区二区三区| 亚洲愉拍自拍另类高清精品| 中文字幕的久久| 久久久久国产精品免费免费搜索| 日韩视频免费观看高清完整版 | 久久久久久影视| 日韩一区二区在线观看| 91激情五月电影| 96av麻豆蜜桃一区二区| 高清免费成人av| 狠狠色狠狠色合久久伊人| 天堂成人免费av电影一区| 亚洲高清视频在线| 亚洲r级在线视频| 日韩欧美综合一区| 自拍偷拍国产精品| 欧美精品久久久久久久多人混战| av激情综合网| 不卡免费追剧大全电视剧网站| 国产在线播放一区三区四| 国内不卡的二区三区中文字幕 | 日韩视频免费观看高清完整版在线观看 | 欧美色精品在线视频| 欧美亚洲愉拍一区二区| 欧美伊人久久大香线蕉综合69| 在线观看成人免费视频| 欧洲一区在线电影| 欧美精品视频www在线观看| 在线不卡的av| 日韩精品在线网站| 久久久电影一区二区三区| 欧美韩国日本不卡| 成人免费一区二区三区在线观看 | 欧美三片在线视频观看| 欧美亚洲禁片免费| 91精品国产综合久久久久久久 | 91免费版在线| 91久久线看在观草草青青| 欧美午夜精品免费| 欧美一级xxx| 国产亚洲美州欧州综合国| 亚洲日本丝袜连裤袜办公室| 亚洲综合色网站| 久久精品国产精品亚洲综合| 国产一区二区三区在线观看免费| 国产精品77777| 在线免费观看日本欧美| 欧美一区二区精品久久911| 国产午夜亚洲精品不卡| 亚洲精品欧美激情| 日韩av一级电影| 国产成人免费在线视频| 91久久久免费一区二区| 精品国产乱码久久久久久影片| 国产一区二区美女| 91麻豆精品国产91久久久久久久久| 中文字幕精品三区| 韩国av一区二区三区| eeuss鲁一区二区三区| 久久色视频免费观看| 国产日韩欧美a| 五月天中文字幕一区二区| 成人午夜大片免费观看| 色哟哟欧美精品| 久久午夜老司机| 美女网站视频久久| 欧美久久一二区| 国产日韩欧美麻豆| 午夜激情久久久| 91在线看国产| 欧美成人a在线| 亚洲精品日韩专区silk| 精品一区二区三区在线观看国产| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 欧美精品久久久久久久多人混战| 欧美国产综合色视频| 日韩va欧美va亚洲va久久| 成人黄色大片在线观看| 欧美一级高清片在线观看| 亚洲一区视频在线| 国产精品99久久久久久宅男| 欧美二区乱c少妇| 亚洲精品日产精品乱码不卡| 高清beeg欧美| 国产日韩在线不卡| 国内偷窥港台综合视频在线播放| 3atv一区二区三区| 亚洲国产精品麻豆| 在线观看精品一区| 亚洲日本乱码在线观看| 国v精品久久久网| 久久日韩粉嫩一区二区三区| 蜜桃传媒麻豆第一区在线观看| 欧洲日韩一区二区三区| 亚洲三级在线播放| 91色porny在线视频| 中文字幕 久热精品 视频在线| 极品少妇xxxx精品少妇偷拍| 日韩午夜精品视频| 蜜桃一区二区三区四区| 日韩欧美专区在线| 另类小说图片综合网| 久久中文娱乐网| 国产乱码一区二区三区| 国产视频一区二区在线| 成人精品视频一区|