Edit online

mpp_decoder 接口设计

接口如下 :
struct decode_config {
    enum mpp_pixel_format pix_fmt;  // output pixel format
    int bitstream_buffer_size;      // bitstream buffer size in pm
    int packet_count;               // packet number in pm
    int extra_frame_num;            // extra frame number in fm
};

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:失败
注意事项 -