获取编码的码流。
Atlas 200/300/500 推理产品,不支持该接口。
Atlas 训练系列产品,不支持该接口。
指向一组hi_venc_pack结构体的连续的内存空间,该空间由调用者分配。如果是按包获取,则此空间不小于sizeof(hi_venc_pack)的大小;如果按帧获取,则此空间不小于N*sizeof(hi_venc_pack)的大小,其中,N代表当前帧之中的包的个数,可以在 select之后通过hi_mpi_venc_query_status接口获得。
在输入时,此值指定pack中hi_venc_pack结构体内存的个数。按包获取时,pack_cnt必须不小于 1;按帧获取时,pack_cnt必须不小于当前帧的包个数。在函数调用成功后,pack_cnt返回实际填充pack的包的个数。
pack_info[1]. pack_type. h264_type = HI_VENC_H264_NALU_PPS,pack[0].pack_info[2]. pack_type. h264_type = HI_VENC_H264_NALU_SEI;其他协议以此类推,data_num和 pack_info只在单包模式才有意义。
hi_s32 hi_mpi_venc_get_stream(hi_venc_chn chn, hi_venc_stream *stream, hi_s32 milli_sec)
参数名 |
输入/输出 |
说明 |
---|---|---|
chn |
输入 |
编码通道号。 编码通道号的取值范围:[0, 256),JPEGE功能和VENC功能共用通道,且通道总数最多256。 |
stream |
输出 |
输出码流数据的指针。 该结构体内的addr参数配置的地址为Device上的内存地址,表示输出的码流存放在Device的内存中。 标准形态下,如果用户在Host上调用该接口后,需要访问输出码流数据,则需要将Device中的数据传输回Host。 |
milli_sec |
输入 |
超时时间,单位是毫秒。
|
本接口虽返回成功,但有可能获取到的是编码失败的数据,编码是否成功,需要查看hi_venc_stream结构体的pack成员下的len参数值,len=0表示编码失败。