AM62A7: Gstreamer color format error when splitting video stream

Part Number: AM62A7

Tool/software:

SDK VER: 10_00_00_08

I'm using this Gstreamer command to split one viedo streram into two, but there's an issue, the color of two output is error.

Actually the color in the left section are correct, the table should be yellow, but the right section is blue.

Here is the command

gst-launch-1.0 v4l2src device=/dev/video3 io-mode=dmabuf-import ! \
video/x-bayer, width=1920, height=1536, framerate=60/1, format=bggr12 ! \
tiovxisp sink_0::device=/dev/v4l-subdev4 \
sensor-name="X3F" \
dcc-isp-file=/opt/imaging/ox03f/dcc_viss.bin \
sink_0::dcc-2a-file=/opt/imaging/ox03f/dcc_2a.bin format-msb=9 ! \
video/x-raw, format=NV12, width=1920, height=1536, framerate=60/1 ! \
tiovxmultiscaler name=multi \
src_0::roi-startx=0 src_0::roi-starty=0 src_0::roi-width=1280 src_0::roi-height=720 \
src_1::roi-startx=0 src_1::roi-starty=0 src_1::roi-width=1920 src_1::roi-height=1080 \
multi.src_0 ! video/x-raw, width=1280,height=720,format=NV12 ! queue ! mosaic.sink_0 \
multi.src_1 ! video/x-raw, width=640,height=720,format=NV12 ! queue ! mosaic.sink_1 \
tiovxmosaic name=mosaic \
sink_0::startx="<0>" sink_0::starty="<0>" \
sink_1::startx="<1280>" sink_1::starty="<0>" ! \
kmssink driver-name=tidss sync=false skip-vsync=true

And here is the pipeline.

I previously updated gsttiovxmultiscaler  plugin following , and I'm pretty sure the color mismatch issue didn't exist before the update

AM62A7: Gstreamer kmssink delay question - Processors forum - Processors - TI E2E support forums

I also try videotestsrc output a blue screen,but also got a wrong color in sink_1.

gst-launch-1.0 videotestsrc is-live=true pattern=6 ! \
video/x-raw, width=1920,height=1536,format=NV12 ! \
tiovxmultiscaler name=multi \
src_0::roi-startx=0 src_0::roi-starty=0 src_0::roi-width=1280 src_0::roi-height=720 \
src_1::roi-startx=0 src_1::roi-starty=0 src_1::roi-width=1920 src_1::roi-height=1080 \
multi.src_0 ! video/x-raw, width=1280,height=720,format=NV12 ! queue ! mosaic.sink_0 \
multi.src_1 ! video/x-raw, width=640,height=720,format=NV12 ! queue ! mosaic.sink_1 \
tiovxmosaic name=mosaic \
sink_0::startx="<0>" sink_0::starty="<0>" \
sink_1::startx="<1280>" sink_1::starty="<0>" ! \
video/x-raw, format=NV12, width=1920, height=720 ! \
kmssink driver-name=tidss sync=false

I testd this command on a machine without the updated GStreamer plugin, and it works fine.

  • Hi Jason,

    I have routed your query to our expert. Please expect a response soon.

    Best Regards,

    Suren

  • Hi Jason,

    Thank you for reporting this. I've reproduced it on my side using videotestsrc. Let me look into this and get back to you as soon as possible.

    Regards,

    Jianzhong

  • Hi Jianzhong,

    Just following up, are there any update on this issue?

    Regards,

    Jason

  • Hi Jason,

    We're still investigating and trying to figure out the root cause. In my testing, I found that the issue may be related to the aspect ratio of the second downscaled image. For example, the following pipeline can run without any issue:

    gst-launch-1.0 videotestsrc is-live=true pattern=6 ! \
    video/x-raw, width=1920,height=1536,format=NV12 ! \
    tiovxmultiscaler name=multi \
    src_0::roi-startx=0 src_0::roi-starty=0 src_0::roi-width=1240 src_0::roi-height=720 \
    src_1::roi-startx=0 src_1::roi-starty=0 src_1::roi-width=1920 src_1::roi-height=1080 \
    multi.src_0 ! video/x-raw, width=1240,height=720,format=NV12 ! queue ! mosaic.sink_0 \
    multi.src_1 ! video/x-raw, width=680,height=720,format=NV12 ! queue ! mosaic.sink_1 \
    tiovxmosaic name=mosaic \
    sink_0::startx="<0>" sink_0::starty="<0>" \
    sink_1::startx="<1240>" sink_1::starty="<0>" ! \
    video/x-raw, format=NV12, width=1920, height=720 ! \
    kmssink driver-name=tidss sync=false
    

    Regards,

    Jianzhong