acl.himpi.vdec_get_fd
acl.himpi.vdec_get_frame
| c函数原型 | hi_s32 hi_mpi_vdec_get_frame(hi_vdec_chn chn, hi_video_frame_info *frame_info, hi_vdec_supplement_info *supplement, hi_vdec_stream *stream, hi_s32 milli_sec); |
|---|---|
| Python函数 | frame_info, supplement, stream, ret = acl.himpi.vdec_get_frame(chn, milli_sec) |
| 函数功能 | 解码后,获取视频解码通道的解码图像及输入Stream。 JPEGD图像解码场景下,在调用本接口时,如果硬件解码失败,则会在本接口内部触发软件解码。 |
| 输入说明 | - chn:解码通道号。 - Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),JPEGD功能和VDEC功能共用通道,且通道总数最多128。 - milli_sec:超时时间,单位是毫秒。 - “-1”:阻塞方式。 - “0”:非阻塞方式。 - >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的“milli_sec”参数值为“1”,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
| 返回值说明 | - ret:int,错误码。 - 返回0表示成功。但有可能是解码失败的数据,解码成功或失败,需要查看hi_video_frame字典(hi_video_frame_info字典的成员)中的“frame_flag”参数。 - 返回非0表示失败,参见VDEC视频/JPEGD图像解码返回码 - stream:获取已完成解码的输入码流信息字典,具体请参见hi_vdec_stream。 - frame_info:获取已经完成解码的图像信息。解码后的数据存放在Device内存中。 - supplement:获取的解码图像补充信息。预留参数,暂未使用。 |
| 约束说明 | - 向VDEC获取解码结果,输入buffer和输出buffer一起获取。 - JPEGD图片解码时,默认对于jpeg(420)、jpeg(422)、jpeg(440)格式的输入图片,如果输入图片的宽高为奇数,JPEGD解码输出图片的宽高为向下2对齐;默认对于jpeg(444)、jpeg(400)格式的输入图片,JPEGD解码输出图片的宽高与输入图片保持一致。若需调整输出图片的宽、高对齐模式,可调用acl.himpi.vdec_set_jpegd_precision_mode接口。 |
父主题: VDEC视频解码/JPEGD图像解码接口
acl.himpi.vdec_release_frame
| c函数原型 | hi_s32 hi_mpi_vdec_release_frame(hi_vdec_chn chn, const hi_video_frame_info *****frame_info); |
|---|---|
| Python函数 | ret = acl.himpi.vdec_release_frame(chn, frame_info) |
| 函数功能 | 解码之后,释放资源。 |
| 输入说明 | - chn:解码通道号。 - Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),JPEGD功能和VDEC功能共用通道,且通道总数最多128。 - frame_info:解码后的图像信息字典,调用acl.himpi.vdec_get_frame接口获取,具体请参见hi_video_frame_info。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回非0表示失败,参见VDEC视频/JPEGD图像解码返回码。 - 如果在解码图像时未创建通道,则会返回HI_ERR_VDEC_UNEXIST的错误码。 - 如果在获取图像的过程中销毁通道,则会返回HI_ERR_VDEC_UNEXIST的错误码。 - 如果在获取解码图像的过程中复位通道,则会返回HI_ERR_VDEC_UNEXIST的错误码。 - 以非阻塞方式获取解码图像,如果缓冲区内无图像,则会返回HI_ERR_VDEC_BUF_EMPTY的错误码。 - 以超时方式获取解码图像,到达设定的超时时间还不能获取到硬件解码结果则会返回HI_ERR_VDEC_BUF_EMPTY的错误码,此时则可增大超时时间,或循环调用本接口等待解码结果。 |
| 约束说明 | - 此接口需与acl.himpi.vdec_get_frame配对使用,获取的数据应当在使用完之后立即释放,如果不及时释放,会导致解码过程阻塞等待资源。 - 释放的数据必须是调用acl.himpi.vdec_get_frame接口从该通道获取的数据,不得对数据信息字典进行任何修改。 |
| 参考资源 | 接口调用流程,参见JPEGD图片解码、VDEC视频解码。 |
父主题: VDEC视频解码/JPEGD图像解码接口
acl.himpi.vdec_get_fd
| c函数原型 | hi_s32 hi_mpi_vdec_get_fd(hi_vdec_chn chn); |
|---|---|
| Python函数 | ret = acl.himpi.vdec_get_fd(chn) |
| 函数功能 | 获取视频解码通道的设备文件句柄。 |
| 输入说明 | chn:解码通道号。 - Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),JPEGD功能和VDEC功能共用通道,且通道总数最多128。 |
| 返回值说明 | ret:int,错误码。 - 0或正数值:有效返回值。 - 非正数值:无效返回值。 |
| 约束说明 | 在进程退出时会自动关闭文件句柄,回收资源。 |
| 参考资源 | 无 |
父主题: VDEC视频解码/JPEGD图像解码接口
acl.himpi.vdec_close_fd
| c函数原型 | hi_s32 hi_mpi_vdec_close_fd(hi_vdec_chn chn); |
|---|---|
| Python函数 | ret = acl.himpi.vdec_close_fd(chn) |
| 函数功能 | 关闭视频解码的设备文件句柄。 当前版本不支持该接口。 |
| 输入说明 | chn:解码通道号。 - Atlas 200/500 A2推理产品,该参数的取值范围:[0, 128),JPEGD功能和VDEC功能共用通道,且通道总数最多128。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回非0表示失败,参见VDEC视频/JPEGD图像解码返回码。 |
父主题: VDEC视频解码/JPEGD图像解码接口
acl.himpi.vdec_get_pic_buf_size
| c函数原型 | hi_u32 hi_vdec_get_pic_buf_size(hi_payload_type type, hi_pic_buf_attr *buf_attr); |
|---|---|
| Python函数 | ret = acl.himpi.vdec_get_pic_buf_size(type, buf_attr) |
| 函数功能 | 获取解码图像需要的Buffer大小。用户在两个地方有使用这个函数:计算视频解码需要的内部缓冲区的大小,在初始化的时候配置对应的通道参数;计算图像解码的输出内存。 |
| 输入说明 | - type:解码视频类型,当前支持HI_PT_H264、HI_PT_H265、HI_PT_JPEG。 - buf_attr:图片参数字典。 |
| 返回值说明 | ret:图像存储需要的图像大小。 - 非0为需要存储的图像大小。 - 若解码视频类型为HI_PT_JPEG(表示JPEGD解码)时,pixel_format传入不支持的格式或者“HI_PIXEL_FORMAT_UNKNOWN”,返回值为“0”。 |
| 约束说明 | 提供给用户来计算输出图片缓冲区大小。 |
| 参考资源 | 接口调用流程及示例,参见VDEC视频解码。 |
父主题: VDEC视频解码/JPEGD图像解码接口
acl.himpi.vdec_get_tmv_buf_size
| c函数原型 | hi_u32 hi_vdec_get_tmv_buf_size(hi_payload_type type, hi_u32 width, hi_u32 height); |
|---|---|
| Python函数 | ret = acl.himpi.vdec_get_tmv_buf_size(type, width, height) |
| 函数功能 | 取解码图像需要的矢量预测缓冲区的大小。 |
| 输入说明 | - type:解码视频类型。 - width:解码图像宽。 - height:解码图像高。 |
| 返回值说明 | 图像存储需要矢量预测缓冲区大小。 |
| 约束说明 | 提供给用户来计算矢量预测缓冲区大小,在创建通道的时候初始化对应的参数。 |
| 参考资源 | 接口调用流程及示例,参见VDEC视频解码。 |
父主题: VDEC视频解码/JPEGD图像解码接口
在线提单