⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gsmamr_enc.h

📁 实现3GPP的GSM中AMR语音的CODECS。
💻 H
字号:
/* ------------------------------------------------------------------ * Copyright (C) 2008 PacketVideo * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. * See the License for the specific language governing permissions * and limitations under the License. * ------------------------------------------------------------------- *//****************************************************************************************Portions of this file are derived from the following 3GPP standard:    3GPP TS 26.073    ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec    Available from http://www.3gpp.org(C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC)Permission to distribute, modify and use this file under the standard licenseterms listed above has been obtained from the copyright holder.****************************************************************************************//*------------------------------------------------------------------------------ Filename: /audio/gsm-amr/c/include/gsmamr_enc.h     Date: 09/26/2001------------------------------------------------------------------------------ REVISION HISTORY Description: Changing code as per review comments. These changes include              removing unnecessary tables and changing function descriptions.              The comments were changed to "slash-star" rather than double              slash, and some wordings of comments were corrected. Description: Replaced GSMEncodeFrame function prototype with that of              AMREncode. Updated copyright year. Description: Added #define for WMF and IF2, and updated function prototype              of AMREncode. Description: Renamed WMF and IF2 to AMR_WMF and AMR_IF2, respectively. Added              AMR_ETS, and changed output_type to output_format in the              function prototype of AMREncode(). Removed function prototypes              for frame_header_move() and reverse_bits() since they are not              needed anymore. Description: Moved WMFBytesUsed and IF2BytesUsed tables to              enc_output_format_tab.c. Description: Added function prototypes for init, reset, and exit functions              in amrencode.c. Renamed output format #defines so that it it              unique to the encoder. Description: Added comment to describe L_FRAME. Description: Added Frame_Type_3GPP type definition. Description: Moved _cplusplus #ifdef after Include section. Description:------------------------------------------------------------------------------ INCLUDE DESCRIPTION This header contains all the necessary information needed to use the GSM AMR encoder library.------------------------------------------------------------------------------*/#ifndef _GSMAMR_ENC_H_#define _GSMAMR_ENC_H_/*----------------------------------------------------------------------------; INCLUDES----------------------------------------------------------------------------*/#include "gsm_amr_typedefs.h"/*--------------------------------------------------------------------------*/#ifdef __cplusplusextern "C"{#endif    /*----------------------------------------------------------------------------    ; MACROS    ----------------------------------------------------------------------------*/    /*----------------------------------------------------------------------------    ; DEFINES    ----------------------------------------------------------------------------*/    /* Number of 13-bit linear PCM samples per 20 ms frame */    /* L_FRAME = (8 kHz) * (20 msec) = 160 samples         */#define L_FRAME     160    /* Output format types */#define AMR_TX_WMF  0#define AMR_TX_IF2  1#define AMR_TX_ETS  2    /*----------------------------------------------------------------------------    ; EXTERNAL VARIABLES REFERENCES    ----------------------------------------------------------------------------*/    /*----------------------------------------------------------------------------    ; SIMPLE TYPEDEF'S    ----------------------------------------------------------------------------*/    /*----------------------------------------------------------------------------    ; ENUMERATED TYPEDEF'S    ----------------------------------------------------------------------------*/    enum Mode    {        MR475 = 0,/* 4.75 kbps */        MR515,    /* 5.15 kbps */        MR59,     /* 5.90 kbps */        MR67,     /* 6.70 kbps */        MR74,     /* 7.40 kbps */        MR795,    /* 7.95 kbps */        MR102,    /* 10.2 kbps */        MR122,    /* 12.2 kbps */        MRDTX,    /* DTX       */        N_MODES   /* Not Used  */    };    enum Frame_Type_3GPP    {        AMR_475 = 0,        /* 4.75 kbps    */        AMR_515,            /* 5.15 kbps    */        AMR_59,             /* 5.9 kbps     */        AMR_67,             /* 6.7 kbps     */        AMR_74,             /* 7.4 kbps     */        AMR_795,            /* 7.95 kbps    */        AMR_102,            /* 10.2 kbps    */        AMR_122,            /* 12.2 kbps    */        AMR_SID,            /* GSM AMR DTX  */        GSM_EFR_SID,        /* GSM EFR DTX  */        TDMA_EFR_SID,       /* TDMA EFR DTX */        PDC_EFR_SID,        /* PDC EFR DTX  */        FOR_FUTURE_USE1,    /* Unused 1     */        FOR_FUTURE_USE2,    /* Unused 2     */        FOR_FUTURE_USE3,    /* Unused 3     */        AMR_NO_DATA         /* No data      */    };    /*----------------------------------------------------------------------------    ; STRUCTURES TYPEDEF'S    ----------------------------------------------------------------------------*/    /*----------------------------------------------------------------------------    ; GLOBAL FUNCTION DEFINITIONS    ----------------------------------------------------------------------------*/    /* AMREncodeInit initializes the GSM AMR Encoder library by calling     * GSMInitEncode and sid_sync_init. If initialization was successful,     * init_status is set to zero, otherwise, it is set to -1.    */    int AMREncodeInit(        void **pEncStructure,        void **pSidSyncStructure,        Flag dtx_enable);    /* AMREncodeReset resets the state memory used by the Encoder and SID sync     * function. If reset was successful, reset_status is set to zero, otherwise,     * it is set to -1.    */    int AMREncodeReset(        void *pEncStructure,        void *pSidSyncStructure);    /* AMREncodeExit frees up the state memory used by the Encoder and SID     * synchronization function.    */    void AMREncodeExit(        void **pEncStructure,        void **pSidSyncStructure);    /*     * AMREncode is the entry point to the ETS Encoder library that encodes the raw     * data speech bits and converts the encoded bitstream into either an IF2-     * formatted bitstream, WMF-formatted bitstream, or ETS-formatted bitstream,     * depending on the the value of output_format. A zero is returned on success.     */    int AMREncode(        void *pEncState,        void *pSidSyncState,        enum Mode mode,        Word16 *pEncInput,        unsigned char *pEncOutput,        enum Frame_Type_3GPP *p3gpp_frame_type,        Word16 output_format    );#ifdef __cplusplus}#endif#endif  /* _GSMAMR_DEC_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -