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

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

?? shorten.c

?? 無損音頻壓縮源碼. 畢業設計 qq 64134703 更多畢業設計 www.rmlcd.cn
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*******************************************************************************                                                                             **       Copyright (C) 1992-1997 Tony Robinson and SoftSound Limited           **                                                                             **       See the file LICENSE for conditions on distribution and usage         **                                                                             *******************************************************************************//* * $Id: shorten.c,v 1.22 2003/01/11 01:28:15 jason Exp $ */#ifdef _WINDOWS#include <windows.h>#endif#include <math.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#ifdef MSDOS#include <io.h>#include <fcntl.h>#ifdef MSDOS_DO_TIMING#include <time.h>#endif#else#ifndef _WINDOWS#include <unistd.h>#endif#include <errno.h>#endif#include <setjmp.h>#include "shorten.h"#ifdef HAVE_CONFIG_H#include "config.h"#endif#define V2LPCQOFFSET (1 << LPCQUANT);#define UINT_PUT(val, nbit, file) \  if(version == 0) uvar_put((ulong) val, nbit, file); \  else ulong_put((ulong) val, file)#define UINT_GET(nbit, file) \  ((version == 0) ? uvar_get(nbit, file) : ulong_get(file))#define VAR_PUT(val, nbit, file) \  if(version == 0) var_put((ulong) val, nbit - 1, file); \  else var_put((ulong) val, nbit, file)#define FILESUFFIX ".shn"#define WAVESUFFIX ".wav"extern char *exitmessage;char *readmode = "rb";char *writemode = "wb";char *argv0 = NULL;char *filenameo = NULL;int  getc_exit_val;int  Pass=0;int  saw_e_op = FALSE;int  saw_i_op = FALSE;int  saw_k_op = FALSE;int  saw_s_op = FALSE;int  saw_S_op = FALSE;int  saw_x_op = FALSE;ulong bytes_read = 0;FILE *fileo = NULL;/* globals for seek table */ulong SampleNumber=0;ulong SHNFilePosition=0;ulong SHNLastBufferReadPosition=0;ushort SHNByteGet=0;ushort SHNBufferOffset=0;ushort SHNBitPosition=0;ulong SHNGBuffer=0;ulong LastBufferReadPosition;int ReadingFunctionCode=FALSE;int WriteSeekTable=TRUE;int WriteWaveFile=FALSE;int AppendSeekInfo=FALSE;slong CBuf_0_Minus1 = 0;slong CBuf_0_Minus2 = 0;slong CBuf_0_Minus3 = 0;slong CBuf_1_Minus1 = 0;slong CBuf_1_Minus2 = 0;slong CBuf_1_Minus3 = 0;slong Offset_0_0 = 0;slong Offset_0_1 = 0;slong Offset_0_2 = 0;slong Offset_0_3 = 0;slong Offset_1_0 = 0;slong Offset_1_1 = 0;slong Offset_1_2 = 0;slong Offset_1_3 = 0;typedef struct tag_TSeekTableHeader{  uchar data[SEEK_HEADER_SIZE];}TSeekTableHeader;typedef struct tag_TSeekTableTrailer{  uchar data[SEEK_TRAILER_SIZE];}TSeekTableTrailer;typedef struct tag_TSeekEntry{  uchar data[SEEK_ENTRY_SIZE];}TSeekEntry;/* old way, kept for reference.   (changed because some compilers apparently don't support #pragma pack(1))typedef struct tag_TSeekTableHeader{  char Signature[4];  ulong Version;  unsigned long SHNFileSize;}TSeekTableHeader;typedef struct tag_TSeekTableTrailer{  unsigned long SeekTableSize;  char Signature[8];}TSeekTableTrailer;typedef struct tag_TSeekEntry{  unsigned long SampleNumber;  unsigned long SHNFileByteOffset;  unsigned long SHNLastBufferReadPosition;  unsigned short SHNByteGet;  unsigned short SHNBufferOffset;  unsigned short SHNFileBitOffset;  unsigned long SHNGBuffer;  unsigned short SHNBitShift;  long CBuf0[3];  long CBuf1[3];  long Offset0[4];  long Offset1[4];}TSeekEntry;*/void init_offset(slong **offset,int nchan,int nblock,int ftype){  slong mean = 0;  int  chan, i;  /* initialise offset */  switch(ftype)  {    case TYPE_AU1:    case TYPE_S8:    case TYPE_S16HL:    case TYPE_S16LH:    case TYPE_ULAW:    case TYPE_AU2:    case TYPE_AU3:    case TYPE_ALAW:      mean = 0;      break;    case TYPE_U8:      mean = 0x80;      break;    case TYPE_U16HL:    case TYPE_U16LH:      mean = 0x8000;      break;    default:      update_exit(1, "unknown file type: %d\n", ftype);  }  for(chan = 0; chan < nchan; chan++)    for(i = 0; i < nblock; i++)      offset[chan][i] = mean;}float Satof(char *string){  int i, rval = 1;  /* this should have tighter checking */  for(i = 0; i < (int) strlen(string) && rval == 1; i++)    if(string[i] != '.' && (string[i] < '0' || string[i] > '9'))      usage_exit(1, "non-parseable float: %s\n", string);  return((float) atof(string));}float* parseList(char *maxresnstr,int nchan){  int   nval;  char  *str, *floatstr;  float *floatval;  /* copy maxresnstr to temporary space, str */  str = malloc(strlen(maxresnstr) + 1);  strcpy(str, maxresnstr);  /* grab space for the floating point parses */  floatval = pmalloc((ulong) (nchan * sizeof(*floatval)));  /* loop for all floats in the arguement */  floatstr = strtok(str, ",");  floatval[0] = Satof(floatstr);  for(nval = 1; (floatstr = strtok(NULL, ",")) != NULL && nval < nchan;nval++)    floatval[nval] = Satof(floatstr);  for(; nval < nchan; nval++)    floatval[nval] = floatval[nval - 1];  free(str);  return(floatval);}#ifdef _WINDOWS/* Function to check whether shorten should abort, when running as a windows program */static void CheckWindowsAbort(void){#ifndef WIN32  /* If we are not in Win32, we need to put in a Windows message handler to  ** allow 'multi tasking' to continue.  ** WIN32 (Windows 95 and NT) does not need to do this, as proper preemptive  ** multitasking & threading is implemented  */  MSG localMessage;  while (PeekMessage(&localMessage,NULL,0,0,PM_REMOVE))  {    TranslateMessage(&localMessage);    DispatchMessage(&localMessage);  }#endif#ifdef WINDOWS_ABORT_ALLOWED  /* If abort is allowed, see if the abort flag has been set: */  {    extern int abortFlag;    if (abortFlag)    {      /* If the abort flag is set, it means we should terminate processing */      usage_exit(-2, PACKAGE " stopped by user\n");    }  }#endif}#endif#if defined(MSDOS) || defined(_WINDOWS)int _export __stdcall _CallShorten(int argc, char **argv, char *errorString, int errorStringLength){  exitmessage=errorString;  return(shorten(stdin,stdout,argc,argv));}#endifulong uchar_to_ulong_le(uchar * buf)/* converts 4 bytes stored in little-endian format to a ulong */{  return (ulong)((buf[3] << 24) + (buf[2] << 16) + (buf[1] << 8) + buf[0]);}void ulong_to_uchar_le(uchar * buf,ulong num)/* converts a ulong to 4 bytes stored in little-endian format */{  uchar tmp[4];  tmp[0] = (uchar)(num);  tmp[1] = (uchar)(num >> 8);  tmp[2] = (uchar)(num >> 16);  tmp[3] = (uchar)(num >> 24);  buf[0] = tmp[0];  buf[1] = tmp[1];  buf[2] = tmp[2];  buf[3] = tmp[3];}void long_to_uchar_le(uchar * buf,slong num){  ulong_to_uchar_le(buf,(ulong)num);}void ushort_to_uchar_le(uchar * buf,ushort num)/* converts a ushort to 2 bytes stored in little-endian format */{  uchar tmp[2];  tmp[0] = (uchar)(num);  tmp[1] = (uchar)(num >> 8);  buf[0] = tmp[0];  buf[1] = tmp[1];}BOOL FileContainsSeekInfo(FILE *filei){  char SeekSignature[9]="SHNAMPSK";  char Buffer[9]="        ";  long InitialPosition=ftell(filei);  fseek(filei,-8,SEEK_END);  fread(Buffer,1,8,filei);  fseek(filei,InitialPosition,SEEK_SET);  if(0==memcmp(SeekSignature,Buffer,8))    return TRUE;  else    return FALSE;}void RemoveSeekInfo(char *filename){#ifdef HAVE_TRUNCATE  ulong SHNFileSize,sktSize;  TSeekTableTrailer Trailer;  FILE *f;  f=fopen(filename,"rb");  if(!f)    usage_exit(1,"failure opening '%s': %s\n",filename,strerror(errno));  fseek(f,0,SEEK_END);  SHNFileSize=(ulong)ftell(f);  fseek(f,-SEEK_TRAILER_SIZE,SEEK_END);  fread(&Trailer,SEEK_TRAILER_SIZE,1,f);  fclose(f);  sktSize = uchar_to_ulong_le(Trailer.data);  SHNFileSize -= sktSize;  fprintf(stderr,"removing seek table from file '%s'\n",filename);  if (0 != truncate(filename,SHNFileSize))    fprintf(stderr,"error: could not truncate file: %s\n",strerror(errno));#else  fprintf(stderr,"error: Your system does not seem to support the truncate() function.\n");  fprintf(stderr,"       Please report this error to <shnutils@freeshell.org>.\n");#endif}void check_conflicting_options(){  if (saw_e_op && saw_i_op)    usage_exit(1, "cannot use -e with -i\n");  if (saw_x_op && saw_k_op)    usage_exit(1, "cannot use -x with -k\n");  if (saw_e_op && saw_x_op)    usage_exit(1, "cannot use -e with -x\n");  if (saw_e_op && saw_k_op)    usage_exit(1, "cannot use -e with -k\n");  if (saw_i_op && saw_x_op)    usage_exit(1, "cannot use -i with -x\n");  if (saw_i_op && saw_k_op)    usage_exit(1, "cannot use -i with -k\n");  if (saw_s_op && saw_S_op)    usage_exit(1, "cannot use -s with -S\n");  if (saw_x_op && saw_s_op)    usage_exit(1, "cannot use -x with -s\n");  if (saw_x_op && saw_S_op)    usage_exit(1, "cannot use -x with -S\n");  if (saw_k_op && saw_s_op)    usage_exit(1, "cannot use -k with -s\n");  if (saw_k_op && saw_S_op)    usage_exit(1, "cannot use -k with -S\n");}int shorten(FILE *stdi, FILE *stdo,int argc,char **argv){  TSeekTableHeader SeekTableHeader;  TSeekTableTrailer SeekTableTrailer;  slong  **buffer, **offset;  slong  lpcqoffset = 0;  int   version = MAX_SUPPORTED_VERSION, extract = 0, lastbitshift = 0, bitshift = 0, want_seeking = 1;  int   hiloint = 1, hilo = !(*((char*) &hiloint));  int   ftype = TYPE_EOF;  char  *magic = MAGIC, *filenamei = NULL, *filenamei_orig = NULL;  char  *tmpfilename = NULL;  char  *maxresnstr = DEFAULT_MAXRESNSTR;  FILE  *filei = 0;  int   blocksize = DEFAULT_BLOCK_SIZE, nchan = DEFAULT_NCHAN;  int   i, chan, nwrap, nskip = DEFAULT_NSKIP, ndiscard = DEFAULT_NDISCARD;  int   *qlpc = NULL, maxnlpc = DEFAULT_MAXNLPC, nmean = UNDEFINED_UINT;  int   quanterror = DEFAULT_QUANTERROR, minsnr = DEFAULT_MINSNR, nfilename;  int   ulawZeroMerge = 0;  slong  datalen = -1;  Iff_Header *wavhdr = NULL;  char  *minusstr  = "-";  extern char *hs_optarg;  extern int   hs_optind;  ulong WriteCount=0;  char SeekTableFilename[MAX_PATH];  FILE *SeekTableFile=0;#ifdef MSDOS#ifdef MSDOS_DO_TIMING  clock_t startTime, endTime;  startTime = clock();#endif#endif  argv0 = (0 == strrchr(argv[0],'/')) ? argv[0] : strrchr(argv[0],'/') + 1;#ifdef _WINDOWS/* Need to set the FILE pointers to null, so we know if they have to be closed on abort */  filei = fileo = NULL;  /* Now we need to set up the error handler for Windows */  {    extern jmp_buf exitenv;    int retVal;    if ((retVal = setjmp(exitenv)) != 0)    {      /* If an error, make sure (at least) that files are closed.         fileo will already have been closed in basic_exit();         Plugging of memory leaks will be dealt with in a future release */      if (filei)        fclose(filei);      return retVal;    }  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜一区二区三区| 亚洲视频在线观看三级| 最新中文字幕一区二区三区| 五月天网站亚洲| 99re成人在线| 亚洲国产成人在线| 日产国产欧美视频一区精品| av欧美精品.com| 久久久综合视频| 免费成人美女在线观看| 日本高清不卡视频| 国产精品久久久久久妇女6080| 日韩激情视频在线观看| 91社区在线播放| 国产精品看片你懂得| 国产乱人伦偷精品视频不卡| 欧美电影在线免费观看| 亚洲精品久久久久久国产精华液| 国产精品一二三区| 26uuu久久综合| 免费在线欧美视频| 欧美一区二区久久久| 亚洲自拍与偷拍| 91福利资源站| 一区二区三区四区视频精品免费| 成人美女视频在线观看| 久久综合久久综合亚洲| 免费高清在线一区| 日韩一级完整毛片| 日韩电影在线观看电影| 51精品久久久久久久蜜臀| 亚洲一区在线观看免费观看电影高清 | 香蕉成人啪国产精品视频综合网| 成人永久aaa| 久久精品人人做| 福利一区福利二区| 国产精品无圣光一区二区| 国产高清久久久久| 国产精品久久久久久久久免费桃花 | 成人福利视频在线| 国产精品久线观看视频| www.亚洲在线| 亚洲精品成人在线| 精品视频1区2区| 亚洲aaa精品| 日韩欧美激情四射| 国产精品一区二区x88av| 国产精品毛片高清在线完整版| 成人不卡免费av| 中文字幕精品一区二区三区精品 | 美女视频一区二区| 精品欧美久久久| voyeur盗摄精品| 亚洲中国最大av网站| 欧美日韩精品一区二区天天拍小说 | 国产在线播放一区三区四| 精品卡一卡二卡三卡四在线| 国产福利91精品| 亚洲人精品一区| 777久久久精品| 久久国产成人午夜av影院| 国产三级一区二区| 欧美在线一二三| 精品一区精品二区高清| 成人欧美一区二区三区在线播放| 91麻豆国产在线观看| 五月激情六月综合| 国产精品色哟哟| 欧美三级视频在线播放| 国产在线国偷精品免费看| 国产精品久久久久永久免费观看| 欧美日韩精品电影| 成人综合在线观看| 午夜精品123| 国产精品不卡一区二区三区| 777奇米成人网| 91免费版在线看| 国精产品一区一区三区mba视频| 综合欧美一区二区三区| 欧美va日韩va| 欧美日韩免费电影| 成人高清av在线| 国模娜娜一区二区三区| 亚洲国产一区视频| 中文字幕在线不卡一区二区三区| 日韩午夜激情免费电影| 91久久精品一区二区| 国产很黄免费观看久久| 美女网站视频久久| 亚洲香肠在线观看| 最新欧美精品一区二区三区| 久久久久久夜精品精品免费| 欧美偷拍一区二区| 91年精品国产| 不卡的av在线| 粉嫩在线一区二区三区视频| 久久99久久精品欧美| 日韩成人免费电影| 亚洲图片自拍偷拍| 一区二区三区中文免费| 国产精品福利在线播放| 精品粉嫩aⅴ一区二区三区四区| 欧美三级视频在线| 色综合久久99| 色欧美日韩亚洲| 91免费国产视频网站| 成人黄色网址在线观看| 成人av网站在线观看免费| 国模少妇一区二区三区| 久久99精品一区二区三区三区| 日日骚欧美日韩| 三级不卡在线观看| 亚洲大片一区二区三区| 亚洲成人精品一区二区| 亚洲国产欧美另类丝袜| 亚洲午夜精品网| 亚洲超碰精品一区二区| 日韩中文字幕不卡| 日本不卡不码高清免费观看| 久久99国产精品免费| 成人av动漫网站| 色婷婷精品大在线视频| 色婷婷av久久久久久久| 在线视频一区二区三| 欧美日韩精品系列| 欧美一卡在线观看| 欧美r级在线观看| 国产欧美精品国产国产专区| 久久久久久9999| 国产精品白丝在线| 亚洲午夜在线观看视频在线| 日产欧产美韩系列久久99| 极品少妇xxxx偷拍精品少妇| 国产福利一区二区三区视频在线| 成人免费视频视频在线观看免费| 成人国产在线观看| 欧美日韩中文字幕精品| 日韩欧美视频在线| 国产精品免费视频一区| 亚洲一区二区三区四区在线免费观看| 亚洲一区二区成人在线观看| 五月综合激情婷婷六月色窝| 精品在线观看视频| 91浏览器在线视频| 日韩一级黄色片| 亚洲国产精品国自产拍av| 亚洲黄网站在线观看| 日韩精品三区四区| 成人高清免费观看| 欧美一区二区三区白人| 国产精品人成在线观看免费 | 99精品欧美一区| 9191久久久久久久久久久| 国产丝袜美腿一区二区三区| 一区二区三区欧美| 国内精品视频666| 在线亚洲免费视频| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲成精国产精品女| 国产精品一区二区三区99| 91精品91久久久中77777| 精品国产乱码久久久久久浪潮| 亚洲伦理在线精品| 精品亚洲porn| 精品视频123区在线观看| 国产亚洲成年网址在线观看| 亚洲超碰精品一区二区| 不卡高清视频专区| 欧美精品一区二区三区在线| 一区二区三区电影在线播| 国产成人午夜片在线观看高清观看| 欧美在线免费观看视频| 国产精品丝袜久久久久久app| 毛片av一区二区| 欧美日韩一区视频| 亚洲婷婷综合久久一本伊一区| 国内外成人在线| 日韩欧美一二区| 天天射综合影视| 在线亚洲免费视频| 亚洲色图色小说| 成人a级免费电影| 久久久久久99精品| 九一久久久久久| 日韩精品一区二区三区在线观看| 亚洲线精品一区二区三区| 色婷婷亚洲一区二区三区| 亚洲欧洲成人精品av97| 粉嫩aⅴ一区二区三区四区五区| 亚洲精品在线免费观看视频| 婷婷六月综合亚洲| 欧美日韩国产精品成人| 亚洲午夜av在线| 欧洲一区二区av| 亚洲电影中文字幕在线观看| 91国偷自产一区二区三区成为亚洲经典 | 日韩视频免费直播| 亚洲成av人片一区二区梦乃| 日本伦理一区二区| 亚洲综合激情另类小说区|