acl.himpi.venc_send_jpege_frame

C 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)

Python Function

ret = acl.himpi.venc_send_jpege_frame(chn, frame, jpege_stream, milli_sec)

Function Usage

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

The Atlas 200/300/500 Inference Product does not support this API in the current version.

The Atlas Training Series Product does not support this API in the current version.

Input Description

chn: int, encoding channel ID.

frame: dict, original image information dictionary. For details, see hi_video_frame_info.

jpege_stream: dict, which specifies the output memory address and length of the encoding result. For details, see hi_img_stream.

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

milli_sec: int, 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 still fluctuate.

Return Value

ret: int, error code.

Restrictions

  • This API is valid only when hi_venc_chn_attr.get("venc_attr")["buf_size"] is set to 0 during the call to acl.himpi.venc_create_chn to create a channel. Otherwise, the error code HI_ERR_VENC_NOT_SUPPORT is returned.
  • The JPEGE input image size must be less than or equal to the size 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 acl.himpi.venc_get_stream is called to obtain the result.
  • For details about the input and output restrictions on image encoding, see JPEGE Functions and Restrictions.