# hi_mpi_venc_query_status

#### 函数功能

查询编码通道状态。


#### 约束说明

- 如果通道未创建，则返回失败。
- 此接口用于查询此函数调用时刻的编码器状态，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 200/500 A2推理产品，编码通道号的取值范围：[0, 128)，JPEGE功能和VENC功能共用通道，且通道总数最多128。 |
| status | 输出 | 编码通道状态的指针。 |


#### 返回值说明

- 0：成功
- 非0：失败，参见  VENC视频编码/JPEGE图片编码返回码


#### 参考资源

接口调用流程及示例，参见JPEGE图片编码、VENC视频编码。
