c函数原型 |
hi_s32 hi_mpi_venc_query_status(hi_venc_chn chn, hi_venc_chn_status *status); |
Python函数 |
status, ret = acl.himpi.venc_query_status(chn) |
函数功能 |
查询编码通道状态。 Atlas 200/300/500 推理产品,当前版本不支持该接口。 Atlas 训练系列产品,当前版本不支持该接口。 |
输入说明 |
chn:int,编码通道号。
- Atlas 推理系列产品,编码通道号的取值范围:[0, 256),JPEGE功能和VENC功能共用通道,且通道总数最多256。
- Atlas A2训练系列产品/Atlas 800I A2推理产品,编码通道号的取值范围:[0, 256),JPEGE功能通道总数最多256。
- Atlas 200I/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
|
返回值说明 |
status:dict,编码通道的状态hi_venc_chn_status。 |
约束说明 |
- 如果通道未创建,则返回失败。
- 此接口用于查询此函数调用时刻的编码器状态,“status”包含以下信息:
- 在编码通道状态字典中,“left_pics”表示待编码的帧个数。在复位通道前,可以通过查询是否还有图像待编码来决定复位时机,防止复位时将可能需要编码的帧清理出去。
- 在编码通道状态字典中,“left_stream_bytes”表示码流Buffer中剩余的Byte数目。
在复位通道前,可以通过查询是否还有码流没有被处理来决定复位时机,防止复位时将可能需要的码流清理出去。
- 在编码通道状态字典中,“left_stream_frames”表示码流Buffer中剩余的帧数目。
在复位通道前,可以通过查询是否还有图像的码流没有被取走来决定复位时机,防止复位时将可能需要的码流清理出去。
- 在编码通道状态字典中,“cur_packs”表示当前帧的码流包个数。在调用acl.himpi.venc_get_stream之前应确保“cur_packs”大于 0。
在按包获取时当前帧可能不是一个完整帧(被取走一部分),按帧获取时表示当前一个完整帧的包个数(如果没有一帧数据则为 0)。用户在需要按帧获取码流时,需要查询一个完整帧的包个数,在这种情况下,通常可以在select成功后执行query操作,此时“cur_packs”是当前完整帧中包的个数。
- 在编码通道状态字典中,“left_recv_pics”表示调用acl.himpi.venc_start_chn接口后剩余等待接收的帧数目。
- 在编码通道状态字典中,“left_enc_pics”表示调用acl.himpi.venc_start_chn接口后剩余等待编码的帧数目。
- 如果调用acl.himpi.venc_start_chn但没有指定接收帧数,“left_recv_pics”和“left_enc_pics”数目始终为0。
|
参考资源 |
接口调用流程,参见JPEGE图片编码、VENC视频编码。 |