DECODER(解码模块)API
DECODER
API提供了以下的接口:
函数 | 功能 |
---|---|
sp_init_decoder_module | 初始化解码模块对象 |
sp_release_decoder_module | 销毁解码模块对象 |
sp_start_decode | 创建图像解码通道 |
sp_stop_decode | 关闭图像解码通道 |
sp_decoder_get_image | 从解码通道获取解码后的图像帧 |
sp_decoder_set_image | 向解码通道传入需要解码的码流数据 |
sp_init_decoder_module
【函数原型】
void *sp_init_decoder_module()
【功能描述】
初始化解码模块对象,在使用解码模块时需要调用获得操作句柄,支持H264、H265和Mjpeg格式的视频码流。
【参数】
无。
【返回类型】
成功返回DECODER
对象,失败返回 NULL。
sp_release_decoder_module
【函数原型】
void sp_release_decoder_module(void *obj)
【功能描述】
销毁解码模块对象。
【参数】
obj
: 调用初始化接口时得到的对象指针。
【返回类型】
无
sp_start_decode
【函数原型】
int32_t sp_start_decode(void *obj, const char *stream_file, int32_t video_chn, int32_t type, int32_t width, int32_t height)
【功能描述】
创建一个解码通道,设置通道号、解码的码流类型、图像帧分辨率。
【参数】
obj
: 已经初始化的DECODER
对象指针stream_file
:当stream_file
设置为一个码流文件名时,表示对这个码流文件进行解码,例如设置H264的码流文件“stream.h264”, 当stream_file
传入空字符串时,表示解码的数据流需要通过调用sp_decoder_set_image
传入。video_chn
:解码通道号,支持 0-31。type
:解码的数据类型,支持SP_ENCODER_H264
,SP_ENCODER_H265
和SP_ENCODER_MJPEG
。width
:解码出来的图像帧的分辨率 - 宽height
:解码出来的图像帧的分辨率 - 高
【返回类型】
成功返回 0,失败返回 -1
sp_stop_decode
【函数原型】
int32_t sp_stop_decode(void *obj)
【功能描述】
关闭解码通道。
【参数】
obj
: 已经初始化的DECODER
对象指针
【返回类型】
成功返回 0,失败返回 -1
sp_decoder_get_image
【函数原型】
int32_t sp_decoder_get_image(void *obj, char *image_buffer)
【功能描述】
从解码通道获取解码后的图像帧数据,返回的图像数据格式为 NV12
的 YUV
图像。
【参数】
obj
:已经初始化的DECODER
对象指针image_buffer
:返回的图像帧数据,这个buffer大小与图像分辨率的关系为(width * height * 3) / 2
。
【返回类型】
成功返回 0,失败返回 -1
sp_decoder_set_image
【函数原型】
int32_t sp_decoder_set_image(void *obj, char *image_buffer, int32_t chn, int32_t size, int32_t eos)
【功能描述】
向已经打开的解码通道送入码流数据。 如果是解码 H264 或 H265 码流,需要先发送3-5帧数据,让解码器完成帧缓存后,再获取解码帧数据。 如果解码 H264 码流,首先第一帧送入解码的数据需要是 sps 和 pps 的描述信息,否者解码器会报错退出。
【参数】
obj
: 已经初始化的DECODER
对象指针。image_buffer
:码流数据指针。chn
:解码器通道号,需要是调用sp_start_decode
打开过的通道号。size
:码流数据大小。eos
:是否是最后一帧数据。
【返回类型】
成功返回 0,失败返回 -1