c函数原型 |
hi_s32 hi_mpi_venc_set_chn_attr(hi_venc_chn chn, const hi_venc_chn_attr *chn_attr); |
Python函数 |
ret = acl.himpi.venc_set_chn_attr(chn, chn_attr) |
函数功能 |
设置编码通道的属性。 Atlas 200/300/500 推理产品,不支持该接口。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品,不支持该接口。 |
输入说明 |
chn:int,编码通道号。
- Atlas 推理系列产品,编码通道号的取值范围:[0, 256),JPEGE功能和VENC功能共用通道,且通道总数最多256。
- Atlas A2训练系列产品,编码通道号的取值范围:[0, 256),JPEGE功能通道总数最多256。
- Atlas 200I/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
chn_attr:dict,编码通道属性,具体请参见hi_venc_chn_attr。 |
返回值说明 |
ret:int,错误码。
|
约束说明 |
- 仅H.265/H.264编码通道支持。
- 建议用户在调用此接口之前先调用acl.himpi.venc_get_chn_attr接口,获取当前通道属性,然后再进行设置。
- 编码通道属性包括了编码器属性、帧结构GOP属性和码率控制器RC属性三部分。编码通道属性分为动态属性和静态属性两种。其中,静态属性的属性值在通道创建时配置,在通道创建之后不能被修改;动态属性的属性值在通道创建时配置,有部分参数不支持修改,支持修改的参数在通道销毁之前可以被修改。如果设置静态属性或者不支持修改的参数,则返回失败。静态属性、属性是否支持修改、属性取值范围具体请参见hi_venc_chn_attr。
- 设置编码通道属性,未修改“gop_mode”时,则通道属性立即生效;修改“gop_mode”时,则通道属性延时生效,最大延时生效时间如下所示(当前不支持HI_VENC_GOP_MODE_LOW_DELAY_B模式):
- HI_VENC_GOP_MODE_LOW_DELAY_B模式,在修改为非HI_VENC_GOP_MODE_LOW_DELAY_B模式后,对应最大延时变化(以编码帧的个数为单位)为1 + b_frame_num。
- 非HI_VENC_GOP_MODE_LOW_DELAY_B模式,在修改为其他模式后,,对应最大延时变化(以编码帧的个数为单位)为1。
- 修改gop_mode时,通道的P帧刷Islice、跳帧参考的属性( H.264/H.265 )、pic_order_cnt_type( H.264 )会恢复默认值,如需继续使用需要重新配置。
- 如果修改GOP、RC属性中的一种,RC模块会重新初始化,所有RC高级参数都恢复到默认值。如果客户程序中有对RC高级参数的调整,需要重新设置。 RC高级参数请参考acl.himpi.venc_set_rc_param等。
- 如果同时修改gop_mode和rc_mode时,由于存在延迟生效(延时参见上表),为了防止调用acl.himpi.venc_get_rc_param获取的RC参数值不准确,建议等待延迟参数生效后再执行相应操作。
|