We are using IMX6 CSI to connect capture devices: SII9135 HDMI receiver(input format: 20bit, YUYV, 1920, 1080) and ADV7180 video decoder(input format: UYVY, 720, 576)
The Gstreamer capture plugin is: "mfw_v4lsrc", and display plugin: "mfw_isink"
Because there are colorspace imcompatible, I tried to use "mfw_ipucsc" and "ffmpegcolorspace" to do the conversion, but meet problem when launch the pipeline.
The command we are using is:
-------------------------SII9135----------
gst-launch-0.10 -v mfw_v4lsrc device="/dev/video1" ! video/x-raw-yuv,format=YUYV,width=1920,height=1080 ! ffmpegcolorspace ! 'video/x-raw-yuv,format=(fourcc)I420, width=1920,height=1080' ! mfw_isink axis-top=0 axis-left=80 disp-width=640 disp-height=480
MFW_GST_V4LSRC_PLUGIN 3.0.7 build on Aug 18 2014 05:20:19.
MFW_GST_ISINK_PLUGIN 3.0.7 build on Aug 18 2014 05:20:33.
WARNING: erroneous pipeline: could not link mfwgstv4lsrc0 to ffmpegcsp0
------------------------ADV7180--------
gst-launch-0.10 -v 'mfw_v4lsrc device="/dev/video0"' ! 'video/x-raw-yuv,format=UYVY,width=720,height=576,framerate=25/1' ! mfw_ipucsc ! 'video/x-raw-yuv,format=(fourcc)I420,width=720,height=576,framerate=25/1' ! mfw_isink
The Gstreamer will report error:
MFW_GST_V4LSRC_PLUGIN 3.0.7 build on Aug 18 2014 05:20:19.
IPU_CSC_CORE_LIBRARY_VERSION_INFOR_01.00.
MFW_GST_IPU_CSC_PLUGIN 3.0.7 build on Aug 19 2014 02:33:36.
MFW_GST_ISINK_PLUGIN 3.0.7 build on Aug 18 2014 05:20:33.
WARNING: erroneous pipeline: could not link mfwgstv4lsrc0 to mfwgstipucsc0
-------------------------------------------------
Seems the input format YUYV and UYVY is not compatible with mfw_ipucsc , ffmpegcolorspace and mfw_isink plugins, format I420 can work, but the output video is not right.
Somebody knows how to setup the pipleline for SII9135 and ADV7180 capture devices? or there is some problem with my driver code?
Appreciated!
You may use gst-inspect to see which formats mfw_ipucsc supports.
$ gst-inspect mfw_ipucsc | egrep 'format|video/'
Unfortunately it seems that YUYV and UYVY are not supported.
You can find online some examples using fourcc codecs on gstreamer although these are not included on Freescale’s BSP.
Here is the update for the issue.
1. Using IMX6 test program, we can get correct video bypass output.
The test command we are using is below:
>./mxc_v4l2_overlay.out -m 4 -iw 1920 -ih 1080 -it 0 -il 0 -ow 1920 -oh 1080 -ot 0 -ol 0 -r 0 -t -1 -d 0 -fg -fr 30 -di /dev/video1 -do /dev/video16
/dev/video1 is Sii9135 input device, video16 is HDMI output device. the output is correct as below,
2. Using Gstreamer pipeline, the video output is wrong, the command is below:
>./gst-launch-0.10 -v 'mfw_v4lsrc device="/dev/video1"' ! 'video/x-raw-yuv, format=(fourcc)I420, width=1920, height=1080' ! mfw_isink
The two photo of the output is below:
The video is blinking and with color bar.
We think that maybe colorspace mismatch between the video source and sink, the sii9135 input is YUYV-16bit, but the pipeline is using I420 format.
The gstreamer plugin(version 3.0.7) "mfw_v4lsrc" seems using a fixed pixformat "I420", is it the problem?