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

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

?? riffwave.c

?? 無損音頻壓縮源碼. 畢業設計 qq 64134703 更多畢業設計 www.rmlcd.cn
?? C
字號:
/*******************************************************************************                                                                             **       Copyright (C) 1997 Tony Robinson and SoftSound Limited                **                                                                             **       See the file LICENSE for conditions on distribution and usage         **                                                                             *******************************************************************************//* * $Id: riffwave.c,v 1.5 2002/11/16 18:03:07 jason Exp $ */#include <stdio.h>#include <stdlib.h>#include "shorten.h"#ifdef HAVE_CONFIG_H#include "config.h"#endif#define BLOCKSIZE 256#define NBLOCKS_INIT 16#define RIFF_SIGNATURE 0x46464952   /* "RIFF" */#define WAVE_SIGNATURE 0x45564157   /* "WAVE" */#define fmt_SIGNATURE  0x20746D66   /* "fmt " */#define data_SIGNATURE 0x61746164   /* "data" */#define WAVE_FORMAT_PCM       0x0001#define WAVE_FORMAT_ALAW      0x0006#define WAVE_FORMAT_MULAW     0x0007/* * Portably read a little-endian long integer from a file. */static slong fread_long (fp) FILE *fp; {  slong result;  result = fgetc(fp);  result |= ((slong)fgetc(fp) << 8);  result |= ((slong)fgetc(fp) << 16);  result |= ((slong)fgetc(fp) << 24);  return result;}/* * Retrieve a little-endian sshort integer from a char array, again * portably. */static sshort short_at (p) uchar *p; {  return ((sshort)p[1] << 8) | p[0];}/* * Write a load of data into a header chunk. */void write_hdr(buf, len, hdr)const uchar *buf; int len; Iff_Header *hdr;{  while (len--) {    if (hdr->nblocks == 0 ||        hdr->blklen[hdr->nblocks-1] == VERBATIM_CHUNK_MAX) {      hdr->nblocks++;      if (hdr->nblocks > hdr->nblk_alloc) {        long size;        hdr->nblk_alloc += NBLOCKS_INIT;        size = hdr->nblk_alloc * sizeof(uchar *);        hdr->blocks = hdr->blocks ? realloc(hdr->blocks, size) : malloc(size);        if (!hdr->blocks)          perror_exit("malloc or realloc(%ld)", size);        size = hdr->nblk_alloc * sizeof(unsigned);        hdr->blklen = hdr->blklen ? realloc(hdr->blklen, size) : malloc(size);        if (!hdr->blklen)          perror_exit("malloc or realloc(%ld)", size);      }      hdr->blklen[hdr->nblocks-1] = 0;      hdr->blocks[hdr->nblocks-1] = pmalloc(sizeof(uchar) *        VERBATIM_CHUNK_MAX);    }    hdr->blocks[hdr->nblocks-1][hdr->blklen[hdr->nblocks-1]++] = *buf++;  }}/* * Write a little-endian long integer into a header chunk. */static void write_hdr_long(data, hdr)ulong data; Iff_Header *hdr;{  uchar realdata[4];  realdata[0] = data & 0xFF;  realdata[1] = (data >> 8) & 0xFF;  realdata[2] = (data >> 16) & 0xFF;  realdata[3] = (data >> 24) & 0xFF;  write_hdr (realdata, 4, hdr);}Iff_Header *riff_wave_prochdr (filei, ftype, nchan, datalen, wtype)FILE *filei; int *ftype, *nchan; slong *datalen; int *wtype;{  Iff_Header *hdr;  slong len, ckhdr;  int seen_fmt = 0;  /* Initialize the returned wave type */  if (wtype)    *wtype = 0;  /* Reserve space for the header structure. */  hdr = pmalloc(sizeof(*hdr));  hdr->nblocks = hdr->nblk_alloc = 0;  hdr->blocks = NULL;  hdr->blklen = NULL;  /* Read the RIFF signature. */  /* NOTE: This comparison has been moved out to shorten.c to support AIFF  if (fread_long(filei) != RIFF_SIGNATURE) {    free_header(hdr);    return NULL;  }  */  if ((len = fread_long(filei)) < 12 ||      fread_long(filei) != WAVE_SIGNATURE) {    free_header(hdr);    return NULL;  }  /* Write the RIFF signature into the header buffer. */  write_hdr_long((slong)RIFF_SIGNATURE, hdr);  write_hdr_long(len, hdr);  write_hdr_long((slong)WAVE_SIGNATURE, hdr);  /* Now begin reading chunks. Give special processing to the "fmt"   * chunk, end header processing on the "data" chunk, and skip   * everything else. */  while (!feof(filei) && (ckhdr = fread_long(filei)) != data_SIGNATURE) {    slong cklen = fread_long(filei);    int len, blklen;    uchar buf[256];    write_hdr_long(ckhdr, hdr);    write_hdr_long(cklen, hdr);    if (ckhdr == fmt_SIGNATURE) {      uchar buf[16];      if (cklen < 16 || fread(buf, 1, 16, filei) < 16) {        /* We don't understand WAVE files with a header that's too short. */        free_header(hdr);        return NULL;      }      cklen -= 16;      write_hdr(buf, 16, hdr);      switch(short_at(buf)) {        /* WAVE_FORMAT */      case WAVE_FORMAT_PCM:        switch (short_at(buf+14)) {   /* bits per sample */        case 8:          *ftype = TYPE_U8;          break;        case 16:          *ftype = TYPE_S16LH;          break;        default:          free_header(hdr);          return NULL;        }        break;      case WAVE_FORMAT_MULAW:        *ftype = TYPE_GENERIC_ULAW;        break;             case WAVE_FORMAT_ALAW:        *ftype = TYPE_GENERIC_ALAW;        break;      default:        /* We don't understand this format */        free_header(hdr);        if (wtype)          *wtype = short_at(buf);        return NULL;      }      if ((*nchan = short_at(buf+2)) < 1) { /* at least one channel */        free_header(hdr);        return NULL;      }      seen_fmt = 1;    }    while (cklen > 0 && (len = fread(buf, 1,          (blklen = MIN(cklen,256)),          filei)) > 0) {      write_hdr (buf, blklen, hdr);      cklen -= blklen;    }  }  if (!seen_fmt) {  /* no fmt chunk before data chunk */    free_header(hdr);    return NULL;  }  write_hdr_long (data_SIGNATURE, hdr);  write_hdr_long (*datalen = fread_long(filei), hdr);  return hdr;}static void write_verbatim_chunk (data, len, fileo)uchar *data; int len; FILE *fileo;{  uvar_put((ulong) FN_VERBATIM, FNSIZE, fileo);  uvar_put((ulong) len, VERBATIM_CKSIZE_SIZE, fileo);  while (len--) {    uvar_put ((ulong) *data, VERBATIM_BYTE_SIZE, fileo);    data++;  }}void write_header (hdr, fileo)Iff_Header *hdr; FILE *fileo;{  uchar **blocks;  unsigned *blklen;  int nblocks;  nblocks = hdr->nblocks;  blocks = hdr->blocks;  blklen = hdr->blklen;  while (nblocks--)    write_verbatim_chunk (*blocks++, *blklen++, fileo);}void verbatim_file (filei, fileo)FILE *filei, *fileo;{  uchar buf[VERBATIM_CHUNK_MAX];  int len;  while ( (len = fread(buf, 1, VERBATIM_CHUNK_MAX, filei)) > 0)    write_verbatim_chunk (buf, len, fileo);}void free_header (hdr)Iff_Header *hdr;{  uchar **blocks;  int nblocks;  if (hdr) {    if (hdr->blocks) {      nblocks = hdr->nblocks;      blocks = hdr->blocks;      while (nblocks--)        free (*blocks++);      free (hdr->blocks);    }    if (hdr->blklen)      free (hdr->blklen);    free (hdr);  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品69毛片高清亚洲| 中文字幕佐山爱一区二区免费| 精品国免费一区二区三区| 久久久午夜电影| **性色生活片久久毛片| 亚洲bt欧美bt精品| 精品一区二区三区影院在线午夜| 国产91清纯白嫩初高中在线观看| 91浏览器在线视频| 欧美一区二区精品在线| 亚洲国产精品av| 亚洲在线观看免费| 国产一区二区影院| 欧美自拍丝袜亚洲| 亚洲精品一区二区精华| 亚洲人精品午夜| 青娱乐精品视频在线| 成人禁用看黄a在线| 欧美欧美欧美欧美| 中文字幕第一页久久| 午夜在线成人av| 国产aⅴ精品一区二区三区色成熟| 在线看一区二区| 26uuu亚洲婷婷狠狠天堂| 亚洲激情自拍偷拍| 国产一区二区三区免费在线观看| 色av综合在线| 国产婷婷精品av在线| 香港成人在线视频| 99久久久久久99| 欧美tk—视频vk| 亚洲一区在线视频| 成人免费毛片片v| 日韩视频中午一区| 夜夜嗨av一区二区三区中文字幕| 国产在线精品免费| 欧美日韩一区不卡| 国产精品久99| 国产自产视频一区二区三区| 在线观看免费一区| 中文字幕精品—区二区四季| 美女性感视频久久| 欧洲精品在线观看| 国产精品三级av| 国产综合久久久久久久久久久久| 欧美久久久久久久久中文字幕| 国产精品美女久久久久久久网站| 精品伊人久久久久7777人| 欧美性感一区二区三区| 日韩一区有码在线| 国产激情一区二区三区| 精品国产髙清在线看国产毛片| 亚洲二区视频在线| 在线精品视频免费播放| 中文字幕一区av| 国产精品白丝av| 日韩精品中文字幕在线不卡尤物 | 看国产成人h片视频| 欧美主播一区二区三区美女| 亚洲丝袜美腿综合| 成人亚洲一区二区一| 精品美女在线观看| 喷白浆一区二区| 8v天堂国产在线一区二区| 一区二区三区四区不卡在线 | 中文字幕一区二区三中文字幕| 国产在线麻豆精品观看| 欧美一二区视频| 午夜av区久久| 欧美精品vⅰdeose4hd| 亚洲图片有声小说| 在线观看亚洲精品视频| 一区二区三区四区在线免费观看| 99v久久综合狠狠综合久久| 欧美激情综合网| 国产高清无密码一区二区三区| 精品乱人伦一区二区三区| 免费观看久久久4p| 欧美一区二区视频在线观看 | 日韩精品在线看片z| 视频一区二区不卡| 欧美美女bb生活片| 天天综合色天天综合| 欧美日本一区二区三区四区| 亚洲成人在线网站| 欧美顶级少妇做爰| 强制捆绑调教一区二区| 日韩免费福利电影在线观看| 蜜桃视频免费观看一区| 精品日韩在线观看| 国产成人av自拍| 国产精品久久久久久久久动漫 | 一区二区在线观看视频 | 暴力调教一区二区三区| 亚洲欧洲99久久| 日本国产一区二区| 午夜亚洲福利老司机| 日韩一级免费观看| 狠狠久久亚洲欧美| 日本一区二区三区四区在线视频| 高清成人在线观看| 亚洲欧美区自拍先锋| 欧美三级三级三级爽爽爽| 午夜精品免费在线观看| 日韩美女在线视频| 成人性色生活片| 亚洲另类中文字| 4438成人网| 国产精品一区二区久激情瑜伽| 中文字幕av一区二区三区高| 91麻豆高清视频| 日韩在线一二三区| 久久久久久久一区| 91福利在线观看| 久久成人免费电影| 国产精品美女久久久久久久久久久| 一本色道久久加勒比精品| 亚洲6080在线| 久久精品免视看| 91成人免费电影| 捆绑紧缚一区二区三区视频| 一色桃子久久精品亚洲| 欧美精品久久天天躁| 国产在线看一区| 一区二区三区不卡在线观看| 欧美一级日韩不卡播放免费| 国v精品久久久网| 午夜天堂影视香蕉久久| 国产欧美日韩在线看| 欧美午夜精品久久久久久超碰| 精品亚洲aⅴ乱码一区二区三区| 亚洲欧洲日产国产综合网| 欧美一区在线视频| 成人激情电影免费在线观看| 五月天激情综合| 欧美国产一区二区在线观看| 欧美美女喷水视频| 成人国产精品免费网站| 日本人妖一区二区| 综合在线观看色| 精品播放一区二区| 欧美在线999| 成人免费视频网站在线观看| 欧美aaa在线| 一区二区三区四区在线播放| 五月激情综合网| 99久久久久久| 亚洲品质自拍视频| 精品欧美一区二区三区精品久久| 91在线视频播放| 精品精品国产高清a毛片牛牛| 色嗨嗨av一区二区三区| 国产精一品亚洲二区在线视频| 亚洲电影一级黄| 国产精品久久久久影视| 亚洲精品在线网站| 欧美日韩精品一区二区天天拍小说| 成人永久免费视频| 精品一区二区三区蜜桃| 天天色综合成人网| 亚洲国产欧美在线| 亚洲摸摸操操av| 国产精品第13页| 久久九九国产精品| 欧美一级二级在线观看| 精品污污网站免费看| 色域天天综合网| 99视频超级精品| 成人国产精品免费观看动漫| 国产在线不卡一区| 捆绑紧缚一区二区三区视频| 亚瑟在线精品视频| 亚洲午夜精品在线| 亚洲制服欧美中文字幕中文字幕| 自拍偷拍国产精品| 国产精品久久久久久亚洲毛片| 久久日韩粉嫩一区二区三区 | 欧美优质美女网站| 毛片基地黄久久久久久天堂| 午夜天堂影视香蕉久久| 亚洲在线视频网站| 亚洲综合久久久久| 亚洲欧美福利一区二区| 亚洲欧洲三级电影| 国产精品久久看| 国产精品毛片高清在线完整版| 久久久久国产精品麻豆ai换脸 | 久久99精品国产91久久来源| 免费观看91视频大全| 蜜臀av性久久久久蜜臀av麻豆| 日日欢夜夜爽一区| 欧美日韩一区二区三区四区| 欧美无砖专区一中文字| 欧美体内she精高潮| 欧美午夜精品一区| 91精品久久久久久久91蜜桃| 欧美一区二区三区婷婷月色| 欧美一区二区播放| 欧美刺激脚交jootjob| 26uuu色噜噜精品一区|