blob: 7cbb6afbc4dc3ca070acbd91f2d959cdefe0fbd7 [file] [log] [blame]
/**************************************************************************
*
* Copyright (c) 2012 ZTE Corporation.
*
***************************************************************************
* Ä£ ¿é Ãû :
* ÎÄ ¼þ Ãû :
* Ïà¹ØÎļþ :
* ʵÏÖ¹¦ÄÜ :
* ×÷ Õß :
* °æ ±¾ :
* Íê³ÉÈÕÆÚ :
* ÆäËü˵Ã÷ :
**************************************************************************/
/**************************************************************************
* Ð޸ļǼ
**************************************************************************/
/**************************************************************************
* Ð޸ıàºÅ :
* ÐÞ ¸Ä ÈË :
* ÐÞ¸ÄÈÕÆÚ :
* ÐÞ¸ÄÄÚÈÝ :
**************************************************************************/
#ifndef _MMP_AMR_API_H
#define _MMP_AMR_API_H
/**************************************************************************
* #includeÇø
**************************************************************************/
#include"oss_api.h"
#ifdef __cplusplus
extern "C" {
#endif
/**************************************************************************
* ºê¶¨ÒåÇø
**************************************************************************/
#define ZAMR_ERROR (0)
#define ZAMR_SUCCESS (1)
/**************************************************************************
* Êý¾Ý½á¹¹¶¨ÒåÇø
**************************************************************************/
typedef enum
{
ZMMP_AMR_ENC_MODE_0, /* NB:4.75 kbit/s, WB:6.60 kbit/s */
ZMMP_AMR_ENC_MODE_1, /* NB:5.15 kbit/s, WB:8.85 kbit/s */
ZMMP_AMR_ENC_MODE_2, /* NB:5.90 kbit/s, WB:12.65 kbit/s */
ZMMP_AMR_ENC_MODE_3, /* NB:6.70 kbit/s, WB:14.25 kbit/s */
ZMMP_AMR_ENC_MODE_4, /* NB:7.40 kbit/s, WB:15.85 kbit/s */
ZMMP_AMR_ENC_MODE_5, /* NB:7.95 kbit/s, WB:18.25 kbit/s */
ZMMP_AMR_ENC_MODE_6, /* NB:10.2 kbit/s, WB:19.85 kbit/s */
ZMMP_AMR_ENC_MODE_7, /* NB:12.2 kbit/s, WB:23.05 kbit/s */
ZMMP_AMR_ENC_MODE_8, /* NB:DTX, WB:23.85 kbit/s */
ZMMP_AMR_ENC_MODE_9, /* NB:ÎÞЧ, WB:DTX */
ZMMP_AMR_ENC_MODE_INVALID /* NB:ÎÞЧ, WB:ÎÞЧ */
}T_zMmp_AmrEncMode;
/**************************************************************************
* º¯ÊýÉùÃ÷Çø
**************************************************************************/
/**************************************************************************
* ¹¦ÄÜÃèÊö: ´ò¿ªAMR½âÂëÆ÷
* ²ÎÊý˵Ã÷:
* (´«Èë²ÎÊý) ÎÞ
* (´«³ö²ÎÊý) ÎÞ
* ·µ »Ø Öµ: AMR½âÂëÆ÷ÉÏÏÂÎÄ,NULLΪ´ò¿ª½âÂëÆ÷ʧ°Ü
* ÆäËü˵Ã÷: ÎÞ
**************************************************************************/
VOID* zMmp_AmrDecOpen(VOID);
/**************************************************************************
* ¹¦ÄÜÃèÊö: ´ò¿ªAMR±àÂëÆ÷
* ²ÎÊý˵Ã÷:
* (´«Èë²ÎÊý) isDtxEnable: FALSE:²»Ö§³Ödtx£¬TRUE:Ö§³Ödtx
* (´«³ö²ÎÊý) ÎÞ
* ·µ »Ø Öµ: AMR±àÂëÆ÷ÉÏÏÂÎÄ£¬NULLΪ´ò¿ª±àÂëÆ÷ʧ°Ü
* ÆäËü˵Ã÷: ÎÞ
**************************************************************************/
VOID* zMmp_AmrEncOpen(BOOL isDtxEnable);
/**************************************************************************
* ¹¦ÄÜÃèÊö: ½âÒ»Ö¡AMRÊý¾Ý
* ²ÎÊý˵Ã÷:
* (´«Èë²ÎÊý) pCodecContext: AMR½âÂëÉÏÏÂÎÄ
pAmr: ÊäÈëAMRÊý¾ÝÆðʼµØÖ· ,¿Õ¼ä×îÉÙ17¸ö°ë×Ö(16 + 1(¹Ì¶¨0x2))
* (´«³ö²ÎÊý) pPcm: Êä³öPCMÊý¾ÝÆðʼµØÖ· ,¿Õ¼ä×îÉÙ160¸ö°ë×Ö
* ·µ »Ø Öµ: ZAMR_ERROR (0)
ZAMR_SUCCESS (1)
* ÆäËü˵Ã÷: ÎÞ
**************************************************************************/
UINT16 zMmp_AmrDecode(VOID *pCodecContext, const UINT16 *pAmr, UINT16 *pPcm);
/**************************************************************************
* ¹¦ÄÜÃèÊö: ±àÒ»Ö¡PCMÊý¾Ý
* ²ÎÊý˵Ã÷:
* (´«Èë²ÎÊý) pCodecContext: AMR±àÂëÉÏÏÂÎÄ
mode: ±àÂëģʽ
pPcm: PCMÊý¾ÝÆðʼµØÖ· ,¿Õ¼ä×îÉÙ160¸ö°ë×Ö
* (´«³ö²ÎÊý) pAmr: Êä³öAMRÊý¾ÝÆðʼµØÖ·,¿Õ¼ä×îÉÙ17¸ö°ë×Ö(16 + 1(¹Ì¶¨0x2))
* ·µ »Ø Öµ: ZAMR_ERROR (0)
ZAMR_SUCCESS (1)
* ÆäËü˵Ã÷: ÎÞ
**************************************************************************/
UINT16 zMmp_AmrEncode(VOID *pCodecContext, T_zMmp_AmrEncMode mode, const UINT16 *pPcm, UINT16 *pAmr);
/**************************************************************************
* ¹¦ÄÜÃèÊö: ¹Ø±Õ½âÂëÆ÷
* ²ÎÊý˵Ã÷:
* (´«Èë²ÎÊý) pCodecContext: AMR½âÂëÉÏÏÂÎÄ
* (´«³ö²ÎÊý) ÎÞ
* ·µ »Ø Öµ: ÎÞ
* ÆäËü˵Ã÷: ÎÞ
**************************************************************************/
VOID zMmp_AmrDecClose(VOID *pCodecContext);
/**************************************************************************
* ¹¦ÄÜÃèÊö: ¹Ø±Õ±àÂëÆ÷
* ²ÎÊý˵Ã÷:
* (´«Èë²ÎÊý) pCodecContext: AMR±àÂëÉÏÏÂÎÄ
* (´«³ö²ÎÊý) ÎÞ
* ·µ »Ø Öµ: ÎÞ
* ÆäËü˵Ã÷: ÎÞ
**************************************************************************/
VOID zMmp_AmrEncClose(VOID *pCodecContext);
/**************************************************************************
* È«¾Ö³£Á¿/±äÁ¿ÉùÃ÷Çø
**************************************************************************/
#ifdef __cplusplus
}
#endif
#endif