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

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

?? interf_enc.c

?? FIXPOINT
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/*
 * ===================================================================
 *  TS 26.104
 *  REL-5 V5.4.0 2004-03
 *  REL-6 V6.1.0 2004-03
 *  3GPP AMR Floating-point Speech Codec
 * ===================================================================
 *
 */

/*
 * interf_enc.c
 *
 *
 * Project:
 *    AMR Floating-Point Codec
 *
 * Contains:
 *    This module contains all the functions needed encoding 160
 *    16-bit speech samples to AMR encoder parameters.
 *
 */

/*
 * include files
 */
#include <stdlib.h>
#include <stdio.h>
//#include <memory.h>
#include <string.h>
#include "sp_enc.h"
#include "interf_rom.h"

#define TX_SPEECH_GOOD		0
#define TX_SID_FIRST		1
#define TX_SID_UPDATE		2
#define TX_NO_DATA			3
#define TX_SPEECH_DEGRADED	4
#define TX_SPEECH_BAD		5
#define TX_SID_BAD			6
#define TX_ONSET			7
#define TX_N_FRAMETYPES		8

/*
 * Declare structure types
 */
/* Declaration transmitted frame types */
//enum TXFrameType { TX_SPEECH_GOOD = 0,
//                   TX_SID_FIRST,
//                   TX_SID_UPDATE,
//                   TX_NO_DATA,
//                   TX_SPEECH_DEGRADED,
//                   TX_SPEECH_BAD,
//                   TX_SID_BAD,
//                   TX_ONSET,
//                   TX_N_FRAMETYPES     /* number of frame types */
//};

/* Declaration of interface structure */
typedef struct
{
   Word16 sid_update_counter;   /* Number of frames since last SID */
   Word16 sid_handover_debt;   /* Number of extra SID_UPD frames to schedule */
   Word32 dtx;
   int prev_ft;   /* Type of the previous frame */
   void *encoderState;   /* Points encoder state structure */
} enc_interface_State;


#ifdef ETSI
/*
 * Prm2Bits
 *
 *
 * Parameters:
 *    value             I: value to be converted to binary
 *    no_of_bits        I: number of bits associated with value
 *    bitstream         O: address where bits are written
 *
 * Function:
 *    Convert integer to binary and write the bits to the array.
 *    The most significant bits are written first.
 * Returns:
 *    void
 */
static void Int2Bin( Word16 value, Word16 no_of_bits, Word16 *bitstream )
{
   Word32 i, bit;
   Word16 *pt_bitstream;

   pt_bitstream = &bitstream[no_of_bits];

   for ( i = 0; i < no_of_bits; i++ ) {
      bit = value & 0x0001;

      if ( bit == 0 ) {
         * --pt_bitstream = 0;
      }
      else {
         * --pt_bitstream = 1;
      }
      value = ( Word16 )( value >> 1 );
   }
}


/*
 * Prm2Bits
 *
 *
 * Parameters:
 *    mode              I: AMR mode
 *    prm               I: analysis parameters
 *    bits              O: serial bits
 *
 * Function:
 *    converts the encoder parameter vector into a vector of serial bits.
 * Returns:
 *    void
 */
static void Prm2Bits(int mode, Word16 prm[], Word16 bits[] )
{
   Word32 i;

   switch ( mode ) {
      case MR122:
         for ( i = 0; i < PRMNO_MR122; i++ ) {
            Int2Bin( prm[i], bitno_MR122[i], bits );
            bits += bitno_MR122[i];
         }
         break;

      case MR102:
         for ( i = 0; i < PRMNO_MR102; i++ ) {
            Int2Bin( prm[i], bitno_MR102[i], bits );
            bits += bitno_MR102[i];
         }
         break;

      case MR795:
         for ( i = 0; i < PRMNO_MR795; i++ ) {
            Int2Bin( prm[i], bitno_MR795[i], bits );
            bits += bitno_MR795[i];
         }
         break;

      case MR74:
         for ( i = 0; i < PRMNO_MR74; i++ ) {
            Int2Bin( prm[i], bitno_MR74[i], bits );
            bits += bitno_MR74[i];
         }
         break;

      case MR67:
         for ( i = 0; i < PRMNO_MR67; i++ ) {
            Int2Bin( prm[i], bitno_MR67[i], bits );
            bits += bitno_MR67[i];
         }
         break;

      case MR59:
         for ( i = 0; i < PRMNO_MR59; i++ ) {
            Int2Bin( prm[i], bitno_MR59[i], bits );
            bits += bitno_MR59[i];
         }
         break;

      case MR515:
         for ( i = 0; i < PRMNO_MR515; i++ ) {
            Int2Bin( prm[i], bitno_MR515[i], bits );
            bits += bitno_MR515[i];
         }
         break;

      case MR475:
         for ( i = 0; i < PRMNO_MR475; i++ ) {
            Int2Bin( prm[i], bitno_MR475[i], bits );
            bits += bitno_MR475[i];
         }
         break;

      case MRDTX:
         for ( i = 0; i < PRMNO_MRDTX; i++ ) {
            Int2Bin( prm[i], bitno_MRDTX[i], bits );
            bits += bitno_MRDTX[i];
         }
         break;
   }
   return;
}

#else

#ifndef IF2

/*
 * EncoderMMS
 *
 *
 * Parameters:
 *    mode                 I: AMR mode
 *    param                I: Encoder output parameters
 *    stream               O: packed speech frame
 *    frame_type           I: frame type (DTX)
 *    speech_mode          I: speech mode (DTX)
 *
 * Function:
 *    Pack encoder output parameters to octet structure according
 *    importance table and AMR file storage format according to
 *    RFC 3267.
 * Returns:
 *    number of octets
 */
static int EncoderMMS(int mode, Word16 *param, UWord8 *stream, int frame_type, int speech_mode )
{
   Word32 j = 0, k;
   Word16 *mask;

   memset(stream, 0, block_size[mode]);

   *stream = toc_byte[mode];
   stream++;

   if ( mode == 15 ) {
      return 1;
   }
   else if ( mode == MRDTX ) {
      mask = order_MRDTX;

      for ( j = 1; j < 36; j++ ) {
         if ( param[ * mask] & *( mask + 1 ) )
            *stream += 0x01;
         mask += 2;

         if ( j % 8 )
            *stream <<= 1;
         else
            stream++;
      }

      /* add SID type information */
      if ( frame_type == TX_SID_UPDATE )
         *stream += 0x01;
      *stream <<= 3;

      /* speech mode indication */
      *stream += ( unsigned char )(speech_mode & 0x0007);

	  *stream <<= 1;

      /* don't shift at the end of the function */
      return 6;
   }
   else if ( mode == MR475 ) {
      mask = order_MR475;

      for ( j = 1; j < 96; j++ ) {
         if ( param[ * mask] & *( mask + 1 ) )
            *stream += 0x01;
         mask += 2;

         if ( j % 8 )
            *stream <<= 1;
         else
            stream++;
      }
   }
   else if ( mode == MR515 ) {
      mask = order_MR515;

      for ( j = 1; j < 104; j++ ) {
         if ( param[ * mask] & *( mask + 1 ) )
            *stream += 0x01;
         mask += 2;

         if ( j % 8 )
            *stream <<= 1;
         else
            stream++;
      }
   }
   else if ( mode == MR59 ) {
      mask = order_MR59;

      for ( j = 1; j < 119; j++ ) {
         if ( param[ * mask] & *( mask + 1 ) )
            *stream += 0x01;
         mask += 2;

         if ( j % 8 )
            *stream <<= 1;
         else
            stream++;
      }
   }
   else if ( mode == MR67 ) {
      mask = order_MR67;

      for ( j = 1; j < 135; j++ ) {
         if ( param[ * mask] & *( mask + 1 ) )
            *stream += 0x01;
         mask += 2;

         if ( j % 8 )
            *stream <<= 1;
         else
            stream++;
      }
   }
   else if ( mode == MR74 ) {
      mask = order_MR74;

      for ( j = 1; j < 149; j++ ) {
         if ( param[ * mask] & *( mask + 1 ) )
            *stream += 0x01;
         mask += 2;

         if ( j % 8 )
            *stream <<= 1;
         else
            stream++;
      }
   }
   else if ( mode == MR795 ) {
      mask = order_MR795;

      for ( j = 1; j < 160; j++ ) {
         if ( param[ * mask] & *( mask + 1 ) )
            *stream += 0x01;
         mask += 2;

         if ( j % 8 )
            *stream <<= 1;
         else
            stream++;
      }
   }
   else if ( mode == MR102 ) {
      mask = order_MR102;

      for ( j = 1; j < 205; j++ ) {
         if ( param[ * mask] & *( mask + 1 ) )
            *stream += 0x01;
         mask += 2;

         if ( j % 8 )
            *stream <<= 1;
         else
            stream++;
      }
   }
   else if ( mode == MR122 ) {
      mask = order_MR122;

      for ( j = 1; j < 245; j++ ) {
         if ( param[ * mask] & *( mask + 1 ) )
            *stream += 0x01;
         mask += 2;

         if ( j % 8 )
            *stream <<= 1;
         else
            stream++;
      }
   }

   /* shift remaining bits */
   if ( k = j % 8 )	*stream <<= ( 8 - k );
   return( (int)block_size[mode] );
}

#else

/*
 * Encoder3GPP
 *
 *
 * Parameters:
 *    mode                 I: AMR mode
 *    param                I: Encoder output parameters
 *    stream               O: packed speech frame
 *    frame_type           I: frame type (DTX)
 *    speech_mode          I: speech mode (DTX)
 *
 * Function:
 *    Pack encoder output parameters to octet structure according
 *    importance table.
 * Returns:
 *    number of octets
 */
static int Encoder3GPP(int mode, Word16 *param, UWord8 *stream, int frame_type, int speech_mode )
{
   Word32 j = 0;
   Word16 *mask;

   memset(stream, 0, block_size[mode]);

   if ( mode == 15 ) {
      *stream = 0xF;
      return 1;
   }
   else if ( mode == MRDTX ) {
      mask = order_MRDTX;
      *stream = 0x40;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成小说网站色在线 | 日韩精品最新网址| 国产成人综合在线播放| 亚洲午夜av在线| 亚洲欧美综合另类在线卡通| 欧美一级一级性生活免费录像| eeuss鲁片一区二区三区在线观看| 婷婷夜色潮精品综合在线| 国产蜜臀av在线一区二区三区| 91麻豆精品国产91久久久久| 91在线国内视频| 国产精品一区二区三区99| 日韩av一级片| 亚洲一区二区三区免费视频| 一区在线观看免费| 久久综合久久综合久久综合| 欧美精品第1页| 欧美视频日韩视频| 色婷婷综合久久| 91视频一区二区三区| 高清成人在线观看| 欧美性猛交一区二区三区精品| 成人性生交大片免费看中文| 久久爱www久久做| 蜜桃久久久久久久| 日本aⅴ亚洲精品中文乱码| 亚洲裸体xxx| 国产精品久久99| 国产精品成人免费| 国产精品天天摸av网| 国产色综合久久| 久久久久久久久久久99999| 精品日本一线二线三线不卡| 欧美一级国产精品| 日韩一区二区三区视频在线| 宅男噜噜噜66一区二区66| 欧美中文字幕一区二区三区| 欧美亚洲自拍偷拍| 欧美视频精品在线观看| 欧美日韩五月天| 7777精品久久久大香线蕉| 欧美精品自拍偷拍| 日韩一区和二区| 欧美精品一区二区三区在线| 精品国产一区二区三区久久久蜜月 | 亚洲精品成人精品456| 亚洲丝袜另类动漫二区| 亚洲日穴在线视频| 一区二区三区在线观看动漫| 亚洲一二三区不卡| 午夜视频在线观看一区二区| 香港成人在线视频| 五月天精品一区二区三区| 免费成人小视频| 国内精品不卡在线| 国产69精品久久久久毛片| 99久久伊人久久99| 在线观看亚洲a| 欧美一区二区免费观在线| 日韩一区二区电影网| 久久女同互慰一区二区三区| 中文字幕一区二区三区在线不卡| 亚洲激情五月婷婷| 丝袜亚洲另类丝袜在线| 国内精品视频666| 91浏览器在线视频| 欧美精品tushy高清| 久久婷婷色综合| 亚洲欧洲制服丝袜| 日韩av成人高清| 国产白丝网站精品污在线入口| 一本久道久久综合中文字幕| 欧美精品免费视频| 国产三级精品三级| 亚洲一区在线视频| 国产在线精品一区二区夜色| 成人精品免费看| 中文字幕中文字幕一区二区 | 日本麻豆一区二区三区视频| 国内精品自线一区二区三区视频| 成人国产亚洲欧美成人综合网| 欧美无人高清视频在线观看| 精品国产欧美一区二区| 日韩美女啊v在线免费观看| 全国精品久久少妇| 99精品欧美一区二区三区综合在线| 3atv在线一区二区三区| 日本一区二区动态图| 亚洲成av人片观看| av一区二区三区| 精品欧美久久久| 一区二区三区在线免费| 国产黄色精品网站| 7777精品伊人久久久大香线蕉完整版 | 亚洲丝袜另类动漫二区| 男女视频一区二区| 92精品国产成人观看免费| xf在线a精品一区二区视频网站| 亚洲综合在线视频| 国产成人综合在线| 欧美成人高清电影在线| 亚洲一二三四区不卡| 国产91精品露脸国语对白| 欧美一级专区免费大片| 亚洲精品国产一区二区精华液 | 日韩一卡二卡三卡国产欧美| 又紧又大又爽精品一区二区| 国产成人精品免费视频网站| 日韩一区二区三区三四区视频在线观看 | 青青草伊人久久| 欧美视频中文字幕| 国产欧美精品在线观看| 免费成人结看片| 欧美精品日韩精品| 一级精品视频在线观看宜春院 | 成人动漫av在线| 国产亚洲人成网站| 精品亚洲aⅴ乱码一区二区三区| 欧美日韩精品免费观看视频| 亚洲视频你懂的| 成人久久久精品乱码一区二区三区 | 亚洲色图欧洲色图| 欧美一区二区人人喊爽| 综合自拍亚洲综合图不卡区| 日韩av午夜在线观看| 欧美韩国日本综合| 91日韩一区二区三区| 日韩视频在线观看一区二区| 国产欧美视频一区二区三区| 一区二区三区不卡视频在线观看| 日本在线不卡视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 色欧美片视频在线观看在线视频| 国产激情视频一区二区在线观看| 色狠狠一区二区| 久久久国产精品麻豆| 天天综合色天天综合色h| 成人动漫在线一区| 精品999在线播放| 水野朝阳av一区二区三区| 99久久婷婷国产精品综合| 精品国一区二区三区| 日韩成人伦理电影在线观看| 99久久综合色| 欧美高清在线一区二区| 奇米精品一区二区三区在线观看一| 在线视频欧美精品| 国产精品久久国产精麻豆99网站 | 久久综合久久综合九色| 亚洲曰韩产成在线| 91丨九色丨蝌蚪丨老版| 国产精品私房写真福利视频| 加勒比av一区二区| 欧美剧在线免费观看网站| 亚洲欧美日韩综合aⅴ视频| 粉嫩aⅴ一区二区三区四区五区| 精品国产91九色蝌蚪| 老司机免费视频一区二区 | 色哟哟精品一区| 中文字幕中文字幕在线一区 | 欧美aa在线视频| 欧美日韩免费不卡视频一区二区三区| 国产精品久久久久久久久免费丝袜 | 亚洲欧洲无码一区二区三区| 国产乱淫av一区二区三区| 欧美一区二区三区四区久久| 亚洲国产精品久久久男人的天堂| 91麻豆免费视频| 亚洲精品中文字幕乱码三区| 色av综合在线| 亚洲国产精品一区二区久久恐怖片 | 欧美日韩中文字幕一区二区| 亚洲女同ⅹxx女同tv| 91在线观看高清| 夜夜亚洲天天久久| 欧美日韩在线观看一区二区| 天堂va蜜桃一区二区三区 | 精品va天堂亚洲国产| 国内精品免费在线观看| 国产午夜精品一区二区三区嫩草| 丁香六月综合激情| ...中文天堂在线一区| 91福利在线播放| 午夜精品视频在线观看| 日韩三级免费观看| 国产不卡高清在线观看视频| 最近中文字幕一区二区三区| 91福利国产成人精品照片| 午夜精品久久久久久久久久 | 国产精品毛片无遮挡高清| av日韩在线网站| 亚洲国产欧美在线人成| 日韩午夜中文字幕| 国产剧情一区二区| 综合久久给合久久狠狠狠97色| 精品污污网站免费看| 久久不见久久见中文字幕免费| 国产欧美日韩视频一区二区| 在线免费观看一区| 激情综合色播激情啊|