接口如下 :
struct decode_config {
enum mpp_pixel_format pix_fmt;
int bitstream_buffer_size;
int packet_count;
int extra_frame_num;
};
struct mpp_decoder* create_mpp_decoder(enum mpp_codec_type type);
void destory_mpp_decoder(struct mpp_decoder* decoder);
int mpp_decoder_init(struct mpp_decoder *decoder, struct decode_config *config);
int mpp_decoder_decode(struct mpp_decoder* decoder);
int mpp_decoder_control(struct mpp_decoder* decoder, int cmd, void *param);
int mpp_decoder_reset(struct mpp_decoder* decoder);
int mpp_decoder_get_packet(struct mpp_decoder* decoder, struct mpp_packet* packet, int size);
int mpp_decoder_put_packet(struct mpp_decoder* decoder, struct mpp_packet* packet);
int mpp_decoder_get_frame(struct mpp_decoder* decoder, struct mpp_frame* frame);
int mpp_decoder_put_frame(struct mpp_decoder* decoder, struct mpp_frame* frame);
表 1. mpp_decoder_create
函数原型 |
struct mpp_decoder* mpp_decoder_create(enum mpp_codec_type
type) |
功能说明 |
创建 decoder 对象 |
参数定义 |
type: 解码器类型 |
返回值 |
mpp_decoder 对象 |
注意事项 |
- |
表 2. mpp_decoder_destor
函数原型 |
void mpp_decoder_destory(struct mpp_decoder* decoder) |
功能说明 |
销毁 decoder 对象 |
参数定义 |
decoder: mpp_decoder 对象 |
返回值 |
无 |
注意事项 |
- |
表 3. mpp_decoder_init
函数原型 |
int mpp_decoder_init(struct mpp_decoder *decoder, struct
decode_config *config) |
功能说明 |
初始化解码器 |
参数定义 |
decoder: mpp_decoder 对象 config:解码器的配置参数 |
返回值 |
0:成功<0:失败 |
注意事项 |
- |
表 4. mpp_decoder_decode
函数原型 |
int mpp_decoder_decode(struct mpp_decoder* decoder) |
功能说明 |
解码一笔数据 |
参数定义 |
decoder: mpp_decoder 对象 |
返回值 |
0:成功<0:失败 |
注意事项 |
- |
表 5. mpp_decoder_control
函数原型 |
int mpp_decoder_control(struct mpp_decoder* decoder, int cmd, void*
param) |
功能说明 |
向 decoder 对象发送控制命令 |
参数定义 |
decoder: mpp_decoder 对象 cmd: 控制命令类型 param: 控制参数 |
返回值 |
0:成功<0:失败 |
注意事项 |
- |
表 6. mpp_decoder_reset
函数原型 |
int mpp_decoder_reset(struct mpp_decoder* decoder) |
功能说明 |
重置 decoder 对象 |
参数定义 |
decoder: mpp_decoder 对象 |
返回值 |
0:成功<0:失败 |
注意事项 |
- |
表 7. mpp_decoder_get_packet
函数原型 |
int mpp_decoder_get_packet(struct mpp_decoder* decoder, struct
mpp_packet* packet, int size) |
功能说明 |
获取一个写码流数据的 packet |
参数定义 |
decoder:
mpp_decoder 对象 packet:码流数据结构指针 size:上层应用申请 packet 的 buffer 大小 |
返回值 |
0:成功<0:失败 |
注意事项 |
- |
表 8. mpp_decoder_put_packet
函数原型 |
int mpp_decoder_put_packet(struct mpp_decoder* decoder, struct
mpp_packet* packet) |
功能说明 |
归还码流数据的 packet 对象 |
参数定义 |
decoder: mpp_decoder 对象 packet:码流数据结构指针 |
返回值 |
0:成功<0:失败 |
注意事项 |
- |
表 9. mpp_decoder_get_frame
函数原型 |
int mpp_decoder_get_frame(struct mpp_decoder* decoder, struct
mpp_frame* frame) |
功能说明 |
获取一个视频帧对象 |
参数定义 |
decoder: mpp_decoder 对象 frame:视频帧数据结构指针 |
返回值 |
0:成功<0:失败 |
注意事项 |
- |
表 10. mpp_decoder_put_frame
函数原型 |
int mpp_decoder_put_frame(struct mpp_decoder* decoder, struct
mpp_frame* frame) |
功能说明 |
归还视频帧对象 |
参数定义 |
decoder: mpp_decoder 对象 frame:视频帧数据结构指针 |
返回值 |
0:成功<0:失败 |
注意事项 |
- |