aclvencChannelDescParamType

The Atlas Training Series Product does not support this enumeration.

enum aclvencChannelDescParamType {
    ACL_VENC_THREAD_ID_UINT64 = 0,      // Callback thread ID. Its value is of the uint64_t type.
    ACL_VENC_CALLBACK_PTR,              // Callback function. Its value is a memory pointer.
    ACL_VENC_PIXEL_FORMAT_UINT32,       // Input image format. Its value is of the uint32_t type.
    ACL_VENC_ENCODE_TYPE_UINT32,        // Video coding protocol. Its value is of the uint32_t type.
    ACL_VENC_PIC_WIDTH_UINT32,          // Input image width. Its value is of the uint32_t type.
    ACL_VENC_PIC_HEIGHT_UINT32,         // Input image height. Its value is of the uint32_t type.
    ACL_VENC_KEY_FRAME_INTERVAL_UINT32, // Key frame interval. Its value is of the uint32_t type.
    ACL_VENC_BUF_ADDR_PTR,              // Buffer address of the encode output.
    ACL_VENC_BUF_SIZE_UINT32,           // Buffer size of the encoding output. Its value is of the uint32_t type.
    ACL_VENC_RC_MODE_UINT32,            // Bit rate control mode. Its value is of the uint32_t type.
    ACL_VENC_SRC_RATE_UINT32,           // Frame rate of the input stream. Its value is of the uint32_t type.
    ACL_VENC_MAX_BITRATE_UINT32,        // Output bit rate. Its value is of the uint32_t type.
    ACL_VENC_MAX_IP_PROP_UINT32         // I-frame to P-frame bit allocation ratio within a GOP. Its value is of the uint32_t type.
}
Table 1 Attribute settings

Attribute

Description

ACL_VENC_THREAD_ID_UINT64

Callback thread ID.
NOTE:

Do not pass the same thread ID for subscribing to VENC callback functions on different devices in the same process.

ACL_VENC_CALLBACK_PTR

Encoding callback function.

ACL_VENC_PIXEL_FORMAT_UINT32

Image format.
  • PIXEL_FORMAT_YUV_SEMIPLANAR_420
  • PIXEL_FORMAT_YVU_SEMIPLANAR_420

ACL_VENC_ENCODE_TYPE_UINT32

Video coding protocol.

For details, see acldvppStreamFormat.

ACL_VENC_PIC_WIDTH_UINT32

Image width.

ACL_VENC_PIC_HEIGHT_UINT32

Image height.

ACL_VENC_KEY_FRAME_INTERVAL_UINT32

Key frame interval. Must be in the range of [1, 65536].

ACL_VENC_BUF_ADDR_PTR

Pointer to the buffer address of the encoding output.
NOTE:

For the Atlas 200/300/500 Inference Product, this parameter is not configurable in the current version. VENC manages the buffer address internally.

ACL_VENC_BUF_SIZE_UINT32

Buffer allocation in bytes of the encoding output.
NOTE:

For the Atlas 200/300/500 Inference Product, it is not allowed to set this parameter in the current version. It defaults to 3686400 bytes.

In the current version, it is not supported to obtain this attribute. The value obtained is invalid.

ACL_VENC_RC_MODE_UINT32

Bit rate control mode.
  • 0: default mode.
  • 1: variable bit rate (VBR) mode
  • 2: constant bit rate (CBR) mode
NOTE:

If this parameter is not set, the default value 0 is used.

For the Ascend 310 AI Processor, the default value 0 indicates the CBR mode.

ACL_VENC_SRC_RATE_UINT32

Frame rate of the input stream (FPS).

For the Ascend 310 AI Processor, the value is 0 or in the range of [1, 120].

If it is not set, the default value 30 is used. If it is set to 0, the default value 30 is used. If the difference between the value of this parameter and the actual frame rate of the input stream is too large, the output bit rate is affected.

ACL_VENC_MAX_BITRATE_UINT32

Output bit rate (kbit/s).

For the Atlas 200/300/500 Inference Product, the value is 0 or in the range of [10, 30000]. The default value is 300. If it is set to 0, the default value 300 is used.

ACL_VENC_MAX_IP_PROP_UINT32

I-frame to P-frame bit allocation ratio within a GOP. Must be 0 or within the range of [1, 100]. The default value is 80 in VBR mode or 70 in CBR mode. If it is set to 0, the default value is used.