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

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

?? avi2mp2.c

?? mp3解碼程序vc++環境下運行
?? C
字號:
/* avi2mp2.c - 
  音頻編碼文件*/


#include <dos.h>
#include "common.h"
#include "encoder.h"
#include "global.h"
#include "video.h"

/* 定義全局變量 */

Bit_stream_struc   bs;
char             programName[] = "avi2mpg1";
int	channels;

FILE *hOutput;
unsigned long length, last_sample = 0;





/************************************************************************
/*
/* set_parms
/*
/* 功能:  根據命令行的輸入為編碼設置參數。如果命令行中沒有指定,則使用缺省參數
/*
/************************************************************************/
 
void set_parms(fr_ps, num_samples, tempfile)
frame_params  *fr_ps;
unsigned long *num_samples;
char * tempfile;
{
   layer *info = fr_ps->header;
   int   err = 0, i = 0;
   int   file;
   
   info->lay = audio_layer_parm;
 
   if(pWavFormat.nChannels == 1)
   {
	    info->mode = MPG_MD_MONO;
		info->mode_ext = 0;
   }
   else
   {
		if(joint_stereo_parm == 1)
		{
			info->mode = MPG_MD_JOINT_STEREO;
		}
		else
		{
			info->mode = MPG_MD_STEREO;
			info->mode_ext = 0;
		}
   }

   if((info->sampling_frequency = SmpFrqIndex((long)(1000*DFLT_SFQ))) < 0)
   {
      fprintf(stderr, "%s: bad sfrq default %.2f\n", programName, DFLT_SFQ);
      abort();
   }
   if((info->bitrate_index = BitrateIndex(info->lay, audio_bitrate_parm)) < 0)
   {
      fprintf(stderr, "%s: bad default bitrate %u\n", programName, DFLT_BRT);
      abort();
   }
 
 switch(DFLT_EMP)
   {
      case 'n': info->emphasis = 0; break;
      case '5': info->emphasis = 1; break;
      case 'c': info->emphasis = 3; break;
      default: 
	 fprintf(stderr, "%s: Bad emph dflt %c\n", programName, DFLT_EMP);
	 abort();
   }
 
   info->copyright = 0; info->original = 0; info->error_protection = FALSE;
 
	length = sizeof(pWavFormat);

	channels = pWavFormat.nChannels; // store for later

	if ((pWavFormat.nSamplesPerSec != 11025)&&(pWavFormat.nSamplesPerSec != 22050)&&(pWavFormat.nSamplesPerSec != 44100))
	{
		fprintf(stderr, "Samples per Sec = %i\n", pWavFormat.nSamplesPerSec);
		fprintf(stderr, "input avi audio sample rate must = 11.025, 22.05, or 44.1 kHz!");
		exit(4);
	}

	if ((pWavFormat.wBitsPerSample != 8)&&(pWavFormat.wBitsPerSample != 16))
	{
		fprintf(stderr, "Bits per Sample = %i\n", pWavFormat.wBitsPerSample);
		fprintf(stderr, "input avi audio must be 8 or 16 bit!");
		exit(5);
	}

    
   open_bit_stream_w(&bs, tempfile, BUFFER_SIZE);

   *num_samples=0;
   for(file=0;file<numAviFiles;file++)
   {
      if(pWavFormat.nChannels == 2)
	     *num_samples += pAudioStreamInfo[file].dwLength * 2;
      else
	     *num_samples += pAudioStreamInfo[file].dwLength;
   }

   if(pWavFormat.nSamplesPerSec == 22050)
	   *num_samples = *num_samples * 2;

   if(pWavFormat.nSamplesPerSec == 11025)
	   *num_samples = *num_samples * 4;

}

 
/************************************************************************
/*
/* avi2mp2
/*
/* 功能 :  MPEG I編碼器,支持層1和2以及心理聲學模型2 (AT&T)
/*

/************************************************************************/

avi2mp2(tempfile)
char * tempfile;
{
typedef double SBS[2][3][SCALE_BLOCK][SBLIMIT];
    SBS        *sb_sample;
typedef double JSBS[3][SCALE_BLOCK][SBLIMIT];
    JSBS        *j_sample;
typedef double INN[2][HAN_SIZE];
    INN          *win_que;
typedef unsigned int SUB[2][3][SCALE_BLOCK][SBLIMIT];
    SUB         *subband;
 
    frame_params fr_ps;
    layer info;
    short **win_buf;
static short buffer[2][1152];
static unsigned int bit_alloc[2][SBLIMIT], scfsi[2][SBLIMIT];
static unsigned int scalar[2][3][SBLIMIT], j_scale[3][SBLIMIT];
static double ltmin[2][SBLIMIT], lgmin[2][SBLIMIT], max_sc[2][SBLIMIT];
    FLOAT snr32[32];
    short sam[2][1056];
    int whole_SpF, extra_slot = 0;
    double avg_slots_per_frame, frac_SpF, slot_lag;
    int stereo, error_protection;
static unsigned int crc;
    int i, j, k, adb;
    unsigned long bitsPerSlot, samplesPerFrame, frameNum = 0;
    unsigned long frameBits, sentBits = 0;
    unsigned long num_samples;

   

    sb_sample = (SBS *) mem_alloc(sizeof(SBS), "sb_sample");
    j_sample = (JSBS *) mem_alloc(sizeof(JSBS), "j_sample");
    win_que = (INN *) mem_alloc(sizeof(INN), "Win_que");
    subband = (SUB *) mem_alloc(sizeof(SUB),"subband");
    win_buf = (short **) mem_alloc(sizeof(short *)*2, "win_buf");
 
    memset((char *) buffer, 0, sizeof(buffer));
    memset((char *) bit_alloc, 0, sizeof(bit_alloc));
    memset((char *) scalar, 0, sizeof(scalar));
    memset((char *) j_scale, 0, sizeof(j_scale));
    memset((char *) scfsi, 0, sizeof(scfsi));
    memset((char *) ltmin, 0, sizeof(ltmin));
    memset((char *) lgmin, 0, sizeof(lgmin));
    memset((char *) max_sc, 0, sizeof(max_sc));
    memset((char *) snr32, 0, sizeof(snr32));
    memset((char *) sam, 0, sizeof(sam));

    fr_ps.header = &info;
    fr_ps.tab_num = -1;             
    fr_ps.alloc = NULL;
    info.version = MPEG_AUDIO_ID;

    set_parms(&fr_ps, &num_samples, tempfile);

	hdr_to_frps(&fr_ps);
    stereo = fr_ps.stereo;
    error_protection = info.error_protection;
 
    if (info.lay == 1) { bitsPerSlot = 32; samplesPerFrame = 384;  }
    else               { bitsPerSlot = 8;  samplesPerFrame = 1152; }
    
    avg_slots_per_frame = ((double)samplesPerFrame /
			   s_freq[info.sampling_frequency]) *
			  ((double)bitrate[info.lay-1][info.bitrate_index] /
			   (double)bitsPerSlot);
    whole_SpF = (int) avg_slots_per_frame;
    frac_SpF  = avg_slots_per_frame - (double)whole_SpF;
    slot_lag  = -frac_SpF;
    /
 
    if (frac_SpF != 0)
	   {}
    else
		info.padding = 0;
 
    while (get_audio(buffer, num_samples, stereo, info.lay) > 0) {

		fprintf(stderr, "\r%5.1f%% complete", ((float)(num_samples - bytes_processed)/(float)num_samples)*100.0);

       win_buf[0] = &buffer[0][0];
       win_buf[1] = &buffer[1][0];
       if (frac_SpF != 0) {
	  if (slot_lag > (frac_SpF-1.0) ) {
	     slot_lag -= frac_SpF;
	     extra_slot = 0;
	     info.padding = 0;
	  }
	  else {
	     extra_slot = 1;
	     info.padding = 1;
	     slot_lag += (1-frac_SpF);
	  }
       }
       adb = (whole_SpF+extra_slot) * bitsPerSlot;

       switch (info.lay)
	   {
 
/***************************** Layer I **********************************/
 
	   case 1 :
	      for (j=0;j<SCALE_BLOCK;j++)
	         for (k=0;k<stereo;k++)
			 {
		         window_subband(&win_buf[k], &(*win_que)[k][0], k);
		         filter_subband(&(*win_que)[k][0], &(*sb_sample)[k][0][j][0]);
			 }

	      I_scale_factor_calc(*sb_sample, scalar, stereo);
	      if(fr_ps.actual_mode == MPG_MD_JOINT_STEREO)
		  {
		     I_combine_LR(*sb_sample, *j_sample);
		     I_scale_factor_calc(j_sample, &j_scale, 1);
		  }
 
	      put_scale(scalar, &fr_ps, max_sc);
 
		  for (k=0;k<stereo;k++)
		  {
		      psycho_anal(&buffer[k][0],&sam[k][0], k, info.lay, snr32,
			              (FLOAT)s_freq[info.sampling_frequency]*1000);
		      for (i=0;i<SBLIMIT;i++)
				 ltmin[k][i] = (double) snr32[i];
		  }
 
	      I_main_bit_allocation(ltmin, bit_alloc, &adb, &fr_ps);
 
	      if (error_protection)
			 I_CRC_calc(&fr_ps, bit_alloc, &crc);
 
	      encode_info(&fr_ps, &bs);
 
	      if (error_protection)
			 encode_CRC(crc, &bs);
 
	      I_encode_bit_alloc(bit_alloc, &fr_ps, &bs);
	      I_encode_scale(scalar, bit_alloc, &fr_ps, &bs);
	      I_subband_quantization(scalar, *sb_sample, j_scale, *j_sample,
				    bit_alloc, *subband, &fr_ps);
	      I_sample_encoding(*subband, bit_alloc, &fr_ps, &bs);
	      for (i=0;i<adb;i++)
			 put1bit(&bs, 0);
	  break;
 
/***************************** Layer 2 **********************************/
 
	  case 2 :
		for (i=0;i<3;i++)
			 for (j=0;j<SCALE_BLOCK;j++)
		         for (k=0;k<stereo;k++)
				 {
		             window_subband(&win_buf[k], &(*win_que)[k][0], k);
		             filter_subband(&(*win_que)[k][0], &(*sb_sample)[k][i][j][0]);
				 }
 
		         II_scale_factor_calc(*sb_sample, scalar, stereo, fr_ps.sblimit);
		         pick_scale(scalar, &fr_ps, max_sc);
		         if(fr_ps.actual_mode == MPG_MD_JOINT_STEREO)
				 {
		             II_combine_LR(*sb_sample, *j_sample, fr_ps.sblimit);
		             II_scale_factor_calc(j_sample, &j_scale, 1, fr_ps.sblimit);
				 }       /* this way we calculate more mono than we need */
		            	 /* but it is cheap */
 
		         for (k=0;k<stereo;k++)
				 {
		             psycho_anal(&buffer[k][0],&sam[k][0], k, 
				                 info.lay, snr32,
				                 (FLOAT)s_freq[info.sampling_frequency]*1000);
		             for (i=0;i<SBLIMIT;i++)
				          ltmin[k][i] = (double) snr32[i];
				 }

		     II_transmission_pattern(scalar, scfsi, &fr_ps);
		     II_main_bit_allocation(ltmin, scfsi, bit_alloc, &adb, &fr_ps);
 
		     if (error_protection)
		         II_CRC_calc(&fr_ps, bit_alloc, scfsi, &crc);
 
		     encode_info(&fr_ps, &bs);
 
		     if (error_protection)
				 encode_CRC(crc, &bs);
 
		     II_encode_bit_alloc(bit_alloc, &fr_ps, &bs);
		     II_encode_scale(bit_alloc, scfsi, scalar, &fr_ps, &bs);
		     II_subband_quantization(scalar, *sb_sample, j_scale,
				      *j_sample, bit_alloc, *subband, &fr_ps);
		     II_sample_encoding(*subband, bit_alloc, &fr_ps, &bs);
		     for (i=0;i<adb;i++)
				 put1bit(&bs, 0);
	  break;
 
      }
      frameBits = sstell(&bs) - sentBits;
      if(frameBits%bitsPerSlot)   
		fprintf(stderr,"Sent %ld bits = %ld slots plus %ld\n",
				frameBits, frameBits/bitsPerSlot,
				frameBits%bitsPerSlot);
      sentBits += frameBits;

    }

    close_bit_stream_w(&bs);

    

    
    return(0);
}
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜私人影院久久久久| 国精产品一区一区三区mba桃花| 丝袜亚洲另类欧美综合| 国产很黄免费观看久久| 欧美日韩视频不卡| 中文字幕在线不卡| 国产自产2019最新不卡| 欧美精品自拍偷拍| 1024成人网色www| 国产高清精品网站| 欧美tk—视频vk| 午夜影院久久久| 色妹子一区二区| 中文字幕欧美区| 精彩视频一区二区| 欧美一区二区三区免费大片| 亚洲精选视频免费看| 成人av片在线观看| 久久久精品天堂| 国产一区二三区| 日韩一区二区三区电影| 亚洲成人av电影在线| 在线看国产日韩| 一个色综合网站| 91福利区一区二区三区| 中文字幕一区二区三区在线播放| 国产成人一级电影| 久久精品日产第一区二区三区高清版| 久久精品国产久精国产| 欧美大肚乱孕交hd孕妇| 麻豆freexxxx性91精品| 欧美一区二区三区喷汁尤物| 视频一区在线播放| 欧美一区欧美二区| 久久av中文字幕片| 日韩欧美卡一卡二| 精品一区二区久久久| www一区二区| 国产精品456露脸| 中文字幕乱码亚洲精品一区| 国产成人小视频| 国产精品国产三级国产aⅴ中文| 高清不卡在线观看| 国产精品国产三级国产三级人妇| 95精品视频在线| 一区二区三区四区国产精品| 欧美性xxxxxx少妇| 男男视频亚洲欧美| 久久免费视频一区| 99久久精品免费精品国产| 亚洲六月丁香色婷婷综合久久| 欧美这里有精品| 视频在线观看国产精品| 精品电影一区二区三区| 成人午夜电影久久影院| 亚洲人成在线播放网站岛国| 欧美色图片你懂的| 精品一区二区在线观看| 国产精品日产欧美久久久久| 在线一区二区视频| 久久国产精品99久久人人澡| 国产偷国产偷亚洲高清人白洁| 色综合中文字幕| 男女激情视频一区| 中文字幕不卡的av| 精品视频一区二区三区免费| 国产在线看一区| 亚洲男人的天堂在线aⅴ视频| 欧美精选一区二区| 成人免费视频播放| 日韩精品电影在线观看| 欧美国产禁国产网站cc| 欧美精品久久一区二区三区| 国产精品一二一区| 亚洲444eee在线观看| 国产精品无码永久免费888| 欧美日韩激情在线| 高清不卡一区二区在线| 五月天久久比比资源色| 欧美极品少妇xxxxⅹ高跟鞋| 欧美福利视频一区| 91麻豆视频网站| 国产麻豆视频一区二区| 亚洲成av人片在线| 成人欧美一区二区三区视频网页 | 亚洲国产经典视频| 6080国产精品一区二区| 99久久精品免费| 美国十次了思思久久精品导航| 成人一二三区视频| 久久久欧美精品sm网站| 精品视频在线免费| www.爱久久.com| 337p亚洲精品色噜噜| 国产精品久久久久9999吃药| 日韩一级二级三级| 在线国产亚洲欧美| 9i在线看片成人免费| 另类的小说在线视频另类成人小视频在线 | 欧美在线你懂的| 99热这里都是精品| 成人一级片在线观看| 国产资源在线一区| 极品尤物av久久免费看| 日本视频在线一区| 亚洲一区二区精品3399| 亚洲免费高清视频在线| 国产精品天天看| 国产欧美日韩精品a在线观看| 日韩欧美123| 一区二区三区91| 欧美国产成人在线| 偷拍一区二区三区| 亚洲精品国产无天堂网2021| 亚洲国产成人私人影院tom| 久久精品亚洲麻豆av一区二区| 欧美mv日韩mv国产网站app| 日韩一区二区三区视频在线 | 国产乱码精品一区二区三区av| 污片在线观看一区二区| 亚洲一区二区av在线| 亚洲v日本v欧美v久久精品| 亚洲成人av一区二区三区| 五月婷婷久久丁香| 免费三级欧美电影| 国产一区二区三区四| 国产一区视频网站| a级精品国产片在线观看| 97久久久精品综合88久久| 色婷婷一区二区| 正在播放一区二区| 欧美tickle裸体挠脚心vk| 国产午夜精品一区二区三区四区| 国产日韩高清在线| 亚洲人123区| 天天综合日日夜夜精品| 狠狠v欧美v日韩v亚洲ⅴ| 成人深夜福利app| 欧美综合色免费| 日韩三级视频中文字幕| 国产视频一区二区在线观看| 亚洲三级免费观看| 日韩经典中文字幕一区| 国产在线不卡一卡二卡三卡四卡| 成人亚洲一区二区一| 在线视频国内自拍亚洲视频| 欧美成人综合网站| 最新中文字幕一区二区三区| 亚洲综合色婷婷| 国产一区二三区好的| 色噜噜狠狠成人网p站| 欧美一区二区三区系列电影| 国产亚洲精品bt天堂精选| 亚洲一区二区三区在线播放| 激情综合色播五月| 在线精品视频小说1| 久久噜噜亚洲综合| 亚洲国产成人91porn| 国产99一区视频免费| 欧美精品自拍偷拍| 中文字幕视频一区| 久久精品国产亚洲aⅴ| 91丨porny丨首页| 2020日本不卡一区二区视频| 亚洲靠逼com| 国产91综合网| 日韩欧美国产综合一区| 一二三区精品福利视频| 成人性生交大片免费看在线播放 | 婷婷六月综合亚洲| 91精品国产欧美一区二区| 久久精子c满五个校花| 五月激情六月综合| 91麻豆国产福利精品| 欧美激情一区二区三区在线| 日韩国产在线一| 色视频成人在线观看免| 国产欧美一区二区三区沐欲| 无码av中文一区二区三区桃花岛| 91免费观看视频| 国产精品久久免费看| 狠狠狠色丁香婷婷综合久久五月| 制服丝袜中文字幕一区| 亚洲午夜免费电影| 99麻豆久久久国产精品免费 | 久久国产精品无码网站| 欧美视频一区在线观看| 亚洲欧美另类图片小说| 成人动漫一区二区三区| 国产午夜精品福利| 国产乱码一区二区三区| 久久色在线视频| 国产专区综合网| 欧美精品一区二区在线观看| 三级一区在线视频先锋| 欧美军同video69gay| 亚洲bt欧美bt精品777| 欧美日韩成人高清| 偷拍亚洲欧洲综合| 日韩视频永久免费|