Stride and Height Alignment

Linux Drivers

Release Date
2023-07-22

Multiple IPs required aligned stride and height to work properly, but till now there is no way to share this information with Multi-Scaler plugin and driver.

Multi-Scaler driver has implemented a mechanism to  provide stride and height align values per channel for both output and capture pads, at run-time. This is temporary fix. Once the stride and height alignment support added to plugin, this change will be reverted.

Example 1:

Filesrc -> Decoder -> Multi-Scaler -> filesink

As decoder require 256 align byteperline and 64 align lines  per frame, so the setting before running gstreamer pipe are :

echo 256 > /sys/modules/xilinx-multi-scaler/parameters/output_stride_align
echo 64 > /sys/modules/xilinx-multi-scaler/parameters/output_height_align
echo 1 > /sys/modules/xilinx-multi-scaler/parameters/capture_stride_align
echo 1 > /sys/modules/xilinx-multi-scaler/parameters/capture_height_align

And then run :

gst-launch-1.0  filesrc location=./1080p_h264.mp4 ! qtdemux ! h264parse ! omxh264dec ! v4l2video1convert capture-io-mode=4 output-io-mode=5 ! video/x-raw, width=1280, height=720, format=BGR ! filesink

Example 2:

Filesrc -> Decoder -> Multi-Scaler -> DP kmssink

echo 256 > /sys/modules/xilinx-multi-scaler/parameters/output_stride_align
echo 64 > /sys/modules/xilinx-multi-scaler/parameters/output_height_align
echo 256 > /sys/modules/xilinx-multi-scaler/parameters/capture_stride_align
echo 1 > /sys/modules/xilinx-multi-scaler/parameters/capture_height_align

And the run:

gst-launch-1.0  filesrc location=./1080p_h264.mp4 ! qtdemux ! h264parse ! omxh264dec ! v4l2video1convert capture-io-mode=4 output-io-mode=5 ! video/x-raw, width=1280, height=720, format=BGR ! queue max-size-bytes=0 ! kmssink bus-id="fd4a0000.zynqmp-display" fullscreen-overlay=1 sync=false

Example 3:

videotestsrc  -> Multi-Scaler -> filesink

echo 1 > /sys/modules/xilinx-multi-scaler/parameters/output_stride_align
echo 1 > /sys/modules/xilinx-multi-scaler/parameters/output_height_align
echo 1 > /sys/modules/xilinx-multi-scaler/parameters/capture_stride_align
echo 1 > /sys/modules/xilinx-multi-scaler/parameters/capture_height_align

Example 4:

videotestsrc  -> Multi-Scaler0 -> filesink

Filesrc -> Decoder -> Multi-Scaler1 -> DP kmssink

echo 1,256 > /sys/modules/xilinx-multi-scaler/parameters/output_stride_align
echo 1,64 > /sys/modules/xilinx-multi-scaler/parameters/output_height_align
echo 1,256 > /sys/modules/xilinx-multi-scaler/parameters/capture_stride_align
echo 1,1 > /sys/modules/xilinx-multi-scaler/parameters/capture_height_align