venc_request_idr

Applicability

Product

Supported (√/x)

Atlas A3 training products/Atlas A3 inference products

x

Atlas A2 training products/Atlas A2 inference products

x

Atlas training products

x

Atlas inference products

Atlas 200I/500 A2 inference products

Function Usage

Requests for an instantaneous decoding refresh (IDR) frame.

Prototype

  • C Prototype
    1
    hi_s32 hi_mpi_venc_request_idr(hi_venc_chn chn, hi_bool instant);
    
  • Python Function
    1
    ret = acl.himpi.venc_request_idr(chn, instant)
    

Parameter Description

Parameter

Description

chn

Int, encoding channel ID.
  • Atlas inference products: The value range of the encoding channel ID is [0, 256). The JPEGE and VENC functions share the same channels, and the maximum number of channels is 256.
  • Atlas 200I/500 A2 inference products: The value range of the encoding channel ID is [0, 128). The JPEGE and VENC functions share the same channels, and the maximum number of channels is 128.

instant

Int, whether to instantly encode an IDR frame.

Return Value Description

Return Value

Description

ret

Int, error code.

Restrictions

  • Ensure that a channel has been created. Otherwise, a failure is returned.
  • After an IDR frame request is received, if instant is 0, an IDR frame is encoded in the next frame as controlled by the frame rate controller; if instant is 1, an IDR frame is encoded instantly.
  • IDR frame requesting is applicable to H.264 and H.265 encoding.
  • Typically, the destination frame rate is the same as the source frame rate. Therefore, frame rate control has no impact on this API. Regardless of the setting of instant (either 0 or 1), an IDR frame is encoded on every call to this API. Note that too frequent calls to this API cause fluctuations in the frame rate and bit rate of the stream.
  • In Smart P-frame or B-frame GOP mode (both modes are not supported currentlythe B-frame GOP mode is not supported currently), it takes some time for an IDR frame request to take effect.