4G_module/include/cmiot/cm_audio_common.h

127 lines
5.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @file cm_audio_common.h
* @brief Audio 通用接口
* @copyright Copyright © 2021 China Mobile IOT. All rights reserved.
* @author By WangPeng
* @date 2021/4/12
*
* @defgroup audio_common
* @ingroup audio_common
* @{
*/
#ifndef __OPENCPU_AUDIO_COMMON_H__
#define __OPENCPU_AUDIO_COMMON_H__
/****************************************************************************
* Included Files
****************************************************************************/
#include <stdint.h>
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/****************************************************************************
* Public Types
****************************************************************************/
/** 音频播放格式支持 */
typedef enum
{
CM_AUDIO_PLAY_FORMAT_PCM = 1, /*!< PCM格式 */
CM_AUDIO_PLAY_FORMAT_WAV, /*!< WAV格式 */
CM_AUDIO_PLAY_FORMAT_MP3 = 3, /*!< MP3格式 */
CM_AUDIO_PLAY_FORMAT_AMRNB, /*!< AMR-NB格式 */
#if 0
CM_AUDIO_PLAY_FORMAT_AMRWB, /*!< AMR-WB格式 */
CM_AUDIO_PLAY_FORMAT_FR, /*!< 预留,暂不支持 */
CM_AUDIO_PLAY_FORMAT_HR, /*!< 预留,暂不支持 */
CM_AUDIO_PLAY_FORMAT_EFR, /*!< 预留,暂不支持 */
CM_AUDIO_PLAY_FORMAT_AAC, /*!< 预留,暂不支持 */
CM_AUDIO_PLAY_FORMAT_MID, /*!< 预留,暂不支持 */
CM_AUDIO_PLAY_FORMAT_QTY, /*!< 预留,暂不支持 */
#endif
} cm_audio_play_format_e;
/** 音频录音格式支持 */
typedef enum
{
CM_AUDIO_RECORD_FORMAT_PCM = 1, /*!< PCM格式 */
#if 0
CM_AUDIO_RECORD_FORMAT_WAVPCM, /*!< WAV格式 */
CM_AUDIO_RECORD_FORMAT_MP3, /*!< MP3格式 */
#endif
CM_AUDIO_RECORD_FORMAT_AMRNB_475 = 4, /*!< 4.75 kbps AMR格式 */
CM_AUDIO_RECORD_FORMAT_AMRNB_515, /*!< 5.15 kbps AMR格式 */
CM_AUDIO_RECORD_FORMAT_AMRNB_590, /*!< 5.90 kbps AMR格式 */
CM_AUDIO_RECORD_FORMAT_AMRNB_670, /*!< 6.70 kbps AMR格式 */
CM_AUDIO_RECORD_FORMAT_AMRNB_740, /*!< 7.40 kbps AMR格式 */
CM_AUDIO_RECORD_FORMAT_AMRNB_795, /*!< 7.95 kbps AMR格式 */
CM_AUDIO_RECORD_FORMAT_AMRNB_1020, /*!< 10.20 kbps AMR格式 */
CM_AUDIO_RECORD_FORMAT_AMRNB_1220, /*!< 12.20 kbps AMR格式 */
#if 0
CM_AUDIO_RECORD_FORMAT_AMRWB_660, /*!< 6.60 kbps AWB格式 */
CM_AUDIO_RECORD_FORMAT_AMRWB_885, /*!< 8.85 kbps AWB格式 */
CM_AUDIO_RECORD_FORMAT_AMRWB_1265, /*!< 12.65 kbps AWB格式 */
CM_AUDIO_RECORD_FORMAT_AMRWB_1425, /*!< 14.25 kbps AWB格式 */
CM_AUDIO_RECORD_FORMAT_AMRWB_1585, /*!< 15.85 kbps AWB格式 */
CM_AUDIO_RECORD_FORMAT_AMRWB_1825, /*!< 18.25 kbps AWB格式 */
CM_AUDIO_RECORD_FORMAT_AMRWB_1985, /*!< 19.85 kbps AWB格式 */
CM_AUDIO_RECORD_FORMAT_AMRWB_2305, /*!< 23.05 kbps AWB格式 */
CM_AUDIO_RECORD_FORMAT_AMRWB_2385, /*!< 23.85 kbps AWB格式 */
#endif
} cm_audio_record_format_e;
/** PCM音频采样格式 */
typedef enum
{
CM_AUDIO_SAMPLE_FORMAT_8BIT = 1, /*!< 8位暂不开放请使用CM_AUDIO_SAMPLE_FORMAT_16BIT */
CM_AUDIO_SAMPLE_FORMAT_16BIT, /*!< 16位, 小端 */
CM_AUDIO_SAMPLE_FORMAT_24BIT, /*!< 24位, 本平台不支持 */
CM_AUDIO_SAMPLE_FORMAT_32BIT, /*!< 32位, 暂不开放请使用CM_AUDIO_SAMPLE_FORMAT_16BIT */
} cm_audio_sample_format_e;
/** 音频播放支持的采样率(录音支持的采样率单独标注) */
typedef enum
{
CM_AUDIO_SAMPLE_RATE_8000HZ = 8000, /*!< 默认录音时默认且只能使用8000Hz */
#if 0
CM_AUDIO_SAMPLE_RATE_9600HZ = 9600,
#endif
CM_AUDIO_SAMPLE_RATE_11025HZ = 11025,
CM_AUDIO_SAMPLE_RATE_12000HZ = 12000,
CM_AUDIO_SAMPLE_RATE_16000HZ = 16000,
CM_AUDIO_SAMPLE_RATE_22050HZ = 22050,
CM_AUDIO_SAMPLE_RATE_24000HZ = 24000,
CM_AUDIO_SAMPLE_RATE_32000HZ = 32000,
CM_AUDIO_SAMPLE_RATE_44100HZ = 44100,
CM_AUDIO_SAMPLE_RATE_48000HZ = 48000,
CM_AUDIO_SAMPLE_RATE_96000HZ = 96000,
#if 0
CM_AUDIO_SAMPLE_RATE_128000HZ = 128000,
#endif
} cm_audio_sample_rate_e;
/** PCM音频采样通道 */
typedef enum
{
CM_AUDIO_SOUND_MONO = 1, /*!< 默认单通道录音时默认且只能使用CM_AUDIO_SOUND_MONO */
CM_AUDIO_SOUND_STEREO = 2, /*!< 双通道(立体声) */
} cm_audio_sound_channel_e;
/** 音频采样参数结构体 */
typedef struct
{
cm_audio_sample_format_e sample_format; /*!< 采样格式PCM */
cm_audio_sample_rate_e rate; /*!< 采样率PCM */
cm_audio_sound_channel_e num_channels; /*!< 采样声道PCM */
} cm_audio_sample_param_t;
#undef EXTERN
#ifdef __cplusplus
}
#endif
#endif
/** @}*/