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

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

?? dtsdec.c

?? 現(xiàn)在關于h.264的源碼很多
?? C
字號:
/* * dtsdec.c : free DTS Coherent Acoustics stream decoder. * Copyright (C) 2004 Benjamin Zores <ben@geexbox.org> * * This file is part of libavcodec. * * This library 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 of the License, or * (at your option) any later version. * * This library 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 this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#ifdef HAVE_AV_CONFIG_H#undef HAVE_AV_CONFIG_H#endif#include "avcodec.h"#include <dts.h>#include <stdlib.h>#include <string.h>#ifdef HAVE_MALLOC_H#include <malloc.h>#endif#define INBUF_SIZE 4096#define BUFFER_SIZE 4096#define HEADER_SIZE 14#ifdef LIBDTS_FIXED#define CONVERT_LEVEL (1 << 26)#define CONVERT_BIAS 0#else#define CONVERT_LEVEL 1#define CONVERT_BIAS 384#endifstatic inlineint16_t convert (int32_t i){#ifdef LIBDTS_FIXED    i >>= 15;#else    i -= 0x43c00000;#endif    return (i > 32767) ? 32767 : ((i < -32768) ? -32768 : i);}voidconvert2s16_2 (sample_t * _f, int16_t * s16){  int i;  int32_t * f = (int32_t *) _f;  for (i = 0; i < 256; i++)    {      s16[2*i] = convert (f[i]);      s16[2*i+1] = convert (f[i+256]);    }}voidconvert2s16_4 (sample_t * _f, int16_t * s16){  int i;  int32_t * f = (int32_t *) _f;  for (i = 0; i < 256; i++)    {      s16[4*i] = convert (f[i]);      s16[4*i+1] = convert (f[i+256]);      s16[4*i+2] = convert (f[i+512]);      s16[4*i+3] = convert (f[i+768]);    }}voidconvert2s16_5 (sample_t * _f, int16_t * s16){  int i;  int32_t * f = (int32_t *) _f;  for (i = 0; i < 256; i++)    {      s16[5*i] = convert (f[i]);      s16[5*i+1] = convert (f[i+256]);      s16[5*i+2] = convert (f[i+512]);      s16[5*i+3] = convert (f[i+768]);      s16[5*i+4] = convert (f[i+1024]);    }}static voidconvert2s16_multi (sample_t * _f, int16_t * s16, int flags){  int i;  int32_t * f = (int32_t *) _f;  switch (flags)    {    case DTS_MONO:      for (i = 0; i < 256; i++)        {          s16[5*i] = s16[5*i+1] = s16[5*i+2] = s16[5*i+3] = 0;          s16[5*i+4] = convert (f[i]);        }      break;    case DTS_CHANNEL:    case DTS_STEREO:    case DTS_DOLBY:      convert2s16_2 (_f, s16);      break;    case DTS_3F:      for (i = 0; i < 256; i++)        {          s16[5*i] = convert (f[i]);          s16[5*i+1] = convert (f[i+512]);          s16[5*i+2] = s16[5*i+3] = 0;          s16[5*i+4] = convert (f[i+256]);        }      break;    case DTS_2F2R:      convert2s16_4 (_f, s16);      break;    case DTS_3F2R:      convert2s16_5 (_f, s16);      break;    case DTS_MONO | DTS_LFE:      for (i = 0; i < 256; i++)        {          s16[6*i] = s16[6*i+1] = s16[6*i+2] = s16[6*i+3] = 0;          s16[6*i+4] = convert (f[i+256]);          s16[6*i+5] = convert (f[i]);        }      break;    case DTS_CHANNEL | DTS_LFE:    case DTS_STEREO | DTS_LFE:    case DTS_DOLBY | DTS_LFE:      for (i = 0; i < 256; i++)        {          s16[6*i] = convert (f[i+256]);          s16[6*i+1] = convert (f[i+512]);          s16[6*i+2] = s16[6*i+3] = s16[6*i+4] = 0;          s16[6*i+5] = convert (f[i]);        }      break;    case DTS_3F | DTS_LFE:      for (i = 0; i < 256; i++)        {          s16[6*i] = convert (f[i+256]);          s16[6*i+1] = convert (f[i+768]);          s16[6*i+2] = s16[6*i+3] = 0;          s16[6*i+4] = convert (f[i+512]);          s16[6*i+5] = convert (f[i]);        }      break;    case DTS_2F2R | DTS_LFE:      for (i = 0; i < 256; i++)        {          s16[6*i] = convert (f[i+256]);          s16[6*i+1] = convert (f[i+512]);          s16[6*i+2] = convert (f[i+768]);          s16[6*i+3] = convert (f[i+1024]);          s16[6*i+4] = 0;          s16[6*i+5] = convert (f[i]);        }      break;    case DTS_3F2R | DTS_LFE:      for (i = 0; i < 256; i++)        {          s16[6*i] = convert (f[i+256]);          s16[6*i+1] = convert (f[i+768]);          s16[6*i+2] = convert (f[i+1024]);          s16[6*i+3] = convert (f[i+1280]);          s16[6*i+4] = convert (f[i+512]);          s16[6*i+5] = convert (f[i]);        }      break;    }}static intchannels_multi (int flags){  if (flags & DTS_LFE)    return 6;  else if (flags & 1)   /* center channel */    return 5;  else if ((flags & DTS_CHANNEL_MASK) == DTS_2F2R)    return 4;  else    return 2;}static intdts_decode_frame (AVCodecContext *avctx, void *data, int *data_size,                  uint8_t *buff, int buff_size){  uint8_t * start = buff;  uint8_t * end = buff + buff_size;  static uint8_t buf[BUFFER_SIZE];  static uint8_t * bufptr = buf;  static uint8_t * bufpos = buf + HEADER_SIZE;  static int sample_rate;  static int frame_length;  static int flags;  int bit_rate;  int len;  dts_state_t *state = avctx->priv_data;  *data_size = 0;  while (1)    {      len = end - start;      if (!len)        break;      if (len > bufpos - bufptr)        len = bufpos - bufptr;      memcpy (bufptr, start, len);      bufptr += len;      start += len;      if (bufptr == bufpos)        {          if (bufpos == buf + HEADER_SIZE)            {              int length;              length = dts_syncinfo (state, buf, &flags, &sample_rate,                                     &bit_rate, &frame_length);              if (!length)                {                  av_log (NULL, AV_LOG_INFO, "skip\n");                  for (bufptr = buf; bufptr < buf + HEADER_SIZE-1; bufptr++)                    bufptr[0] = bufptr[1];                  continue;                }              bufpos = buf + length;            }          else            {              level_t level;              sample_t bias;              int i;              flags = 2; /* ???????????? */              level = CONVERT_LEVEL;              bias = CONVERT_BIAS;              flags |= DTS_ADJUST_LEVEL;              if (dts_frame (state, buf, &flags, &level, bias))                goto error;              avctx->sample_rate = sample_rate;              avctx->channels = channels_multi (flags);              avctx->bit_rate = bit_rate;              for (i = 0; i < dts_blocks_num (state); i++)                {                  if (dts_block (state))                    goto error;                  {                    int chans;                    chans = channels_multi (flags);                    convert2s16_multi (dts_samples (state), data,                                       flags & (DTS_CHANNEL_MASK | DTS_LFE));                    data += 256 * sizeof (int16_t) * chans;                    *data_size += 256 * sizeof (int16_t) * chans;                  }                }              bufptr = buf;              bufpos = buf + HEADER_SIZE;              continue;            error:              av_log (NULL, AV_LOG_ERROR, "error\n");              bufptr = buf;              bufpos = buf + HEADER_SIZE;            }        }    }  return buff_size;}static intdts_decode_init (AVCodecContext *avctx){  avctx->priv_data = dts_init (0);  if (avctx->priv_data == NULL)    return 1;  return 0;}static intdts_decode_end (AVCodecContext *s){  return 0;}AVCodec dts_decoder = {  "dts",  CODEC_TYPE_AUDIO,  CODEC_ID_DTS,  sizeof (dts_state_t *),  dts_decode_init,  NULL,  dts_decode_end,  dts_decode_frame,};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久香蕉的特点| 国产伦精品一区二区三区免费迷 | 亚洲美女淫视频| 波多野结衣在线一区| 国产精品美女久久久久av爽李琼| www.亚洲免费av| 亚洲亚洲人成综合网络| 欧美老年两性高潮| 久久精品国产免费| 日本一区二区动态图| 99久久综合国产精品| 亚洲成av人综合在线观看| 日韩三级电影网址| 丰满亚洲少妇av| 一区二区三区影院| 日韩一区二区三区精品视频| 国产精品一区二区在线播放| 亚洲欧洲一区二区在线播放| 欧美日韩精品一区二区| 久久99国产精品麻豆| 国产精品电影院| 欧美日韩一区二区电影| 看片的网站亚洲| 中文字幕亚洲综合久久菠萝蜜| 欧美色网一区二区| 国产精品正在播放| 亚洲一级电影视频| 精品av久久707| 色婷婷久久综合| 美女高潮久久久| 中文字幕一区二区三区蜜月| 欧美一区二区日韩| 不卡一区二区三区四区| 日韩激情一二三区| 国产精品久久久久久久久免费相片| 精品视频在线免费观看| 国产福利91精品| 天堂久久一区二区三区| 国产日韩av一区二区| 欧美日韩的一区二区| 大胆欧美人体老妇| 美女尤物国产一区| 夜夜嗨av一区二区三区四季av| 精品欧美黑人一区二区三区| 日本精品一级二级| 国产不卡在线一区| 日本美女视频一区二区| 亚洲视频免费在线观看| 久久女同互慰一区二区三区| 欧美区一区二区三区| 成人sese在线| 国内成人自拍视频| 日韩国产在线观看| 一区二区三区高清不卡| 国产精品久久久久影院老司| 2023国产一二三区日本精品2022| 欧美日韩高清一区二区| 色噜噜狠狠色综合欧洲selulu| 国产精品一二三在| 喷白浆一区二区| 偷窥少妇高潮呻吟av久久免费| 亚洲人成在线观看一区二区| 久久亚洲二区三区| 日韩欧美不卡一区| 91精品国产综合久久精品| 色噜噜夜夜夜综合网| 99re成人精品视频| 成人午夜av在线| 国产精品一区2区| 极品美女销魂一区二区三区 | 亚洲狠狠爱一区二区三区| 国产精品国产自产拍高清av王其| 久久综合狠狠综合久久综合88| 91精品国产91久久综合桃花| 欧美日韩视频在线第一区| 在线观看欧美日本| 在线观看精品一区| 欧美午夜精品一区| 欧美在线短视频| 欧美图片一区二区三区| 在线观看亚洲精品| 欧美三级在线视频| 欧美日本视频在线| 欧美日韩一区久久| 91精品国产91综合久久蜜臀| 欧美一区二区精美| 日韩免费一区二区三区在线播放| 日韩午夜三级在线| 欧美成人一区二区三区在线观看| 日韩精品中文字幕一区二区三区 | 欧美成人r级一区二区三区| 国产精品久久看| 国产精品青草综合久久久久99| 国产日韩精品一区| 一色桃子久久精品亚洲| 亚洲欧美乱综合| 性感美女极品91精品| 日韩av电影天堂| 国产一区二区网址| 成人性生交大片| 色国产精品一区在线观看| 欧美精品自拍偷拍动漫精品| 精品日韩成人av| 欧美国产综合一区二区| 亚洲免费资源在线播放| 五月激情六月综合| 国产一区二区视频在线播放| 成人av电影免费在线播放| 日本韩国欧美一区二区三区| 欧美喷水一区二区| 国产人伦精品一区二区| 亚洲乱码国产乱码精品精98午夜| 性感美女久久精品| 国产麻豆午夜三级精品| 一本大道久久精品懂色aⅴ| 欧美另类高清zo欧美| 久久中文娱乐网| 一区二区欧美精品| 久99久精品视频免费观看| 99r国产精品| 日韩精品一区二区三区在线| 亚洲欧洲精品一区二区三区| 丝袜美腿成人在线| 成人免费毛片高清视频| 欧美精品日韩精品| 国产精品第四页| 美国十次综合导航| 在线中文字幕不卡| 久久九九全国免费| 天使萌一区二区三区免费观看| 国产成人免费视频网站高清观看视频| 欧美性高清videossexo| 久久久国产精品不卡| 午夜久久久影院| av一区二区三区黑人| 日韩精品资源二区在线| 一级中文字幕一区二区| 国产不卡在线一区| 日韩视频一区二区| 亚洲一区二区三区四区在线观看 | 免费视频一区二区| 91免费观看国产| 国产亚洲成aⅴ人片在线观看| 天堂在线亚洲视频| 色欧美乱欧美15图片| 国产精品天天看| 乱中年女人伦av一区二区| 欧美性受极品xxxx喷水| 亚洲视频在线一区二区| 国产成人免费xxxxxxxx| 精品美女在线播放| 日本亚洲视频在线| 欧美日韩精品欧美日韩精品一 | 亚洲天堂av一区| 国产成人免费视| 久久综合九色综合欧美亚洲| 天堂一区二区在线| 欧美美女bb生活片| 亚洲国产综合色| 91国产免费观看| 亚洲视频 欧洲视频| av一本久道久久综合久久鬼色| 久久精品水蜜桃av综合天堂| 寂寞少妇一区二区三区| 精品国产一二三| 精品一区二区三区在线观看国产| 91精品婷婷国产综合久久| 午夜精品久久一牛影视| 欧美日韩一区二区三区高清| 亚洲电影视频在线| 欧美亚洲另类激情小说| 亚洲成人精品影院| 欧美精选一区二区| 五月综合激情网| 337p亚洲精品色噜噜狠狠| 日日嗨av一区二区三区四区| 欧美男人的天堂一二区| 日本午夜精品一区二区三区电影 | 制服丝袜在线91| 蜜臀a∨国产成人精品| 精品国产网站在线观看| 国产原创一区二区三区| 久久精品亚洲精品国产欧美| 成人教育av在线| 亚洲精品午夜久久久| 精品视频色一区| 麻豆精品蜜桃视频网站| 亚洲精品在线免费观看视频| 国产成人精品影视| 亚洲欧洲制服丝袜| 欧美三级视频在线| 久久se精品一区二区| 国产午夜精品一区二区三区嫩草| 风间由美性色一区二区三区| 亚洲精选视频免费看| 欧美一卡二卡三卡| 国产精品88av| 一区二区三区精品| 日韩免费看网站| 9久草视频在线视频精品|