Problem 1: videomixer can't negotiate format
Using an ADV7180 connected to CSI0/IPU1 the following command works great
gst-launch -v tvsrc device=/dev/video0 typefind=true ! mfw_ipucsc ! videocrop ! mfw_v4lsink device=/dev/video17
Using a usb video source the following command works great
gst-launch v4l2src device=/dev/video2 ! mfw_v4lsink device=/dev/video17
The following command has problems
gst-launch -v \
tvsrc device=/dev/video0 typefind=true ! mfw_ipucsc ! videocrop \
! videomixer name=mix ! mfw_v4lsink sync=false \
v4l2src device=/dev/video2 \
! mix.
ouput log |
---|
root@varsomimx6q:~# gst-launch -v \ > tvsrc device=/dev/video0 typefind=true ! mfw_ipucsc ! videocrop \ > ! videomixer name=mix ! mfw_v4lsink sync=false \ > v4l2src device=/dev/video2 \ > ! mix. MFW_GST_tvsrc_PLUGIN 3.0.9 build on Sep 5 2014 14:41:24. IPU_CSC_CORE_LIBRARY_VERSION_INFOR_01.00. MFW_GST_IPU_CSC_PLUGIN 3.0.9 build on Sep 5 2014 14:42:37. MFW_GST_V4LSINK_PLUGIN 3.0.9 build on Sep 5 2014 14:40:39. Setting pipeline to PAUSED ... /GstPipeline:pipeline0/GstV4l2Src device name=Mxc Camera type=1:v4l2src0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, framerate=(fraction)30000/1001, width=(int)720, height=(int)480, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)1/1 sensor chip is adv7180_decoder /GstPipeline:pipeline0/MFWGstTVSRC:mfwgsttvsrc0.GstPad:src: caps = video/x-raw-yuv, framerate=(fraction)30/1, format=(fourcc)NV12, width=(int)720, height=(int)48[70696.582030] imx-ipuv3 2400000.ipu: IPU Warning - IPU_INT_STAT_5 = 0x00000001 0, pixel-aspect-ratio=(fraction)1/1 Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock /GstPipeline:pipeline0/GstVideoMixer:mix.GstVideoMixerPad:sink_0: caps = video/x-raw-yuv, format=(fourcc)YUY2, framerate=(fraction)30000/1001, width=(int)720, height=(int)480, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)1/1 /GstPipeline:pipeline0/MFWGstTVSRC:mfwgsttvsrc0.GstPad:src: caps = video/x-raw-yuv, framerate=(fraction)30/1, format=(fourcc)NV12, width=(int)720, height=(int)480, pixel-aspect-ratio=(fraction)1/1, field=(int)2 ERROR: from element /GstPipeline:pipeline0/MFWGstTVSRC:mfwgsttvsrc0: Internal data flow error. Additional debug info: /data/cat2700/build/var-som-mx6-dora-v5/build_mx6q/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gstreamer/0.10.36-r2/gstreamer-0.10.36/libs/gst/base/gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:pipeline0/MFWGstTVSRC:mfwgsttvsrc0: streaming task paused, reason not-negotiated (-4) Execution ended after 43930000 ns. Setting pipeline to PAUSED ... /GstPipeline:pipeline0/GstVideoMixer:mix.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, framerate=(fraction)30000/1001, width=(int)720, height=(int)480, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)1/1 Setting pipeline to READY ... set v4l rotate sucessfully >>V4L_SINK: Actually buffer status: hardware buffer : 12 software buffer : 0 /GstPipeline:pipeline0/GstVideoMixer:mix.GstVideoMixerPad:sink_0: caps = NULL /GstPipeline:pipeline0/GstVideoMixer:mix.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = NULL /GstPipeline:pipeline0/MFWGstTVSRC:mfwgsttvsrc0.GstPad:src: caps = NULL Setting pipeline to NULL ... Total rendered:0 Freeing pipeline ... [--->FINALIZE v4l_sink |
I'm not sure what the bit about filter caps is.
Problem 2:
Running something bellow with video/x-raw-yuv also doesn't work
gst-launch-0.10 -v \
tvsrc device=/dev/video0 \
! video/x-raw-yuv, framerate=30/1, width=720, height=480 \
! videomixer name=mix ! mfw_ipucsc ! videocrop ! mfw_v4lsink sync=false \
tvsrc device=/dev/video2 \
! video/x-raw-yuv, framerate=30/1, width=720, height=480 \
! mix.
I also get
root@varsomimx6q:~# gst-inspect video/x-raw-yuv
No such element or plugin 'video/x-raw-yuv'
Am I missing a plugin or is that how it just works?
1) Unfortunately this had no change in effect. Perhaps I am not using the plugin correctly?
gst-launch -v tvsrc device=/dev/video0 typefind=true ! deinterlace mode=0 ! mfw_ipucsc ! videocrop ! mfw_v4lsink device=/dev/video17
works the same without the deinterlace pluging. Also doesn't matter what order I insert that plugin.
gst-launch -v \
tvsrc device=/dev/video0 ! deinterlace mode=0 ! mfw_ipucsc ! videocrop \
! videomixer name=mix ! mfw_v4lsink sync=false \
v4l2src device=/dev/video2 \
! mix.
Still fails
2) Good to know I don't need video/x-raw... I saw other people using it so thought I was missing something.