AnsweredAssumed Answered

Gstreamer videomixer can't negotiate format and missing video/x-raw-yuv

Question asked by Nathan Mak on Apr 3, 2015
Latest reply on Apr 10, 2015 by Nathan Mak

Leonardo Sandoval Gonzalez

 

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?

Outcomes