hi_mpi_vi_send_pipe_yuv

The Atlas 200/300/500 Inference Product does not support this API.

The Atlas Training Series Product does not support this API.

Description

Sends YUV data through a VI pipe.

Restrictions

  • Call hi_mpi_vi_start_pipe to start the pipe before calling this API.
  • Before sending YUV data, set the data source of the pipe to HI_VI_PIPE_FRAME_SOURCE_USER by calling hi_mpi_vi_set_pipe_frame_source. In this case, the data from the sensor is not sent to the ISP BE for processing, and the ISP BE processes only the frame data sent by the user.
  • When YUV data is sent by calling this API, the YUV data must meet the following requirements:
    • The width and height of the YUV data must be the same as those specified when a pipe is created by calling hi_mpi_vi_create_pipe.
    • The YUV frame information that is sent must be authentic and valid, which is obtained by calling hi_mpi_vi_pipe_get_buffer.
    • The pixel format of the YUV data must be the same as that configured when a pipe is created by calling hi_mpi_vi_create_pipe.
    • field of the YUV data must be set to HI_VIDEO_FIELD_FRAME.
    • video_format of the YUV data must be set to HI_VIDEO_FORMAT_LINEAR.
    • compress_mode of the YUV data must be HI_COMPRESS_MODE_NONE.
    • dynamic_range of the YUV data must be HI_DYNAMIC_RANGE_SDR8, HI_DYNAMIC_RANGE_SDR10, or HI_DYNAMIC_RANGE_XDR.
  • This API cannot be called in WDR mode.
  • Data can be sent only from the BE, not from the FE.

Prototype

hi_s32 hi_mpi_vi_send_pipe_yuv(hi_vi_pipe vi_pipe, const hi_video_frame_info *frame_info, hi_s32 milli_sec)

Parameters

Parameter

Input/Output

Description

vi_pipe

Input

Pipe ID.

Value range: [0, 12)

frame_info

Input

Pointer to the structure of the VI frame information.

milli_sec

Input

Timeout parameter.
  • -1: blocking mode
  • 0: non-blocking mode
  • > 0: specific timeout interval, in ms.

Returns