venc_query_status
产品支持情况
产品 |
是否支持 |
---|---|
|
√ |
|
√ |
|
x |
|
√ |
|
√ |
|
x |
功能说明
查询编码通道状态。
函数原型
- C函数原型
1
hi_s32 hi_mpi_venc_query_status(hi_venc_chn chn, hi_venc_chn_status *status);
- python函数
1
status, ret = acl.himpi.venc_query_status(chn)
参数说明
参数名 |
说明 |
---|---|
chn |
int,解码通道号。
|
返回值说明
返回值 |
说明 |
---|---|
status |
dict,编码通道的状态hi_venc_chn_status。 |
ret |
int,错误码。
|
约束说明
- 如果通道未创建,则返回失败。
- 此接口用于查询此函数调用时刻的编码器状态,“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。
父主题: VENC视频/JPEGE图像编码接口