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

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

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

2,579 次查看
nathanmak
Contributor II

LeonardoSandovalGonzalez

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?

0 项奖励
回复
2 回复数

1,612 次查看
joanxie
NXP TechSupport
NXP TechSupport

1) if you use adv7180, pls try to use "deinterlace" plugin

2) video/x-raw-yuv isn't a plugin, so you couldn't search it by gst-inspect, I dont' think you issue is caused by 'video/x-raw-yuv'

0 项奖励
回复

1,612 次查看
nathanmak
Contributor II

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.

0 项奖励
回复