4G_module/include/cmiot/cm_audio_common.h

127 lines
5.1 KiB
C
Raw Normal View History

2024-09-02 17:54:29 +08:00
/**
* @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
/** @}*/