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