更新时间:2021-03-18 GMT+08:00
分享

vdec_in_msg中的结构体和类

该结构体在DDK安装目录下的“ddk/include/inc/dvpp/Vdec.h”文件中定义

  • FRAME结构体

成员变量

说明

int height

输出图像的高(对齐后的值,H264为16对齐,H265为64对齐)。

int width

输出图像的宽(对齐后的值,H264为16对齐,H265为64对齐)。

int realHeight

真实图像的高。

int realWidth

真实图像的宽。

unsigned char* buffer

输出图像的内存地址。

int buffer_size

输出图像的内存大小。

unsigned int offset_payload_y

输出图像payload的Y分量偏移量,payload的Y分量地址=buffer + offset_payload_y。

unsigned int offset_payload_c;

输出图像payload的C分量偏移量,payload的C分量地址=buffer + offset_payload_c。

unsigned int offset_head_y;

输出图像head的Y分量偏移量,head的Y分量地址=buffer + offset_head_y。

unsigned int offset_head_c;

输出图像head的C分量偏移量,head的C分量地址=buffer + offset_head_c。

unsigned int stride_payload;

输出图像payload的stride。

unsigned int stride_head;

输出图像head的stride。

unsigned short bitdepth;

输出图像的位深。

char video_format[10];

输入视频的格式,为“h264”或“h265”。

char image_format[10];

输出图像的格式,为“nv12”或“nv21”。

  • HIAI_DATA_SP类

成员变量或函数

说明

unsigned long long frameIndex

帧序号。

void * frameBuffer

用户申请用于存放输出帧的内存。

unsigned int frameSize

用户申请用于存放输出帧的内存大小。

void setFrameIndex(unsigned long long index)

设置帧序号函数。

unsigned long long getFrameIndex()

获取帧序号函数。

void setFrameBuffer(void * frameBuff)

设置frameBuffer地址。

void * getFrameBuffer()

获取frameBuffer地址。

void setFrameSize(unsigned int size)

设置frameSize大小。

unsigned int getFrameSize()

获取frameSize大小。

  • VDECERR结构体

成员变量

说明

ERRTYPE errType

错误类型。

enum ERRTYPE{

//VDEC解码器状态异常错误,用户需要销毁解码实例,再重新创建实例

ERR_INVALID_STATE = 0x10001,

//硬件错误,包含解码器启动、执行、停止等异常,用户需要销毁解码实例,再重新创建实例

ERR_HARDWARE,

//将视频码流分解成多帧图片异常,用户需要检查输入的视频流数据是否正确

ERR_SCD_CUT_FAIL,

//解码某一帧异常,用户需要检查输入的视频流数据是否正确

ERR_VDM_DECODE_FAIL,

//暂未使用,预留

ERR_ALLOC_MEM_FAIL,

//包括输入视频分辨率超范围(用户需要检查输入视频流的分辨率)、内部动态申请内存失败(用户检查系统是否有可用内存)等异常

ERR_ALLOC_DYNAMIC_MEM_FAIL,

//系统内部申请VDEC的输入、输出buffer异常,用户检查系统是否有可用内存

ERR_ALLOC_IN_OR_OUT_PORT_MEM_FAIL,

//码流错误,暂未使用,预留

ERR_BITSTREAM,

//输入视频格式错误,暂未使用,预留

ERR_VIDEO_FORMAT,

//输出格式配置错误,暂未使用,预留

ERR_IMAGE_FORMAT,

//回调函数为空错误,暂未使用,预留

ERR_CALLBACK,

//输入buffer为空错误,暂未使用,预留

ERR_INPUT_BUFFER,

//输入buffer大小<=0错误,暂未使用,预留

ERR_INBUF_SIZE,

//系统内部将解码结果通过回调函数返回给用户的线程异常,用户需要检查系统中资源(例如:线程、内存等)是否可用

ERR_THREAD_CREATE_FBD_FAIL,

//创建解码实例失败,用户需要重新创建解码实例

ERR_CREATE_INSTANCE_FAIL,

//初始化解码器失败,例如解码实例个数超出范围(最大16),用户需要释放部分解码实例后再重新创建实例

ERR_INIT_DECODER_FAIL,

//系统内部获取某路视频流的解码句柄失败,用户需要重新创建解码实例

ERR_GET_CHANNEL_HANDLE_FAIL,

//系统内部设置解码实例异常,用户需要检查解码的入参值是否正确,例如输入视频格式video_format、输出帧格式image_format等

ERR_COMPONENT_SET_FAIL,

//系统内部设置解码实例名称异常,用户需要检查解码的入参值是否正确,例如输入视频格式video_format、输出帧格式image_format等

ERR_COMPARE_NAME_FAIL,

//其它错误

ERR_OTHER

};

unsigned short channelId

解码错误的通道。

分享:

    相关文档

    相关产品