acl.himpi.vdec_send_stream

c函数原型

hi_s32 hi_mpi_vdec_send_stream(hi_vdec_chn chn, const hi_vdec_stream *stream, hi_vdec_pic_info *vdec_pic_info, hi_s32 milli_sec);

Python函数

ret = acl.himpi.vdec_send_stream(chn, stream, vdec_pic_info, milli_sec)

函数功能

解码前,向解码通道发送码流数据及存放解码结果的buffer。

昇腾310 AI处理器,当前版本不支持该接口。

昇腾910 AI处理器,当前版本不支持该接口。

输入说明

  • chn:解码通道号。

    该参数的取值范围:[0, 256),通道总数最多256。

  • stream:输入码流信息。

    该字典内的addr参数配置的地址为Device上的内存地址。

  • vdec_pic_info:输出图片信息字典。
  • milli_sec:超时时间,单位是毫秒。
    • “-1”:阻塞方式。
    • “0”:非阻塞方式。
    • >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的“milli_sec”参数值为“1”,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。

返回值说明

ret:int,错误码。

注意事项

约束说明

  • 发送数据前必须保证已经调用acl.himpi.vdec_start_recv_stream接口启动接收码流,否则直接返回该操作不允许的错误码“HI_ERR_VDEC_NOT_PERM”。如果在发送数据过程中停止接收码流,就会立刻返回“HI_ERR_VDEC_NOT_PERM”
  • 发送数据前必须保证通道已经被创建,否则直接返回通道未创建的错误码“HI_ERR_VDEC_UNEXIST”。如果在发送码流过程中复位通道或者销毁通道,就会立刻返回错误码“HI_ERR_VDEC_UNEXIST”
  • 发送码流时需要按照创建解码通道时设置的发送方式(仅支持按帧发送)进行发送。按帧发送时,调用此接口一次,必须发送完整的一帧码流,否则,解码会出现错误。
  • 不能发送 end_of_stream为0的空码流包(码流长度为0或码流地址为空),否则返回错误码。发送end_of_stream为1的空码流包时,解码器会把所有码流全部解完并输出全部图像。除此之外,其它情况应该把end_of_stream置为0。
  • 当码流 buffer 为空且装不下当前包码流时,会返回参数超出范围的错误码“HI_ERR_VDEC_ILLEGAL_PARAM”
  • 以非阻塞方式发送码流,如果码流缓冲区已满,会立刻返回错误码“HI_ERR_VDEC_BUF_FULL”
  • 以超时方式发送码流,到达设定的超时时间还不能成功发送码流会返回错误码“HI_ERR_VDEC_BUF_FULL”
  • 视频解码场景下,支持对输出图片进行缩放,缩放算法默认为业界通用的Bilinear算法(与OpenCV的计算精度接近),输出图片的宽取值范围为[10, 4096],高取值范围为[6, 4096]。

    以下场景,VDEC不对输出图片进行缩放:在hi_vdec_pic_info字典内,将“width”参数值和“height”参数值同时设置为“0”

  • 视频解码时支持设置是否将解码结果写入输出内存中,hi_vdec_stream字典中将“need_display”设置为“0”时,此帧码流的解码结果将不会写入到hi_vdec_pic_info字典中配置的输出内存中。acl.himpi.vdec_get_frame接口仍然能获取到字典 hi_video_frame_infohi_vdec_stream的信息,但是此时输出内存中无解码结果数据,需要用户释放输出内存。
  • 图像解码时,输入输出内存必须使用acl.himpi.dvpp_mallocacl.himpi.dvpp_free进行申请和释放,输入输出内存均需要在调用acl.himpi.vdec_get_frame接口获取结果之后才能进行释放。
  • 视频解码时,输入输出内存必须使用acl.himpi.dvpp_mallocacl.himpi.dvpp_free进行申请和释放,输出内存均需要在调用acl.himpi.vdec_get_frame接口获取结果之后才能进行释放。
  • 视频解码,输入码流格式、输出图片格式请参见VDEC功能及约束说明
  • 图像解码,输入图片格式、输出图片格式请参见JPEGE功能及约束说明

参考资源

接口调用流程,参见JPEGD图片解码VDEC视频解码