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