Skip to main content

hi_vdec_video_supplement_info

hi_vdec_chn_status

说明

定义通道状态结构体。

定义

typedef struct {
hi_payload_type type;
hi_u32 left_stream_bytes;
hi_u32 left_stream_frames;
hi_u32 left_decoded_frames;
hi_bool is_started;
hi_u32 recv_stream_frames;
hi_u32 dec_stream_frames;
hi_vdec_dec_err dec_err;
hi_u32 width;
hi_u32 height;
hi_u64 latest_frame_pts;
} hi_vdec_chn_status;

成员

成员名称描述
type解码协议。
left_stream_bytes码流buffer中待解码的byte数,包括正在解码的当前帧中未解码的byte数。
left_stream_frames码流buffer中待解码的帧数,不包括正在解码的当前帧。-1表示无效。仅按帧发送时有效。
left_decoded_frames图像buffer中剩余的图片数目。
is_started解码器是否已经启动接收码流。
recv_stream_frames码流buffer中已接收码流帧数。-1表示无效。仅按帧发送时有效。
dec_stream_frames码流buffer中已解码帧数。仅按帧发送时有效。
dec_err解码错误信息。
width解码后输出图片的宽。
height解码后输出图片的高。
latest_frame_pts最新解码图像的时间戳。预留参数,暂不支持。

父主题: VDEC视频/JPEGD图像解码

hi_vdec_stream

说明

定义视频/图像解码的码流结构体。

定义

typedef struct {
hi_bool end_of_frame;
hi_bool end_of_stream;
hi_bool need_display;
hi_u64 pts;
hi_u64 private_data;
hi_u32 len;
hi_u8 *ATTRIBUTE addr;
} hi_vdec_stream;

成员

成员描述
end_of_frame当前帧是否结束(此值目前暂无效)。
end_of_stream是否发完所有码流。
need_display当前帧输出是否显示。
- 0:不显示,设置为0,输出Buffer无解码结果,且不显示帧按照显示序或解码序输出。
- 1:显示,设置为1,才能输出解码结果,且显示帧按照显示序或解码序输出。
如果解码码流中同时存在不显示帧、显示帧,则系统不保证不显示帧与显示帧之间按照显示序或解码序输出。
pts码流包的时间戳,以us为单位。仅按帧发送时有效。
private_data私有数据。预留参数,暂不支持。
len码流包的长度,以Byte为单位。
addr码流包的地址。

注意事项

  1. 按帧发送时,解码图像的时间戳等于码流包中的时间戳。
  2. 按流发送时,解码图像的时间戳等于0。
  3. 当发完所有码流后,把end_of_stream设置为1,表示码流文件结束,这时解码器会解完发送下来的所有码流并输出所有图像。如果发完所有码流后把end_of_stream设置为0,解码器内部可能残余大于等于一帧的图像未解码输出,因为解码器必须等到下一帧码流到来才能知道当前帧已经结束,送入解码。
  4. VDEC支持发送一包end_of_stream为1的空码流包(地址为空或长度为 0)。

父主题: VDEC视频/JPEGD图像解码

hi_vdec_supplement_info

说明

定义输出帧补充信息, 暂不支持。

定义

typedef struct {
hi_payload_type type;
union {
hi_vdec_video_supplement_info video_supplement_info;
};
} hi_vdec_supplement_info;

父主题: VDEC视频/JPEGD图像解码

hi_vdec_video_supplement_info

说明

定义输出视频帧补充信息, 暂不支持。

定义

typedef struct {
hi_vdec_frame_type frame_type;
hi_u32 err_rate;
hi_u32 poc;
}hi_vdec_video_supplement_info;

成员

成员名称描述
frame_type解码帧类型。预留参数,暂不支持。
err_rate错误率。预留参数,暂不支持。
pocpoc值。预留参数,暂不支持。

父主题: VDEC视频/JPEGD图像解码

hi_jpegd_precision_mode

说明

定义JPEGD解码输出图片的宽、高对齐模式。

定义

typedef enum {
YUVOUT_ALIGN_DOWN = 0,
YUVOUT_ALIGN_UP = 1,
YUVOUT_ALIGN_DOWN_COMPAT = 2,
} hi_jpegd_precision_mode;

对齐模式取值的含义如下:

  • YUVOUT_ALIGN_DOWN:默认值

    • 解码后的输出图片格式为YUV420SP时,若源图的宽、高为奇数时,将输出图片的宽、高向下2对齐
    • 解码后的输出图片格式为YUV422SP时,若源图的宽为奇数时,将输出图片的宽向下2对齐
    • 解码后的输出图片格式为YUV440SP时,若源图的高为奇数时,将输出图片高向下2对齐
  • YUVOUT_ALIGN_UP:

    • 解码后的输出图片格式为YUV420SP时,若源图的宽、高为奇数时,将输出图片的宽、高向上2对齐
    • 解码后的输出图片格式为YUV422SP时,若源图的宽为奇数时,将输出图片的宽向上2对齐
    • 解码后的输出图片格式为YUV440SP时,若源图的高为奇数时,将输出图片高向上2对齐
  • YUVOUT_ALIGN_DOWN_COMPAT :

    兼容旧版本,解码后的输出图片格式为YUV420SP/YUV422SP/YUV440SP时,若源图的宽、高为奇数时,将输出图片的宽、高向下2对齐。

父主题: VDEC视频/JPEGD图像解码

hi_venc_chn

说明

描述编码通道。

定义

typedef hi_s32 hi_venc_chn;

父主题: VENC视频/JPEGE图像编码

hi_venc_stream

说明

定义帧码流类型结构体。

定义

typedef struct {
hi_venc_pack ATTRIBUTE* pack;
hi_u32 ATTRIBUTE pack_cnt;
hi_u32 seq;

union {
hi_venc_h264_stream_info h264_info;
hi_venc_jpeg_stream_info jpeg_info;
hi_venc_h265_stream_info h265_info;
hi_venc_prores_stream_info prores_info;
};

union {
hi_venc_h264_adv_stream_info h264_adv_info;
hi_venc_h265_adv_stream_info h265_adv_info;
};
} hi_venc_stream;

成员

成员名称描述
pack帧码流包结构。
pack_cnt一帧码流的所有包的个数。
seq码流序列号。 按帧获取时,此处为帧序号;按包获取时,此处为包序号。
h264_info/h265_info码流特征信息。
jpeg_info/prores_info码流特征信息,暂不支持。
h264_adv_info/ h265_adv_info码流高级特征信息。

父主题: VENC视频/JPEGE图像编码

在线提单