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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? uscg711.c

?? G.711,G.723.1,G.726,G.729,GSM CODEC C/C++ code
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/*/////////////////////////////////////////////////////////////////////////////
//
//                  INTEL CORPORATION PROPRIETARY INFORMATION
//     This software is supplied under the terms of a license agreement or
//     nondisclosure agreement with Intel Corporation and may not be copied
//     or disclosed except in accordance with the terms of that agreement.
//          Copyright(c) 2004-2005 Intel Corporation. All Rights Reserved.
//
//     Intel(R) Integrated Performance Primitives
//     USC - Unified Speech Codec interface library
//
// By downloading and installing USC codec, you hereby agree that the
// accompanying Materials are being provided to you under the terms and
// conditions of the End User License Agreement for the Intel(R) Integrated
// Performance Primitives product previously accepted by you. Please refer
// to the file ipplic.htm located in the root directory of your Intel(R) IPP
// product installation for more information.
//
// A speech coding standards promoted by ITU, ETSI, 3GPP and other
// organizations. Implementations of these standards, or the standard enabled
// platforms may require licenses from various entities, including
// Intel Corporation.
//
//
// Purpose: G711 speech codec: USC functions.
//
*/

#include <string.h>
#include <usc.h>
#include "owng711.h"
#include "g711api.h"

static USC_Status GetInfoA(USC_Handle handle, USC_CodecInfo *pInfo);
static USC_Status GetInfoU(USC_Handle handle, USC_CodecInfo *pInfo);
static USC_Status NumAlloc(const USC_Option *options, int *nbanks);
static USC_Status MemAlloc(const USC_Option *options, USC_MemBank *pBanks);
static USC_Status InitA(const USC_Option *options, const USC_MemBank *pBanks, USC_Handle *handle);
static USC_Status InitU(const USC_Option *options, const USC_MemBank *pBanks, USC_Handle *handle);
static USC_Status ReinitA(const USC_Modes *modes, USC_Handle handle );
static USC_Status ReinitU(const USC_Modes *modes, USC_Handle handle );
static USC_Status ControlA(const USC_Modes *modes, USC_Handle handle );
static USC_Status ControlU(const USC_Modes *modes, USC_Handle handle );
static USC_Status Encode(USC_Handle handle, USC_PCMStream *in, USC_Bitstream *out);
static USC_Status Decode(USC_Handle handle, USC_Bitstream *in, USC_PCMStream *out);
static USC_Status GetOutStreamSize(const USC_Option *options, int bitrate, int nbytesSrc, int *nbytesDst);
static USC_Status SetFrameSize(const USC_Option *options, USC_Handle handle, int frameSize);

#define BITSTREAM_SIZE  80
#define G711_NUM_RATES  1
#define G711_SPEECH_FRAME         80
#define G711_BITS_PER_SAMPLE      16
#define G711_SAMPLE_FREQUENCE     8000

typedef struct {
    int   direction;
    int   pf;
    int   vad;
    int   law;        /* 0 - pcm, 1 - aLaw, 2 -muLaw */
} G711_Handle_Header;

/* global usc vector table */

USC_Fxns USC_G711A_Fxns=
{
   {
      USC_Codec,
      GetInfoA,
      NumAlloc,
      MemAlloc,
      InitA,
      ReinitA,
      ControlA
   },
   Encode,
   Decode,
   GetOutStreamSize,
   SetFrameSize

 };


USC_Fxns USC_G711U_Fxns=
{
   {
      USC_Codec,
      GetInfoU,
      NumAlloc,
      MemAlloc,
      InitU,
      ReinitU,
      ControlU
   },
   Encode,
   Decode,
   GetOutStreamSize,
   SetFrameSize
};

static __ALIGN32 CONST USC_Rates pTblRates_G711[G711_NUM_RATES]={
    {64000}
};
static USC_Status GetInfoA(USC_Handle handle, USC_CodecInfo *pInfo)
{
    G711_Handle_Header *g711_header;
    pInfo->name = "G711A";
    pInfo->framesize = G711_SPEECH_FRAME*sizeof(short);
    if (handle == NULL) {
        pInfo->params.direction = 0;
        pInfo->params.law = G711_ALAW_CODEC;
        pInfo->params.modes.bitrate = 64000;
        pInfo->params.modes.vad = 1;
        pInfo->params.modes.pf = 1;
    } else {
        g711_header = (G711_Handle_Header*)handle;
        pInfo->params.direction = g711_header->direction;
        pInfo->params.law = g711_header->law;
        pInfo->params.modes.vad = g711_header->vad;
        pInfo->params.modes.pf = g711_header->pf;
    }
    pInfo->maxbitsize = BITSTREAM_SIZE;
    pInfo->pcmType.sample_frequency = G711_SAMPLE_FREQUENCE;
    pInfo->pcmType.bitPerSample = G711_BITS_PER_SAMPLE;
    pInfo->params.modes.truncate = 0;
    pInfo->params.modes.hpf = 0;
    pInfo->nRates = G711_NUM_RATES;
    pInfo->pRateTbl = (const USC_Rates *)&pTblRates_G711;

    return USC_NoError;
}

static USC_Status GetInfoU(USC_Handle handle, USC_CodecInfo *pInfo)
{
    G711_Handle_Header *g711_header;
    pInfo->name = "G711U";
    pInfo->framesize = G711_SPEECH_FRAME*sizeof(short);
    if (handle == NULL) {
        pInfo->params.direction = 0;
        pInfo->params.law = G711_ALAW_CODEC;
        pInfo->params.modes.bitrate = 64000;
        pInfo->params.modes.vad = 1;
         pInfo->params.modes.pf = 1;
    } else {
        g711_header = (G711_Handle_Header*)handle;
        pInfo->params.direction = g711_header->direction;
        pInfo->params.law = g711_header->law;
        pInfo->params.modes.vad = g711_header->vad;
        pInfo->params.modes.pf = g711_header->pf;
    }
    pInfo->maxbitsize = BITSTREAM_SIZE;
    pInfo->pcmType.sample_frequency = G711_SAMPLE_FREQUENCE;
    pInfo->pcmType.bitPerSample = G711_BITS_PER_SAMPLE;
    pInfo->params.modes.truncate = 0;
    pInfo->params.modes.hpf = 0;
    pInfo->nRates = G711_NUM_RATES;
    pInfo->pRateTbl = (const USC_Rates *)&pTblRates_G711;

    return USC_NoError;
}

static USC_Status NumAlloc(const USC_Option *options, int *nbanks)
{
   if(options==NULL) return USC_BadDataPointer;
   if(nbanks==NULL) return USC_BadDataPointer;

   *nbanks = 1;
   return USC_NoError;
}

static USC_Status MemAlloc(const USC_Option *options, USC_MemBank *pBanks)
{
   unsigned int nbytes;

   if(options==NULL) return USC_BadDataPointer;
   if(pBanks==NULL) return USC_BadDataPointer;

   pBanks->pMem = NULL;
   if (options->direction == 0) { /* encode only */
      apiG711Encoder_Alloc(&nbytes);
      pBanks->nbytes = nbytes+sizeof(G711_Handle_Header); /* include direction in handle */
   } else if (options->direction == 1) { /* decode only */
      apiG711Decoder_Alloc(&nbytes);
      pBanks->nbytes = nbytes+sizeof(G711_Handle_Header); /* include direction in handle */
   } else {
      return USC_NoOperation;
   }
   return USC_NoError;
}

static USC_Status InitA(const USC_Option *options, const USC_MemBank *pBanks, USC_Handle *handle)
{
   G711_Handle_Header *g711_header;

   if(options==NULL) return USC_BadDataPointer;
   if(pBanks==NULL) return USC_BadDataPointer;
   if(handle==NULL) return USC_BadDataPointer;
   if(pBanks->pMem==NULL) return USC_NotInitialized;
   if(pBanks->nbytes<=0) return USC_NotInitialized;
   if(options->modes.vad > 1) return USC_UnsupportedVADType;

   *handle = (USC_Handle*)pBanks->pMem;
   g711_header = (G711_Handle_Header*)*handle;
   g711_header->direction = options->direction;
   g711_header->law = G711_ALAW_CODEC;
   g711_header->vad = options->modes.vad;
   g711_header->pf = options->modes.pf;

   if (options->direction == 0) { /* encode only */
      G711Encoder_Obj *EncObj = (G711Encoder_Obj *)((char*)*handle + sizeof(G711_Handle_Header));
      apiG711Encoder_Init((G711Encoder_Obj*)EncObj,
            (G711Codec_Type)G711_ALAW_CODEC,(G711Encode_Mode)options->modes.vad);
   } else if (options->direction == 1) { /* decode only */
      G711Decoder_Obj *DecObj = (G711Decoder_Obj *)((char*)*handle + sizeof(G711_Handle_Header));
      apiG711Decoder_Init((G711Decoder_Obj*)DecObj,
            (G711Codec_Type)G711_ALAW_CODEC);
      apiG711Decoder_Mode(DecObj, g711_header->pf);
   } else {
      return USC_NoOperation;
   }
   return USC_NoError;
}
static USC_Status InitU(const USC_Option *options, const USC_MemBank *pBanks, USC_Handle *handle)
{
   G711_Handle_Header *g711_header;

   if(options==NULL) return USC_BadDataPointer;
   if(pBanks==NULL) return USC_BadDataPointer;
   if(handle==NULL) return USC_BadDataPointer;
   if(pBanks->pMem==NULL) return USC_NotInitialized;
   if(pBanks->nbytes<=0) return USC_NotInitialized;
   if(options->modes.vad > 1) return USC_UnsupportedVADType;

   *handle = (USC_Handle*)pBanks->pMem;
   g711_header = (G711_Handle_Header*)*handle;
   g711_header->direction = options->direction;
   g711_header->law = G711_MULAW_CODEC;
   g711_header->vad = options->modes.vad;
   g711_header->pf = options->modes.pf;

   if (options->direction == 0) { /* encode only */
      G711Encoder_Obj *EncObj = (G711Encoder_Obj *)((char*)*handle + sizeof(G711_Handle_Header));
      apiG711Encoder_Init((G711Encoder_Obj*)EncObj,
            (G711Codec_Type)G711_MULAW_CODEC,(G711Encode_Mode)options->modes.vad);
   }
   else if (options->direction == 1) { /* decode only */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩精品久久久久| 日韩国产成人精品| 久久伊人蜜桃av一区二区| 欧美三级视频在线观看| 在线欧美日韩国产| 91蝌蚪porny九色| 99久久99久久免费精品蜜臀| 成人一区二区视频| 粉嫩av一区二区三区在线播放 | 国产日韩欧美a| www久久久久| 久久天堂av综合合色蜜桃网| 日韩欧美在线1卡| 精品福利二区三区| 久久男人中文字幕资源站| 久久久久久电影| 国产精品成人午夜| 尤物av一区二区| 亚洲成av人片一区二区梦乃| 日韩精品三区四区| 久久成人久久鬼色| 国产乱一区二区| 99久久精品国产一区| 一本大道综合伊人精品热热| 欧美欧美欧美欧美| 亚洲人123区| 天堂在线一区二区| 极品少妇xxxx精品少妇| 成人在线视频一区二区| 91亚洲精品一区二区乱码| 欧美影片第一页| 日韩写真欧美这视频| 日本一区二区三区四区在线视频 | 亚洲主播在线观看| 老司机免费视频一区二区| 国产精品一区二区久激情瑜伽 | 日韩欧美不卡在线观看视频| 久久综合久久综合亚洲| 亚洲色图制服诱惑| 蜜臀久久99精品久久久久久9| 韩日精品视频一区| 色素色在线综合| 欧美www视频| 亚洲精品久久久蜜桃| 六月丁香综合在线视频| 99精品桃花视频在线观看| 欧美精品亚洲二区| 欧美激情综合在线| 午夜电影网一区| 丁香天五香天堂综合| 欧美日韩在线观看一区二区| 久久综合久色欧美综合狠狠| 亚洲午夜激情网页| 国产成人丝袜美腿| 欧美精品一卡两卡| 成人欧美一区二区三区黑人麻豆| 三级欧美韩日大片在线看| 国产91对白在线观看九色| 欧美麻豆精品久久久久久| 久久久www成人免费无遮挡大片| 尤物视频一区二区| 国产成人福利片| 欧美精选一区二区| 国产精品入口麻豆原神| 久久精品国产秦先生| 色婷婷av久久久久久久| 久久久国产精华| 日韩av电影天堂| 色综合久久中文综合久久97| www国产精品av| 亚洲sss视频在线视频| 成人av电影观看| 欧美zozo另类异族| 首页综合国产亚洲丝袜| 成人av电影免费在线播放| 精品女同一区二区| 日韩精品欧美精品| 欧美午夜宅男影院| 国产精品国产三级国产| 国产乱码精品一区二区三区五月婷| 欧美视频一区二区| 亚洲天堂成人在线观看| 国产91在线|亚洲| 精品国产123| 麻豆视频观看网址久久| 欧美久久久久久久久久| 亚洲综合色视频| 91一区一区三区| 亚洲欧洲99久久| 大胆亚洲人体视频| 国产农村妇女毛片精品久久麻豆 | 在线精品视频一区二区| 国产精品每日更新在线播放网址 | 精品国产污污免费网站入口| 日韩精品电影在线| 欧美精选一区二区| 亚洲mv在线观看| 欧美色老头old∨ideo| 一区二区三区在线免费播放| 99久久久国产精品免费蜜臀| 国产精品毛片大码女人| 成人免费高清视频| 中文字幕欧美激情| 99这里都是精品| 亚洲欧洲日产国产综合网| 国产自产2019最新不卡| 精品国产一区二区三区av性色| 精品一区二区三区免费| 日韩一区二区影院| 国产91丝袜在线观看| 国产视频一区二区在线| 国产一区二区伦理片| 久久综合丝袜日本网| 国产一区二区剧情av在线| 精品国产乱码久久久久久闺蜜| 国产一区视频导航| 国产欧美日韩另类视频免费观看| 狠狠色丁香久久婷婷综| 久久久国际精品| 菠萝蜜视频在线观看一区| 国产精品水嫩水嫩| 色综合天天性综合| 中文字幕在线一区免费| 麻豆久久久久久| 欧美日韩在线播放三区四区| 亚洲综合色网站| 欧美一区二区在线视频| 一区二区三区精品| 欧美一级xxx| 国产精品99久久久| 亚洲欧美日韩国产另类专区| 91在线小视频| 亚洲成av人影院| 日韩亚洲欧美一区| 成人午夜av影视| 亚洲最色的网站| 欧美一二区视频| 国产成人激情av| 亚洲综合在线五月| 日韩一卡二卡三卡| 成人午夜看片网址| 亚洲成人综合网站| 久久综合色天天久久综合图片| 91在线免费视频观看| 亚洲444eee在线观看| 精品裸体舞一区二区三区| 成人app网站| 午夜精品影院在线观看| 久久久不卡网国产精品二区| 色婷婷av一区二区| 国产自产v一区二区三区c| 亚洲精品日韩综合观看成人91| 欧美一级爆毛片| 91免费观看国产| 麻豆国产精品视频| 综合久久久久综合| 日韩一本二本av| 91啪在线观看| 国产在线一区观看| 亚洲一区二区三区爽爽爽爽爽 | 国产精品免费视频观看| 欧美嫩在线观看| 成人短视频下载| 麻豆91免费看| 亚洲综合色网站| 日本一区二区综合亚洲| 91精品国产色综合久久久蜜香臀| av电影在线观看一区| 久久国产精品一区二区| 中文字幕亚洲视频| 久久先锋资源网| 欧美日本国产视频| 9色porny自拍视频一区二区| 久久成人18免费观看| 一区二区免费视频| 国产精品久久久久久一区二区三区| 日韩丝袜美女视频| 在线视频观看一区| 成人午夜电影网站| 国产在线精品免费av| 日产精品久久久久久久性色| 一区二区在线观看不卡| 国产精品入口麻豆原神| 精品国产一二三区| 欧美一二三四在线| 欧美精品久久一区| 色欧美日韩亚洲| 99久久久久免费精品国产| 国产成人综合网站| 激情亚洲综合在线| 美女视频一区二区| 亚洲成av人片一区二区梦乃| 樱桃国产成人精品视频| 国产精品理论在线观看| 久久嫩草精品久久久精品| 欧美成人艳星乳罩| 在线成人av影院| 3d动漫精品啪啪| 欧美精品久久天天躁| 欧美日韩中文国产|