管理中心
我的

Interface Summary

展开

FileName

Description

dmsdp_audio_encoder_api.h

南向音频编码接口。

Public Method Summary

DMSDPGetAudioEncoderHandler 获取设备音频编码器功能方法,存放在DMSDPAudioEncoderHandler结构体中。

形式:int32_t DMSDPGetAudioEncoderHandler(DMSDPAudioEncoderHandler *audioEncoderHandler)

参数:[in] na [out]audioEncoderHandler

输出:0表示成功,<0表示失败。

描述:获取设备音频编码器功能方法,存放在DMSDPAudioEncoderHandler结构体中。

展开

Type

Method

int32_t

(*AudioEncoderGetAbility)( AEncAbility* audioEncAbility, int32_t maxEncNum, int* audioEncCnt)

获取设备音频编码器能力,具体参数存放在audioEncAbility结构体中,audioEncCnt支持几个音频编码器如果支持多个编码器,返回多个编码器,比如同时支持多个编码器。

int32_t

(*AudioEncoderCreate)( AEncHandle* handle, AEncInitParams* initEncParams)

根据初始化参数创建音频编码器,handle为编码器的句柄,initEncParams为编码器初始化参数合集。

int32_t

(*AudioEncoderConfigure)( AEncHandle handle, AEncCfgParams* cfgEncParams)

根据配置参数对编码器进行配置,handle为编码器的句柄,cfgEncParams为编码器配置参数合集。

int32_t

(*AudioEncoderProcess)( AEncHandle handle, AEncInputData* inputData, AEncOutputData* outputData)

根据音频编码器配置对输入音频数据进行压缩,输出压缩码流,handle为编码器的句柄,inputData待编码音频数据,outputData为输出码流及参数合集。

int32_t

(*AudioEncoderDestroy)( AEncHandle* handle)

销毁音频编码器。

Public Methods

AudioEncoderGetAbility

展开

Method

int32_t (*AudioEncoderGetAbility)( AEncAbility *audioEncAbility, int32_t maxEncNum, int *audioEncCnt)

获取设备音频编码器能力,具体参数存放在audioEncAbility结构体中,audioEncCnt支持几个音频编码器如果支持多个编码器,返回多个编码器,比如同时支持多个编码器。

Parameters

展开

Name

Description

audioEncAbility

音频编码能力。

typedef struct {

/* 编码器类型,0:AAC,1:G.711A目前仅支持AAC LC */

int32_t codecType;

/* 最大声道数,目前支持最大值为2 */

int32_t maxChannel;

/* 最小声道数,目前支持最小值为1 */

int32_t minChannel;

/* 最大采样率 目前支持最大采样率48K */

int32_t maxSampleRate;

/* 最小采样率 目前支持最小采样率8K */

int32_t minSampleRate;

/* 最大采样精度,目前支持16bit */

int32_t maxSampleDepth;

/*最小采样精度,目前支持16bit */

int32_t minSampleDepth;

/* 存储类型,掩码方式,bit0:交织存储,bit1:平面存储,目前支持交织格式 */

int32_t pcmStoreTypeMask;

/* 支持最大同时创建编码器的个数 */

int32_t maxCodecNum;

/* 是否支持异步输出,如果支持需要通过注册的回调进行输出 */

bool isAsynOutput;

} AEncAbility;

audioEncCnt

支持编码器个数。

maxEncNum

最大编码器个数。

Return

展开

Type

Description

int32_t

0:成功,<0失败。

AudioEncoderCreate

展开

Method

int32_t (*AudioEncoderCreate)( AEncHandle *handle, AEncInitParams *initEncParams)

根据初始化参数创建音频编码器,handle为编码器的句柄,initEncParams为编码器初始化参数合集。

Parameters

展开

Name

Description

handle

创建编码器句柄。

initEncParams

编码器初始化参数合集。

typedef void (*AEncOutputDataCB)(AEncOutputData *outputDataEnc, void *privateData);

typedef struct {

/* 编码器类型,0:AAC,1:G.711a,目前仅支持AAC LC */

int32_t codecType;

/* 声道个数 */

int32_t channel;

/* 采样率 */

int32_t sampleRate;

/* 采样精度 */

int32_t sampleDepth;

/* PCM存储类型,0:交织存储,1:平面存储,目前只支持交织存储 */

int32_t pcmStoreType;

/* 私有数据,通过pfnOutput回调进行透传 */

void *privateData;

/* 输出回调,非NULL则通过回调输出,否则同步输出 */

AEncOutputDataCB pfnOutput;

} AEncInitParams;

Return

展开

Type

Description

int32_t

0:成功,<0失败。

AudioEncoderConfigure

展开

Method

int32_t (*AudioEncoderConfigure)( AEncHandle handle, AEncCfgParams *cfgEncParams)

根据配置参数对编码器进行配置,handle为编码器的句柄,cfgEncParams为编码器配置参数合集。

Parameters

展开

Name

Description

handle

编码器句柄。

cfgEncParams

编码器配置参数合集。

AEncCfgParams *cfgEncParams

typedef struct {

/* 码率(bps) */

int32_t bitrate;

/* 最大码率 */

int32_t maxbitrate;

/* 码控类型,0:CBR 1:ABR 2:VBR ,必须支持CBR */

int32_t rcType;

} AEncCfgParams;

Return

展开

Type

Description

int32_t

0:成功,<0失败。

AudioEncoderProcess

展开

Method

int32_t (*AudioEncoderProcess)( AEncHandle handle, AEncInputData *inputData, AEncOutputData *outputData)

根据音频编码器配置对输入音频数据进行压缩,输出压缩码流,handle为编码器的句柄,inputData待编码音频数据,outputData为输出码流及参数合集。

Parameters

展开

Name

Description

handle

编码器句柄。

inputData

待编码音频数据。

typedef struct {

/* 音频数据内存 */

uint8_t *pcmDataBuf;

/* 帧长(字节) */

int32_t pcmLength;

/* 时间戳(单位US) */

int64_t timeStamp;

} AEncInputData;

outputData

输出码流及参数合集。

typedef struct {

/* 码流数据 */

uint8_t *bsBuf;

/* 码流长度 */

int32_t bsLength;

/* 时间戳(单位US) */

int64_t timeStamp;

} AEncOutputData;

Return

展开

Type

Description

int32_t

0:成功,<0失败。

AudioEncoderDestroy

展开

Method

int32_t (*AudioEncoderDestroy)( AEncHandle *handle)

销毁音频编码器。

Parameters

展开

Name

Description

handle

编码器句柄。

Return

展开

Type

Description

int32_t

0:成功,<0失败。