hi_mpi_venc_send_jpege_frame

Applicable Products

Product

Supported

Ascend 950PR / Ascend 950DT

√

Atlas A3 training products / Atlas A3 inference products

√

Atlas A2 training products / Atlas A2 inference products

√

Atlas 200I/500 A2 inference products

√

Atlas inference products

√

Atlas training products

☓

Function

Sends source images for encoding and configures the output buffer address of the encoding result.

Prototype

hi_s32 hi_mpi_venc_send_jpege_frame(hi_venc_chn chn, const hi_video_frame_info *frame, const hi_img_stream *jpege_stream, hi_s32 milli_sec)

Parameters

Parameter

Input/Output

Description

chn

Input

Encoding channel ID.

Ascend 950PR / Ascend 950DT : The value range of the encoding channel ID is [0, 256). The maximum number of JPEGE channels is 256.

Atlas A3 training products / Atlas A3 inference products : The value range of the encoding channel ID is [0, 256). The maximum number of JPEGE channels is 256.

Atlas A2 training products / Atlas A2 inference products : The value range of the encoding channel ID is [0, 256). The maximum number of JPEGE channels is 256.

Atlas 200I/500 A2 inference products : The value range of this parameter is [0, 128). The JPEGE and VENC functions share the same channels, and the maximum number of channels is 128.

Atlas inference products : The value range of this parameter is [0, 256). The JPEGE and VENC functions share the same channels, and the maximum number of channels is 256.

frame

Input

Pointer to the source image information.

jpege_stream

Input

Output buffer address and length of the encoding result.

The start address of the output buffer must be 16-byte aligned. You can call hi_mpi_venc_get_jpege_predicted_size to obtain the buffer size, and then call hi_mpi_dvpp_malloc to allocate the output buffer.

milli_sec

Input

Timeout interval, in milliseconds.
  • –1: blocking mode
  • 0: non-blocking mode
  • > 0: timeout interval (timeout mode). The timeout interval varies with the operating system. The deviation is generally within a time slice of an operating system. For example, if the time slice of an operating system is 4 ms and the value of milli_sec is set to 1, the actual timeout interval ranges from 1 ms to 5 ms. When the CPU load is high, the timeout interval may fluctuate.

Returns

Restrictions

  • This API is valid only when hi_venc_chn_attr.venc_attr.buf_size is set to 0 during channel creation using hi_mpi_venc_create_chn. Calling this API in other cases returns the error code HI_ERR_VENC_NOT_SUPPORT.
  • The JPEGE input image size cannot exceed that of an encoding channel.
  • Ensure that an encoding channel has been created and started receiving images.
  • During encoding, the input and output buffers can be freed only after the result is obtained by calling hi_mpi_venc_get_stream.
  • For details about the input and output restrictions on image encoding, see JPEGE Functions and Restrictions.

Reference

For details about the API call sequence and example, see JPEGE and VENC.