hi_mpi_pngd_send_stream

Applicability

Product

Supported

Atlas 350 Accelerator Card

Atlas A3 training product / Atlas A3 inference product

Atlas A2 training product / Atlas A2 inference product

Atlas 200I/500 A2 inference product

Atlas inference product

Atlas training product

Function Description

Sends the stream and decoding result buffer to a decoding channel.

Prototype

hi_s32 hi_mpi_pngd_send_stream(hi_pngd_chn chn, const hi_img_stream *stream, hi_pic_info *png_pic_info, hi_s32 milli_sec)

Parameters

Parameter

Input/Output

Description

chn

Input

Decoding channel ID.

The value range of this parameter is [0, 128). The maximum number of channels is 128.

stream

Input

Pointer to the input stream information.

The configured addr must be a buffer address on the device.

png_pic_info

Input

Pointer to the information of the output image.

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

  • Ensure that a channel has been created. Otherwise, the error code HI_ERR_PNGD_UNEXIST is returned. If the channel is destroyed when streams are being sent, the error code HI_ERR_PNGD_UNEXIST is returned.
  • To send a stream, a complete PNG image is required. Otherwise, a decoding error occurs.
  • In non-blocking mode, the error code HI_ERR_PNGD_BUF_FULL is returned if the stream buffer is full.
  • In timeout mode, if the stream fails to be sent within the specified timeout interval, the error code HI_ERR_PNGD_BUF_FULL is returned.
  • For details about the requirements on the input and output images during image decoding, see PNGD Functions and Restrictions.
  • During decoding, the input and output memory must be allocated and released by calling the hi_mpi_dvpp_malloc and hi_mpi_dvpp_free APIs. The input and output memory can be released only after the result is obtained by calling the hi_mpi_pngd_get_image_data API.

See Also

For details about the API call sequence and examples, see PNGD.