hi_mpi_venc_send_jpege_frame

Applicability

Product

Supported

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

Description

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.

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 the encoding channel ID 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 the encoding channel ID 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 (ms).
  • –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.

See Also

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