Gstreamer v4l2src could not negotiate format

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Gstreamer v4l2src could not negotiate format

Joel A Fernandes
Hi,

I wanted to share a certain problem I'm having with a Gstreamer
pipeline in hope to get some feedback

My command line looks like:

gst-launch -v v4l2src device=/dev/video2 !
'video/x-raw-yuv,width=640,height=480,format=(fourcc)UYVY' ! TIVidenc1
codecName=mpeg4enc engineName=codecServer ! filesink
location=output.m4v

I'm using the mt9v113 Camera sensor driver which works fine from a
simple v4l2 app. However, with Gstreamer v4l2src, it fails to set the
format (infact I don't see any S_FMT v4l2 IOCTL being called)

Even with the additional caps filter, I get a "could not negotiate
format" error. It seems that v4l2src enumerates over a set of formats
with ISP and gives up. The sensor driver code doesn't execute AFAIK at
this stage yet.

Here is a list of IOCTLs that Gstreamer calls on the video node.

ioctl(9, VIDIOC_QUERYCAP or VT_OPENQRY, 0xbe8e0328) = 0
ioctl(9, VIDIOC_G_FMT or VT_SENDSIG, 0xbe8e025c) = 0
ioctl(9, VIDIOC_ENUM_FMT or VT_SETMODE, 0xbe8e015c) = -1 EINVAL
(Invalid argument)
ioctl(9, VIDIOC_QUERYCAP or VT_OPENQRY, 0xbe8e01c8) = 0
ioctl(9, VIDIOC_G_INPUT, 0xbe8dfae8)    = 0
ioctl(9, VIDIOC_ENUMINPUT, 0xbe8dfae8)  = 0
ioctl(9, VIDIOC_QUERYCTRL, 0xbe8dfb5c)  = -1 EINVAL (Invalid argument)
ioctl(9, VIDIOC_QUERYCTRL, 0xbe8dfb5c)  = -1 EINVAL (Invalid argument)
ioctl(9, VIDIOC_QUERYCTRL, 0xbe8dfb5c)  = -1 EINVAL (Invalid argument)
ioctl(9, VIDIOC_QUERYCTRL, 0xbe8dfb5c)  = -1 EINVAL (Invalid argument)
ioctl(9, VIDIOC_QUERYCTRL, 0xbe8dfb5c)  = -1 EINVAL (Invalid argument)
ioctl(9, VIDIOC_QUERYCAP or VT_OPENQRY, 0xbe8dfba0) = 0
ioctl(9, VIDIOC_QUERYCAP or VT_OPENQRY, 0x75b94) = 0
ioctl(9, VIDIOC_ENUMINPUT, 0xbe8e0498)  = 0

It seems that, no where does it call VIDIOC_S_FMT to set the format, I
would expect it to do so as I've specified the format in the caps
filter element. As you can see, ENUM_FMT is not implemented by the ISP
driver and so it fails and soon after I see these IOCTLs, before
Gstreamer throws a "Could not negotiate format":

ioctl(9, VIDIOC_QUERYCTRL, 0xbe8e0534)  = -1 EINVAL (Invalid argument)
ioctl(9, VIDIOC_QUERYCTRL, 0xbe8e0534)  = -1 EINVAL (Invalid argument)
ioctl(9, VIDIOC_G_STD, 0xbe8e0580)      = -1 EINVAL (Invalid argument)
ioctl(9, VIDIOC_G_INPUT, 0xbe8e0564)    = 0
ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0

Here's the complete debug(=3) log, I've also pasted the logs at [1]
incase its not very readable here. Thanks for any suggestions.

0:00:00.022033691   898   0x324050 INFO                GST_INIT
gstquery.c:108:_gst_query_initialize: init queries
0:00:00.029510498   898   0x324050 INFO                GST_INIT
gstmessage.c:73:_gst_message_initialize: init messages
0:00:00.031219482   898   0x324050 INFO      GST_PLUGIN_LOADING
gstplugin.c:350:_gst_plugin_initialize: registering 0 static plugins
0:00:00.032623291   898   0x324050 INFO      GST_PLUGIN_LOADING
gstplugin.c:255:gst_plugin_register_static: registered static plugin
"staticelements"
0:00:00.032745361   898   0x324050 INFO      GST_PLUGIN_LOADING
gstplugin.c:257:gst_plugin_register_static: added static plugin
"staticelements", result: 1
0:00:00.056152343   898   0x324050 INFO            GST_REGISTRY
gstregistry.c:1599:ensure_current_registry: reading registry cache:
/home/root/.gstreamer-0.10/registry.arm.bin
0:00:00.226959228   898   0x324050 INFO            GST_REGISTRY
gstregistrybinary.c:614:gst_registry_binary_read_cache: loaded
/home/root/.gstreamer-0.10/registry.arm.bin in 0.170380 seconds
0:00:00.227569580   898   0x324050 INFO            GST_REGISTRY
gstregistry.c:1469:scan_and_update_registry: Validating plugins from
registry cache: /home/root/.gstreamer-0.10/registry.arm.bin
0:00:00.405212402   898   0x324050 INFO            GST_REGISTRY
gstregistry.c:1561:scan_and_update_registry: Registry cache has not
changed
0:00:00.405395507   898   0x324050 INFO            GST_REGISTRY
gstregistry.c:1628:ensure_current_registry: registry reading and
updating done, result = 1
0:00:00.405456543   898   0x324050 INFO                GST_INIT
gst.c:792:init_post: GLib runtime version: 2.28.5
0:00:00.405517578   898   0x324050 INFO                GST_INIT
gst.c:794:init_post: GLib headers version: 2.26.1
0:00:00.405792236   898   0x324050 INFO            GST_PIPELINE
gstparse.c:299:gst_parse_launch_full: parsing pipeline description
'v4l2src device=/dev/video2 ! video/x-raw-yuv,format=(fourcc)UYVY !
TIVidenc1 codecName=mpeg4enc engineName=codecServer ! filesink
location=output.m4v '
0:00:00.482940673   898   0x324050 INFO      GST_PLUGIN_LOADING
gstplugin.c:859:gst_plugin_load_file: plugin
"/usr/lib/gstreamer-0.10/libgstvideo4linux2.so" loaded
0:00:00.483123779   898   0x324050 INFO     GST_ELEMENT_FACTORY
gstelementfactory.c:371:gst_element_factory_create: creating element
"v4l2src"
0:00:00.487335205   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:716:gst_element_add_pad:<GstBaseSrc@0x462050> adding pad
'src'
CMEM Error: init: Failed to open /dev/cmem: 'No such file or directory'
0:00:00.502593994   898   0x324050 INFO      GST_PLUGIN_LOADING
gstplugin.c:859:gst_plugin_load_file: plugin
"/usr/lib/gstreamer-0.10/libgstticodecplugin.so" loaded
0:00:00.502746582   898   0x324050 INFO     GST_ELEMENT_FACTORY
gstelementfactory.c:371:gst_element_factory_create: creating element
"TIVidenc1"
0:00:00.505645752   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:716:gst_element_add_pad:<GstTIVidenc1@0x467038> adding
pad 'sink'
0:00:00.505828857   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:716:gst_element_add_pad:<GstTIVidenc1@0x467038> adding
pad 'src'
0:00:00.512603759   898   0x324050 INFO      GST_PLUGIN_LOADING
gstplugin.c:859:gst_plugin_load_file: plugin
"/usr/lib/gstreamer-0.10/libgstcoreelements.so" loaded
0:00:00.512786865   898   0x324050 INFO     GST_ELEMENT_FACTORY
gstelementfactory.c:371:gst_element_factory_create: creating element
"filesink"
0:00:00.514221191   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:716:gst_element_add_pad:<GstBaseSink@0x46c008> adding pad
'sink'
0:00:00.514801025   898   0x324050 INFO     GST_ELEMENT_FACTORY
gstelementfactory.c:371:gst_element_factory_create: creating element
"pipeline"
0:00:00.515625000   898   0x324050 INFO            GST_PIPELINE
./grammar.y:568:gst_parse_perform_link: linking v4l2src0:(any) to
tividenc10:(any) (0/0) with caps "video/x-raw-yuv,
format=(fourcc)UYVY"
0:00:00.515899658   898   0x324050 INFO     GST_ELEMENT_FACTORY
gstelementfactory.c:371:gst_element_factory_create: creating element
"capsfilter"
0:00:00.516876220   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:716:gst_element_add_pad:<GstBaseTransform@0x470078>
adding pad 'sink'
0:00:00.517242431   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:716:gst_element_add_pad:<GstBaseTransform@0x470078>
adding pad 'src'
0:00:00.517639160   898   0x324050 INFO              GST_STATES
gstbin.c:1759:gst_bin_get_state_func:<pipeline0> getting state
0:00:00.517883301   898   0x324050 INFO              GST_STATES
gstelement.c:2341:gst_element_continue_state:<capsfilter0> completed
state change to NULL
0:00:00.518096924   898   0x324050 INFO        GST_ELEMENT_PADS
gstutils.c:1568:gst_element_link_pads_full: trying to link element
v4l2src0:(any) to element capsfilter0:sink
0:00:00.518188476   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:963:gst_element_get_static_pad: found pad
capsfilter0:sink
0:00:00.518280029   898   0x324050 INFO                GST_PADS
gstutils.c:1468:prepare_link_maybe_ghosting: v4l2src0 and capsfilter0
in same bin, no need for ghost pads
0:00:00.518493652   898   0x324050 INFO                GST_PADS
gstpad.c:1941:gst_pad_link_prepare: trying to link v4l2src0:src and
capsfilter0:sink
0:00:00.519256592   898   0x324050 INFO                GST_PADS
gstpad.c:2124:gst_pad_link_full: linked v4l2src0:src and
capsfilter0:sink, successful
0:00:00.519470215   898   0x324050 INFO        GST_ELEMENT_PADS
gstutils.c:1568:gst_element_link_pads_full: trying to link element
capsfilter0:src to element tividenc10:(any)
0:00:00.519561767   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:963:gst_element_get_static_pad: found pad capsfilter0:src
0:00:00.519622802   898   0x324050 INFO                GST_PADS
gstutils.c:1028:gst_pad_check_link: trying to link capsfilter0:src and
tividenc10:sink
0:00:00.521728515   898   0x324050 INFO                GST_PADS
gstutils.c:1468:prepare_link_maybe_ghosting: capsfilter0 and
tividenc10 in same bin, no need for ghost pads
0:00:00.521911621   898   0x324050 INFO                GST_PADS
gstpad.c:1941:gst_pad_link_prepare: trying to link capsfilter0:src and
tividenc10:sink
0:00:00.523834228   898   0x324050 INFO                GST_PADS
gstpad.c:2124:gst_pad_link_full: linked capsfilter0:src and
tividenc10:sink, successful
0:00:00.524078369   898   0x324050 INFO            GST_PIPELINE
./grammar.y:568:gst_parse_perform_link: linking tividenc10:(any) to
filesink0:(any) (0/0) with caps "(NULL)"
0:00:00.524169921   898   0x324050 INFO        GST_ELEMENT_PADS
gstutils.c:1568:gst_element_link_pads_full: trying to link element
tividenc10:(any) to element filesink0:(any)
0:00:00.524261474   898   0x324050 INFO                GST_PADS
gstutils.c:1028:gst_pad_check_link: trying to link tividenc10:src and
filesink0:sink
0:00:00.524353027   898   0x324050 INFO                GST_PADS
gstutils.c:1468:prepare_link_maybe_ghosting: tividenc10 and filesink0
in same bin, no need for ghost pads
0:00:00.524475097   898   0x324050 INFO                GST_PADS
gstpad.c:1941:gst_pad_link_prepare: trying to link tividenc10:src and
filesink0:sink
0:00:00.524566650   898   0x324050 INFO                GST_PADS
gstpad.c:2124:gst_pad_link_full: linked tividenc10:src and
filesink0:sink, successful
Setting pipeline to PAUSED ...
0:00:00.608276368   898   0x324050 INFO              GST_STATES
gstelement.c:2341:gst_element_continue_state:<filesink0> completed
state change to READY
0:00:00.608428956   898   0x324050 INFO              GST_STATES
gstelement.c:2354:gst_element_continue_state:<filesink0> posting
state-changed NULL to READY
0:00:00.608764649   898   0x324050 INFO              GST_STATES
gstbin.c:2492:gst_bin_change_state_func:<pipeline0> child 'filesink0'
changed state to 2(READY) successfully
0:00:00.608917237   898   0x324050 INFO              GST_STATES
gstelement.c:2341:gst_element_continue_state:<tividenc10> completed
state change to READY
0:00:00.609008790   898   0x324050 INFO              GST_STATES
gstelement.c:2354:gst_element_continue_state:<tividenc10> posting
state-changed NULL to READY
0:00:00.609130860   898   0x324050 INFO              GST_STATES
gstbin.c:2492:gst_bin_change_state_func:<pipeline0> child 'tividenc10'
changed state to 2(READY) successfully
0:00:00.609283448   898   0x324050 INFO              GST_STATES
gstelement.c:2341:gst_element_continue_state:<capsfilter0> completed
state change to READY
0:00:00.609344483   898   0x324050 INFO              GST_STATES
gstelement.c:2354:gst_element_continue_state:<capsfilter0> posting
state-changed NULL to READY
0:00:00.609466553   898   0x324050 INFO              GST_STATES
gstbin.c:2492:gst_bin_change_state_func:<pipeline0> child
'capsfilter0' changed state to 2(READY) successfully
0:00:01.583831788   898   0x324050 INFO                    v4l2
v4l2_calls.c:480:gst_v4l2_open:<v4l2src0> Opened device 'OMAP3 ISP
CCDC output' (/dev/video2) successfully
0:00:01.584228516   898   0x324050 INFO              GST_STATES
gstelement.c:2341:gst_element_continue_state:<v4l2src0> completed
state change to READY
0:00:01.584320069   898   0x324050 INFO              GST_STATES
gstelement.c:2354:gst_element_continue_state:<v4l2src0> posting
state-changed NULL to READY
0:00:01.584503174   898   0x324050 INFO              GST_STATES
gstbin.c:2492:gst_bin_change_state_func:<pipeline0> child 'v4l2src0'
changed state to 2(READY) successfully
0:00:01.584625245   898   0x324050 INFO              GST_STATES
gstelement.c:2314:gst_element_continue_state:<pipeline0> committing
state from NULL to READY, pending PAUSED, next PAUSED
0:00:01.586975098   898   0x324050 INFO              GST_STATES
gstelement.c:2323:gst_element_continue_state:<pipeline0> continue
state change READY to PAUSED, final PAUSED
0:00:01.587432862   898   0x324050 INFO              GST_STATES
gstbin.c:2498:gst_bin_change_state_func:<pipeline0> child 'filesink0'
is changing state asynchronously to PAUSED
0:00:01.587646485   898   0x324050 INFO              GST_STATES
gstelement.c:2341:gst_element_continue_state:<tividenc10> completed
state change to PAUSED
0:00:01.587860108   898   0x324050 INFO              GST_STATES
gstelement.c:2354:gst_element_continue_state:<tividenc10> posting
state-changed READY to PAUSED
0:00:01.587982178   898   0x324050 INFO              GST_STATES
gstbin.c:2492:gst_bin_change_state_func:<pipeline0> child 'tividenc10'
changed state to 3(PAUSED) successfully
0:00:01.588134766   898   0x324050 INFO              GST_STATES
gstelement.c:2341:gst_element_continue_state:<capsfilter0> completed
state change to PAUSED
0:00:01.588226319   898   0x324050 INFO              GST_STATES
gstelement.c:2354:gst_element_continue_state:<capsfilter0> posting
state-changed READY to PAUSED
0:00:01.588317872   898   0x324050 INFO              GST_STATES
gstbin.c:2492:gst_bin_change_state_func:<pipeline0> child
'capsfilter0' changed state to 3(PAUSED) successfully
0:00:01.588531495   898   0x324050 INFO                    v4l2
gstv4l2object.c:1032:gst_v4l2_object_fill_format_list:<v4l2src0> got 4
format(s):
0:00:01.588623047   898   0x324050 INFO                    v4l2
gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
YU12 (emulated)
0:00:01.588684083   898   0x324050 INFO                    v4l2
gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
YV12 (emulated)
0:00:01.588745118   898   0x324050 INFO                    v4l2
gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
BGR3 (emulated)
0:00:01.588806153   898   0x324050 INFO                    v4l2
gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
RGB3 (emulated)
0:00:05.126037598   898   0x324050 INFO                 v4l2src
gstv4l2src.c:607:gst_v4l2src_get_caps:<v4l2src0> probed caps:
video/x-raw-yuv, format=(fourcc)I420, framerate=(fraction)[ 0/1, 100/1
], width=(int)640, height=(int)480, interlaced=(boolean)false;
video/x-raw-yuv, format=(fourcc)YV12, framerate=(fraction)[ 0/1, 100/1
], width=(int)640, height=(int)480, interlaced=(boolean)false;
video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)255,
green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321,
framerate=(fraction)[ 0/1, 100/1 ], width=(int)640, height=(int)480,
interlaced=(boolean)false; video/x-raw-rgb, bpp=(int)24,
depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280,
blue_mask=(int)255, endianness=(int)4321, framerate=(fraction)[ 0/1,
100/1 ], width=(int)640, height=(int)480, interlaced=(boolean)false
0:00:05.127746583   898   0x324050 WARN                 basesrc
gstbasesrc.c:2778:gst_base_src_start:<v4l2src0> error: Could not
negotiate format
0:00:05.127899170   898   0x324050 WARN                 basesrc
gstbasesrc.c:2778:gst_base_src_start:<v4l2src0> error: Check your
filtered caps, if any
0:00:05.128082276   898   0x324050 INFO        GST_ERROR_SYSTEM
gstelement.c:1865:gst_element_message_full:<v4l2src0> posting message:
Could not negotiate format
0:00:05.128234864   898   0x324050 INFO        GST_ERROR_SYSTEM
gstelement.c:1888:gst_element_message_full:<v4l2src0> posted error
message: Could not negotiate format
0:00:05.128326417   898   0x324050 WARN                 basesrc
gstbasesrc.c:2974:gst_base_src_activate_push:<v4l2src0> Failed to
start in push mode
0:00:05.128387452   898   0x324050 INFO                GST_PADS
gstpad.c:983:gst_pad_activate_push:<v4l2src0:src> failed to activate
in push mode
0:00:05.128479004   898   0x324050 WARN                GST_PADS
gstpad.c:734:gst_pad_set_active:<v4l2src0:src> Failed to activate pad
0:00:05.128570557   898   0x324050 INFO              GST_STATES
gstelement.c:2658:gst_element_change_state:<v4l2src0> have FAILURE
change_state return
0:00:05.128631592   898   0x324050 INFO              GST_STATES
gstelement.c:2235:gst_element_abort_state:<v4l2src0> aborting state
from READY to PAUSED
0:00:05.128692627   898   0x324050 INFO              GST_STATES
gstbin.c:2508:gst_bin_change_state_func:<pipeline0> child 'v4l2src0'
failed to go to state 3(PAUSED)
0:00:05.128784180   898   0x324050 INFO              GST_STATES
gstelement.c:2658:gst_element_change_state:<pipeline0> have FAILURE
change_state return
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could
not negotiate format
Additional debug info:
gstbasesrc.c(2778): gst_base_src_start ():
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Check your filtered caps, if any
Setting pipeline to NULL ...
0:00:05.131439209   898   0x324050 INFO              GST_STATES
gstelement.c:2314:gst_element_continue_state:<filesink0> committing
state from READY to READY, pending NULL, next NULL
0:00:05.131591797   898   0x324050 INFO              GST_STATES
gstelement.c:2323:gst_element_continue_state:<filesink0> continue
state change READY to NULL, final NULL
0:00:05.133789063   898   0x324050 INFO              GST_STATES
gstelement.c:2341:gst_element_continue_state:<filesink0> completed
state change to NULL
0:00:05.133941650   898   0x324050 INFO              GST_STATES
gstelement.c:2354:gst_element_continue_state:<filesink0> posting
state-changed READY to NULL
0:00:05.134124756   898   0x324050 INFO              GST_STATES
gstbin.c:2492:gst_bin_change_state_func:<pipeline0> child 'filesink0'
changed state to 1(NULL) successfully
0:00:05.134368897   898   0x324050 INFO              GST_STATES
gstelement.c:2314:gst_element_continue_state:<tividenc10> committing
state from PAUSED to READY, pending NULL, next NULL
0:00:05.134521484   898   0x324050 INFO              GST_STATES
gstelement.c:2323:gst_element_continue_state:<tividenc10> continue
state change READY to NULL, final NULL
0:00:05.134735108   898   0x324050 INFO              GST_STATES
gstelement.c:2341:gst_element_continue_state:<tividenc10> completed
state change to NULL
0:00:05.134796143   898   0x324050 INFO              GST_STATES
gstelement.c:2354:gst_element_continue_state:<tividenc10> posting
state-changed READY to NULL
0:00:05.134918214   898   0x324050 INFO              GST_STATES
gstbin.c:2492:gst_bin_change_state_func:<pipeline0> child 'tividenc10'
changed state to 1(NULL) successfully
0:00:05.135101319   898   0x324050 INFO              GST_STATES
gstelement.c:2314:gst_element_continue_state:<capsfilter0> committing
state from PAUSED to READY, pending NULL, next NULL
0:00:05.135284424   898   0x324050 INFO              GST_STATES
gstelement.c:2323:gst_element_continue_state:<capsfilter0> continue
state change READY to NULL, final NULL
0:00:05.135375977   898   0x324050 INFO              GST_STATES
gstelement.c:2341:gst_element_continue_state:<capsfilter0> completed
state change to NULL
0:00:05.135437012   898   0x324050 INFO              GST_STATES
gstelement.c:2354:gst_element_continue_state:<capsfilter0> posting
state-changed READY to NULL
0:00:05.135528565   898   0x324050 INFO              GST_STATES
gstbin.c:2492:gst_bin_change_state_func:<pipeline0> child
'capsfilter0' changed state to 1(NULL) successfully
0:00:05.140869141   898   0x324050 INFO              GST_STATES
gstelement.c:2341:gst_element_continue_state:<v4l2src0> completed
state change to NULL
0:00:05.141021729   898   0x324050 INFO              GST_STATES
gstelement.c:2354:gst_element_continue_state:<v4l2src0> posting
state-changed READY to NULL
0:00:05.141174317   898   0x324050 INFO              GST_STATES
gstbin.c:2492:gst_bin_change_state_func:<pipeline0> child 'v4l2src0'
changed state to 1(NULL) successfully
0:00:05.141448975   898   0x324050 INFO              GST_STATES
gstelement.c:2341:gst_element_continue_state:<pipeline0> completed
state change to NULL
0:00:05.141510010   898   0x324050 INFO              GST_STATES
gstelement.c:2354:gst_element_continue_state:<pipeline0> posting
state-changed READY to NULL
0:00:05.141662598   898   0x324050 INFO              GST_STATES
gstbin.c:1759:gst_bin_get_state_func:<pipeline0> getting state
Freeing pipeline ...
0:00:05.141906738   898   0x324050 INFO        GST_ELEMENT_PADS
gstpad.c:1713:gst_pad_unlink: unlinking capsfilter0:src(0x4643f0) and
tividenc10:sink(0x4640d0)
0:00:05.142120361   898   0x324050 INFO        GST_ELEMENT_PADS
gstpad.c:1758:gst_pad_unlink: unlinked capsfilter0:src and
tividenc10:sink
0:00:05.144714356   898   0x324050 INFO        GST_ELEMENT_PADS
gstpad.c:1713:gst_pad_unlink: unlinking v4l2src0:src(0x464008) and
capsfilter0:sink(0x464328)
0:00:05.144958497   898   0x324050 INFO        GST_ELEMENT_PADS
gstpad.c:1758:gst_pad_unlink: unlinked v4l2src0:src and
capsfilter0:sink
0:00:05.145141602   898   0x324050 INFO           GST_PARENTAGE
gstbin.c:1440:gst_bin_remove_func:<pipeline0> removed child
"capsfilter0"
0:00:05.145294190   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:2955:gst_element_dispose:<capsfilter0> dispose
0:00:05.145355225   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:835:gst_element_remove_pad:<capsfilter0> removing pad
'src'
0:00:05.145568848   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:835:gst_element_remove_pad:<capsfilter0> removing pad
'sink'
0:00:05.145690918   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:2979:gst_element_dispose:<capsfilter0> parent class
dispose
0:00:05.145751953   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:3010:gst_element_finalize:<capsfilter0> finalize
0:00:05.145812989   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:3021:gst_element_finalize:<capsfilter0> finalize parent
0:00:05.145904541   898   0x324050 INFO        GST_ELEMENT_PADS
gstpad.c:1713:gst_pad_unlink: unlinking tividenc10:src(0x464198) and
filesink0:sink(0x464260)
0:00:05.146057129   898   0x324050 INFO        GST_ELEMENT_PADS
gstpad.c:1758:gst_pad_unlink: unlinked tividenc10:src and
filesink0:sink
0:00:05.146209717   898   0x324050 INFO           GST_PARENTAGE
gstbin.c:1440:gst_bin_remove_func:<pipeline0> removed child
"filesink0"
0:00:05.146331787   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:2955:gst_element_dispose:<filesink0> dispose
0:00:05.146392823   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:835:gst_element_remove_pad:<filesink0> removing pad
'sink'
0:00:05.146484375   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:2979:gst_element_dispose:<filesink0> parent class dispose
0:00:05.146575928   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:3010:gst_element_finalize:<filesink0> finalize
0:00:05.146667481   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:3021:gst_element_finalize:<filesink0> finalize parent
0:00:05.146789551   898   0x324050 INFO           GST_PARENTAGE
gstbin.c:1440:gst_bin_remove_func:<pipeline0> removed child
"tividenc10"
0:00:05.146881104   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:2955:gst_element_dispose:<tividenc10> dispose
0:00:05.146942139   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:835:gst_element_remove_pad:<tividenc10> removing pad
'src'
0:00:05.147064209   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:835:gst_element_remove_pad:<tividenc10> removing pad
'sink'
0:00:05.147216797   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:2979:gst_element_dispose:<tividenc10> parent class
dispose
0:00:05.147277832   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:3010:gst_element_finalize:<tividenc10> finalize
0:00:05.147338867   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:3021:gst_element_finalize:<tividenc10> finalize parent
0:00:05.147430420   898   0x324050 INFO           GST_PARENTAGE
gstbin.c:1440:gst_bin_remove_func:<pipeline0> removed child "v4l2src0"
0:00:05.147552490   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:2955:gst_element_dispose:<v4l2src0> dispose
0:00:05.147613526   898   0x324050 INFO        GST_ELEMENT_PADS
gstelement.c:835:gst_element_remove_pad:<v4l2src0> removing pad 'src'
0:00:05.147705078   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:2979:gst_element_dispose:<v4l2src0> parent class dispose
0:00:05.147888184   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:3010:gst_element_finalize:<v4l2src0> finalize
0:00:05.147949219   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:3021:gst_element_finalize:<v4l2src0> finalize parent
0:00:05.148040772   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:2955:gst_element_dispose:<pipeline0> dispose
0:00:05.148132324   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:2979:gst_element_dispose:<pipeline0> parent class dispose
0:00:05.148223877   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:3010:gst_element_finalize:<pipeline0> finalize
0:00:05.148284912   898   0x324050 INFO         GST_REFCOUNTING
gstelement.c:3021:gst_element_finalize:<pipeline0> finalize parent
0:00:05.148345947   898   0x324050 INFO                GST_INIT
gst.c:1010:gst_deinit: deinitializing GStreamer
0:00:05.173309326   898   0x324050 INFO                GST_INIT
gst.c:1113:gst_deinit: deinitialized GStreamer


Thanks for any help,
Joel

[1] http://pastebin.com/raw.php?i=wGMKQc15
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Gstreamer v4l2src could not negotiate format

Wim Taymans
On 07/28/2011 01:31 PM, Joel A Fernandes wrote:

> Hi,
>
> I wanted to share a certain problem I'm having with a Gstreamer
> pipeline in hope to get some feedback
>
> My command line looks like:
>
> gst-launch -v v4l2src device=/dev/video2 !
> 'video/x-raw-yuv,width=640,height=480,format=(fourcc)UYVY' ! TIVidenc1
> codecName=mpeg4enc engineName=codecServer ! filesink
> location=output.m4v

Important is to read the error message that this pipeline produces
because it tells you what is wrong:

 > ERROR: Pipeline doesn't want to pause.
 > ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could
 > not negotiate format
 > Additional debug info:
 > gstbasesrc.c(2778): gst_base_src_start ():
 > /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
 > Check your filtered caps, if any

Some snippet from the debug log (it queries the supported formats):

gstv4l2object.c:1032:gst_v4l2_object_fill_format_list:<v4l2src0>  got 4
format(s):
 > 0:00:01.588623047   898   0x324050 INFO                    v4l2
 > gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
 > YU12 (emulated)
 > 0:00:01.588684083   898   0x324050 INFO                    v4l2
 > gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
 > YV12 (emulated)
 > 0:00:01.588745118   898   0x324050 INFO                    v4l2
 > gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
 > BGR3 (emulated)
 > 0:00:01.588806153   898   0x324050 INFO                    v4l2
 > gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
 > RGB3 (emulated)

So the camera supports only 4 formats: YU12, YV12, BGR3 and RGB3 all of
them emulated.

Since you are trying to make it produce UYVY with the capsfilter, this
will fail, as the error message suggests. It does not call VIDEOC_S_FMT
because the query of the formats revealed that UYVY is not supported.

Wim

>
> I'm using the mt9v113 Camera sensor driver which works fine from a
> simple v4l2 app. However, with Gstreamer v4l2src, it fails to set the
> format (infact I don't see any S_FMT v4l2 IOCTL being called)
>
> Even with the additional caps filter, I get a "could not negotiate
> format" error. It seems that v4l2src enumerates over a set of formats
> with ISP and gives up. The sensor driver code doesn't execute AFAIK at
> this stage yet.
>
> Here is a list of IOCTLs that Gstreamer calls on the video node.
>
> ioctl(9, VIDIOC_QUERYCAP or VT_OPENQRY, 0xbe8e0328) = 0
> ioctl(9, VIDIOC_G_FMT or VT_SENDSIG, 0xbe8e025c) = 0
> ioctl(9, VIDIOC_ENUM_FMT or VT_SETMODE, 0xbe8e015c) = -1 EINVAL
> (Invalid argument)
> ioctl(9, VIDIOC_QUERYCAP or VT_OPENQRY, 0xbe8e01c8) = 0
> ioctl(9, VIDIOC_G_INPUT, 0xbe8dfae8)    = 0
> ioctl(9, VIDIOC_ENUMINPUT, 0xbe8dfae8)  = 0
> ioctl(9, VIDIOC_QUERYCTRL, 0xbe8dfb5c)  = -1 EINVAL (Invalid argument)
> ioctl(9, VIDIOC_QUERYCTRL, 0xbe8dfb5c)  = -1 EINVAL (Invalid argument)
> ioctl(9, VIDIOC_QUERYCTRL, 0xbe8dfb5c)  = -1 EINVAL (Invalid argument)
> ioctl(9, VIDIOC_QUERYCTRL, 0xbe8dfb5c)  = -1 EINVAL (Invalid argument)
> ioctl(9, VIDIOC_QUERYCTRL, 0xbe8dfb5c)  = -1 EINVAL (Invalid argument)
> ioctl(9, VIDIOC_QUERYCAP or VT_OPENQRY, 0xbe8dfba0) = 0
> ioctl(9, VIDIOC_QUERYCAP or VT_OPENQRY, 0x75b94) = 0
> ioctl(9, VIDIOC_ENUMINPUT, 0xbe8e0498)  = 0
>
> It seems that, no where does it call VIDIOC_S_FMT to set the format, I
> would expect it to do so as I've specified the format in the caps
> filter element. As you can see, ENUM_FMT is not implemented by the ISP
> driver and so it fails and soon after I see these IOCTLs, before
> Gstreamer throws a "Could not negotiate format":
>
> ioctl(9, VIDIOC_QUERYCTRL, 0xbe8e0534)  = -1 EINVAL (Invalid argument)
> ioctl(9, VIDIOC_QUERYCTRL, 0xbe8e0534)  = -1 EINVAL (Invalid argument)
> ioctl(9, VIDIOC_G_STD, 0xbe8e0580)      = -1 EINVAL (Invalid argument)
> ioctl(9, VIDIOC_G_INPUT, 0xbe8e0564)    = 0
> ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
> ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
> ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
> ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
> ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
> ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
> ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
> ioctl(9, VIDIOC_TRY_FMT, 0xbe8e00f4)    = 0
>
> Here's the complete debug(=3) log, I've also pasted the logs at [1]
> incase its not very readable here. Thanks for any suggestions.
>
> 0:00:00.022033691   898   0x324050 INFO                GST_INIT
> gstquery.c:108:_gst_query_initialize: init queries
> 0:00:00.029510498   898   0x324050 INFO                GST_INIT
> gstmessage.c:73:_gst_message_initialize: init messages
> 0:00:00.031219482   898   0x324050 INFO      GST_PLUGIN_LOADING
> gstplugin.c:350:_gst_plugin_initialize: registering 0 static plugins
> 0:00:00.032623291   898   0x324050 INFO      GST_PLUGIN_LOADING
> gstplugin.c:255:gst_plugin_register_static: registered static plugin
> "staticelements"
> 0:00:00.032745361   898   0x324050 INFO      GST_PLUGIN_LOADING
> gstplugin.c:257:gst_plugin_register_static: added static plugin
> "staticelements", result: 1
> 0:00:00.056152343   898   0x324050 INFO            GST_REGISTRY
> gstregistry.c:1599:ensure_current_registry: reading registry cache:
> /home/root/.gstreamer-0.10/registry.arm.bin
> 0:00:00.226959228   898   0x324050 INFO            GST_REGISTRY
> gstregistrybinary.c:614:gst_registry_binary_read_cache: loaded
> /home/root/.gstreamer-0.10/registry.arm.bin in 0.170380 seconds
> 0:00:00.227569580   898   0x324050 INFO            GST_REGISTRY
> gstregistry.c:1469:scan_and_update_registry: Validating plugins from
> registry cache: /home/root/.gstreamer-0.10/registry.arm.bin
> 0:00:00.405212402   898   0x324050 INFO            GST_REGISTRY
> gstregistry.c:1561:scan_and_update_registry: Registry cache has not
> changed
> 0:00:00.405395507   898   0x324050 INFO            GST_REGISTRY
> gstregistry.c:1628:ensure_current_registry: registry reading and
> updating done, result = 1
> 0:00:00.405456543   898   0x324050 INFO                GST_INIT
> gst.c:792:init_post: GLib runtime version: 2.28.5
> 0:00:00.405517578   898   0x324050 INFO                GST_INIT
> gst.c:794:init_post: GLib headers version: 2.26.1
> 0:00:00.405792236   898   0x324050 INFO            GST_PIPELINE
> gstparse.c:299:gst_parse_launch_full: parsing pipeline description
> 'v4l2src device=/dev/video2 ! video/x-raw-yuv,format=(fourcc)UYVY !
> TIVidenc1 codecName=mpeg4enc engineName=codecServer ! filesink
> location=output.m4v '
> 0:00:00.482940673   898   0x324050 INFO      GST_PLUGIN_LOADING
> gstplugin.c:859:gst_plugin_load_file: plugin
> "/usr/lib/gstreamer-0.10/libgstvideo4linux2.so" loaded
> 0:00:00.483123779   898   0x324050 INFO     GST_ELEMENT_FACTORY
> gstelementfactory.c:371:gst_element_factory_create: creating element
> "v4l2src"
> 0:00:00.487335205   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:716:gst_element_add_pad:<GstBaseSrc@0x462050>  adding pad
> 'src'
> CMEM Error: init: Failed to open /dev/cmem: 'No such file or directory'
> 0:00:00.502593994   898   0x324050 INFO      GST_PLUGIN_LOADING
> gstplugin.c:859:gst_plugin_load_file: plugin
> "/usr/lib/gstreamer-0.10/libgstticodecplugin.so" loaded
> 0:00:00.502746582   898   0x324050 INFO     GST_ELEMENT_FACTORY
> gstelementfactory.c:371:gst_element_factory_create: creating element
> "TIVidenc1"
> 0:00:00.505645752   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:716:gst_element_add_pad:<GstTIVidenc1@0x467038>  adding
> pad 'sink'
> 0:00:00.505828857   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:716:gst_element_add_pad:<GstTIVidenc1@0x467038>  adding
> pad 'src'
> 0:00:00.512603759   898   0x324050 INFO      GST_PLUGIN_LOADING
> gstplugin.c:859:gst_plugin_load_file: plugin
> "/usr/lib/gstreamer-0.10/libgstcoreelements.so" loaded
> 0:00:00.512786865   898   0x324050 INFO     GST_ELEMENT_FACTORY
> gstelementfactory.c:371:gst_element_factory_create: creating element
> "filesink"
> 0:00:00.514221191   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:716:gst_element_add_pad:<GstBaseSink@0x46c008>  adding pad
> 'sink'
> 0:00:00.514801025   898   0x324050 INFO     GST_ELEMENT_FACTORY
> gstelementfactory.c:371:gst_element_factory_create: creating element
> "pipeline"
> 0:00:00.515625000   898   0x324050 INFO            GST_PIPELINE
> ./grammar.y:568:gst_parse_perform_link: linking v4l2src0:(any) to
> tividenc10:(any) (0/0) with caps "video/x-raw-yuv,
> format=(fourcc)UYVY"
> 0:00:00.515899658   898   0x324050 INFO     GST_ELEMENT_FACTORY
> gstelementfactory.c:371:gst_element_factory_create: creating element
> "capsfilter"
> 0:00:00.516876220   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:716:gst_element_add_pad:<GstBaseTransform@0x470078>
> adding pad 'sink'
> 0:00:00.517242431   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:716:gst_element_add_pad:<GstBaseTransform@0x470078>
> adding pad 'src'
> 0:00:00.517639160   898   0x324050 INFO              GST_STATES
> gstbin.c:1759:gst_bin_get_state_func:<pipeline0>  getting state
> 0:00:00.517883301   898   0x324050 INFO              GST_STATES
> gstelement.c:2341:gst_element_continue_state:<capsfilter0>  completed
> state change to NULL
> 0:00:00.518096924   898   0x324050 INFO        GST_ELEMENT_PADS
> gstutils.c:1568:gst_element_link_pads_full: trying to link element
> v4l2src0:(any) to element capsfilter0:sink
> 0:00:00.518188476   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:963:gst_element_get_static_pad: found pad
> capsfilter0:sink
> 0:00:00.518280029   898   0x324050 INFO                GST_PADS
> gstutils.c:1468:prepare_link_maybe_ghosting: v4l2src0 and capsfilter0
> in same bin, no need for ghost pads
> 0:00:00.518493652   898   0x324050 INFO                GST_PADS
> gstpad.c:1941:gst_pad_link_prepare: trying to link v4l2src0:src and
> capsfilter0:sink
> 0:00:00.519256592   898   0x324050 INFO                GST_PADS
> gstpad.c:2124:gst_pad_link_full: linked v4l2src0:src and
> capsfilter0:sink, successful
> 0:00:00.519470215   898   0x324050 INFO        GST_ELEMENT_PADS
> gstutils.c:1568:gst_element_link_pads_full: trying to link element
> capsfilter0:src to element tividenc10:(any)
> 0:00:00.519561767   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:963:gst_element_get_static_pad: found pad capsfilter0:src
> 0:00:00.519622802   898   0x324050 INFO                GST_PADS
> gstutils.c:1028:gst_pad_check_link: trying to link capsfilter0:src and
> tividenc10:sink
> 0:00:00.521728515   898   0x324050 INFO                GST_PADS
> gstutils.c:1468:prepare_link_maybe_ghosting: capsfilter0 and
> tividenc10 in same bin, no need for ghost pads
> 0:00:00.521911621   898   0x324050 INFO                GST_PADS
> gstpad.c:1941:gst_pad_link_prepare: trying to link capsfilter0:src and
> tividenc10:sink
> 0:00:00.523834228   898   0x324050 INFO                GST_PADS
> gstpad.c:2124:gst_pad_link_full: linked capsfilter0:src and
> tividenc10:sink, successful
> 0:00:00.524078369   898   0x324050 INFO            GST_PIPELINE
> ./grammar.y:568:gst_parse_perform_link: linking tividenc10:(any) to
> filesink0:(any) (0/0) with caps "(NULL)"
> 0:00:00.524169921   898   0x324050 INFO        GST_ELEMENT_PADS
> gstutils.c:1568:gst_element_link_pads_full: trying to link element
> tividenc10:(any) to element filesink0:(any)
> 0:00:00.524261474   898   0x324050 INFO                GST_PADS
> gstutils.c:1028:gst_pad_check_link: trying to link tividenc10:src and
> filesink0:sink
> 0:00:00.524353027   898   0x324050 INFO                GST_PADS
> gstutils.c:1468:prepare_link_maybe_ghosting: tividenc10 and filesink0
> in same bin, no need for ghost pads
> 0:00:00.524475097   898   0x324050 INFO                GST_PADS
> gstpad.c:1941:gst_pad_link_prepare: trying to link tividenc10:src and
> filesink0:sink
> 0:00:00.524566650   898   0x324050 INFO                GST_PADS
> gstpad.c:2124:gst_pad_link_full: linked tividenc10:src and
> filesink0:sink, successful
> Setting pipeline to PAUSED ...
> 0:00:00.608276368   898   0x324050 INFO              GST_STATES
> gstelement.c:2341:gst_element_continue_state:<filesink0>  completed
> state change to READY
> 0:00:00.608428956   898   0x324050 INFO              GST_STATES
> gstelement.c:2354:gst_element_continue_state:<filesink0>  posting
> state-changed NULL to READY
> 0:00:00.608764649   898   0x324050 INFO              GST_STATES
> gstbin.c:2492:gst_bin_change_state_func:<pipeline0>  child 'filesink0'
> changed state to 2(READY) successfully
> 0:00:00.608917237   898   0x324050 INFO              GST_STATES
> gstelement.c:2341:gst_element_continue_state:<tividenc10>  completed
> state change to READY
> 0:00:00.609008790   898   0x324050 INFO              GST_STATES
> gstelement.c:2354:gst_element_continue_state:<tividenc10>  posting
> state-changed NULL to READY
> 0:00:00.609130860   898   0x324050 INFO              GST_STATES
> gstbin.c:2492:gst_bin_change_state_func:<pipeline0>  child 'tividenc10'
> changed state to 2(READY) successfully
> 0:00:00.609283448   898   0x324050 INFO              GST_STATES
> gstelement.c:2341:gst_element_continue_state:<capsfilter0>  completed
> state change to READY
> 0:00:00.609344483   898   0x324050 INFO              GST_STATES
> gstelement.c:2354:gst_element_continue_state:<capsfilter0>  posting
> state-changed NULL to READY
> 0:00:00.609466553   898   0x324050 INFO              GST_STATES
> gstbin.c:2492:gst_bin_change_state_func:<pipeline0>  child
> 'capsfilter0' changed state to 2(READY) successfully
> 0:00:01.583831788   898   0x324050 INFO                    v4l2
> v4l2_calls.c:480:gst_v4l2_open:<v4l2src0>  Opened device 'OMAP3 ISP
> CCDC output' (/dev/video2) successfully
> 0:00:01.584228516   898   0x324050 INFO              GST_STATES
> gstelement.c:2341:gst_element_continue_state:<v4l2src0>  completed
> state change to READY
> 0:00:01.584320069   898   0x324050 INFO              GST_STATES
> gstelement.c:2354:gst_element_continue_state:<v4l2src0>  posting
> state-changed NULL to READY
> 0:00:01.584503174   898   0x324050 INFO              GST_STATES
> gstbin.c:2492:gst_bin_change_state_func:<pipeline0>  child 'v4l2src0'
> changed state to 2(READY) successfully
> 0:00:01.584625245   898   0x324050 INFO              GST_STATES
> gstelement.c:2314:gst_element_continue_state:<pipeline0>  committing
> state from NULL to READY, pending PAUSED, next PAUSED
> 0:00:01.586975098   898   0x324050 INFO              GST_STATES
> gstelement.c:2323:gst_element_continue_state:<pipeline0>  continue
> state change READY to PAUSED, final PAUSED
> 0:00:01.587432862   898   0x324050 INFO              GST_STATES
> gstbin.c:2498:gst_bin_change_state_func:<pipeline0>  child 'filesink0'
> is changing state asynchronously to PAUSED
> 0:00:01.587646485   898   0x324050 INFO              GST_STATES
> gstelement.c:2341:gst_element_continue_state:<tividenc10>  completed
> state change to PAUSED
> 0:00:01.587860108   898   0x324050 INFO              GST_STATES
> gstelement.c:2354:gst_element_continue_state:<tividenc10>  posting
> state-changed READY to PAUSED
> 0:00:01.587982178   898   0x324050 INFO              GST_STATES
> gstbin.c:2492:gst_bin_change_state_func:<pipeline0>  child 'tividenc10'
> changed state to 3(PAUSED) successfully
> 0:00:01.588134766   898   0x324050 INFO              GST_STATES
> gstelement.c:2341:gst_element_continue_state:<capsfilter0>  completed
> state change to PAUSED
> 0:00:01.588226319   898   0x324050 INFO              GST_STATES
> gstelement.c:2354:gst_element_continue_state:<capsfilter0>  posting
> state-changed READY to PAUSED
> 0:00:01.588317872   898   0x324050 INFO              GST_STATES
> gstbin.c:2492:gst_bin_change_state_func:<pipeline0>  child
> 'capsfilter0' changed state to 3(PAUSED) successfully
> 0:00:01.588531495   898   0x324050 INFO                    v4l2
> gstv4l2object.c:1032:gst_v4l2_object_fill_format_list:<v4l2src0>  got 4
> format(s):
> 0:00:01.588623047   898   0x324050 INFO                    v4l2
> gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
> YU12 (emulated)
> 0:00:01.588684083   898   0x324050 INFO                    v4l2
> gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
> YV12 (emulated)
> 0:00:01.588745118   898   0x324050 INFO                    v4l2
> gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
> BGR3 (emulated)
> 0:00:01.588806153   898   0x324050 INFO                    v4l2
> gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
> RGB3 (emulated)
> 0:00:05.126037598   898   0x324050 INFO                 v4l2src
> gstv4l2src.c:607:gst_v4l2src_get_caps:<v4l2src0>  probed caps:
> video/x-raw-yuv, format=(fourcc)I420, framerate=(fraction)[ 0/1, 100/1
> ], width=(int)640, height=(int)480, interlaced=(boolean)false;
> video/x-raw-yuv, format=(fourcc)YV12, framerate=(fraction)[ 0/1, 100/1
> ], width=(int)640, height=(int)480, interlaced=(boolean)false;
> video/x-raw-rgb, bpp=(int)24, depth=(int)24, red_mask=(int)255,
> green_mask=(int)65280, blue_mask=(int)16711680, endianness=(int)4321,
> framerate=(fraction)[ 0/1, 100/1 ], width=(int)640, height=(int)480,
> interlaced=(boolean)false; video/x-raw-rgb, bpp=(int)24,
> depth=(int)24, red_mask=(int)16711680, green_mask=(int)65280,
> blue_mask=(int)255, endianness=(int)4321, framerate=(fraction)[ 0/1,
> 100/1 ], width=(int)640, height=(int)480, interlaced=(boolean)false
> 0:00:05.127746583   898   0x324050 WARN                 basesrc
> gstbasesrc.c:2778:gst_base_src_start:<v4l2src0>  error: Could not
> negotiate format
> 0:00:05.127899170   898   0x324050 WARN                 basesrc
> gstbasesrc.c:2778:gst_base_src_start:<v4l2src0>  error: Check your
> filtered caps, if any
> 0:00:05.128082276   898   0x324050 INFO        GST_ERROR_SYSTEM
> gstelement.c:1865:gst_element_message_full:<v4l2src0>  posting message:
> Could not negotiate format
> 0:00:05.128234864   898   0x324050 INFO        GST_ERROR_SYSTEM
> gstelement.c:1888:gst_element_message_full:<v4l2src0>  posted error
> message: Could not negotiate format
> 0:00:05.128326417   898   0x324050 WARN                 basesrc
> gstbasesrc.c:2974:gst_base_src_activate_push:<v4l2src0>  Failed to
> start in push mode
> 0:00:05.128387452   898   0x324050 INFO                GST_PADS
> gstpad.c:983:gst_pad_activate_push:<v4l2src0:src>  failed to activate
> in push mode
> 0:00:05.128479004   898   0x324050 WARN                GST_PADS
> gstpad.c:734:gst_pad_set_active:<v4l2src0:src>  Failed to activate pad
> 0:00:05.128570557   898   0x324050 INFO              GST_STATES
> gstelement.c:2658:gst_element_change_state:<v4l2src0>  have FAILURE
> change_state return
> 0:00:05.128631592   898   0x324050 INFO              GST_STATES
> gstelement.c:2235:gst_element_abort_state:<v4l2src0>  aborting state
> from READY to PAUSED
> 0:00:05.128692627   898   0x324050 INFO              GST_STATES
> gstbin.c:2508:gst_bin_change_state_func:<pipeline0>  child 'v4l2src0'
> failed to go to state 3(PAUSED)
> 0:00:05.128784180   898   0x324050 INFO              GST_STATES
> gstelement.c:2658:gst_element_change_state:<pipeline0>  have FAILURE
> change_state return
> ERROR: Pipeline doesn't want to pause.
> ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could
> not negotiate format
> Additional debug info:
> gstbasesrc.c(2778): gst_base_src_start ():
> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
> Check your filtered caps, if any
> Setting pipeline to NULL ...
> 0:00:05.131439209   898   0x324050 INFO              GST_STATES
> gstelement.c:2314:gst_element_continue_state:<filesink0>  committing
> state from READY to READY, pending NULL, next NULL
> 0:00:05.131591797   898   0x324050 INFO              GST_STATES
> gstelement.c:2323:gst_element_continue_state:<filesink0>  continue
> state change READY to NULL, final NULL
> 0:00:05.133789063   898   0x324050 INFO              GST_STATES
> gstelement.c:2341:gst_element_continue_state:<filesink0>  completed
> state change to NULL
> 0:00:05.133941650   898   0x324050 INFO              GST_STATES
> gstelement.c:2354:gst_element_continue_state:<filesink0>  posting
> state-changed READY to NULL
> 0:00:05.134124756   898   0x324050 INFO              GST_STATES
> gstbin.c:2492:gst_bin_change_state_func:<pipeline0>  child 'filesink0'
> changed state to 1(NULL) successfully
> 0:00:05.134368897   898   0x324050 INFO              GST_STATES
> gstelement.c:2314:gst_element_continue_state:<tividenc10>  committing
> state from PAUSED to READY, pending NULL, next NULL
> 0:00:05.134521484   898   0x324050 INFO              GST_STATES
> gstelement.c:2323:gst_element_continue_state:<tividenc10>  continue
> state change READY to NULL, final NULL
> 0:00:05.134735108   898   0x324050 INFO              GST_STATES
> gstelement.c:2341:gst_element_continue_state:<tividenc10>  completed
> state change to NULL
> 0:00:05.134796143   898   0x324050 INFO              GST_STATES
> gstelement.c:2354:gst_element_continue_state:<tividenc10>  posting
> state-changed READY to NULL
> 0:00:05.134918214   898   0x324050 INFO              GST_STATES
> gstbin.c:2492:gst_bin_change_state_func:<pipeline0>  child 'tividenc10'
> changed state to 1(NULL) successfully
> 0:00:05.135101319   898   0x324050 INFO              GST_STATES
> gstelement.c:2314:gst_element_continue_state:<capsfilter0>  committing
> state from PAUSED to READY, pending NULL, next NULL
> 0:00:05.135284424   898   0x324050 INFO              GST_STATES
> gstelement.c:2323:gst_element_continue_state:<capsfilter0>  continue
> state change READY to NULL, final NULL
> 0:00:05.135375977   898   0x324050 INFO              GST_STATES
> gstelement.c:2341:gst_element_continue_state:<capsfilter0>  completed
> state change to NULL
> 0:00:05.135437012   898   0x324050 INFO              GST_STATES
> gstelement.c:2354:gst_element_continue_state:<capsfilter0>  posting
> state-changed READY to NULL
> 0:00:05.135528565   898   0x324050 INFO              GST_STATES
> gstbin.c:2492:gst_bin_change_state_func:<pipeline0>  child
> 'capsfilter0' changed state to 1(NULL) successfully
> 0:00:05.140869141   898   0x324050 INFO              GST_STATES
> gstelement.c:2341:gst_element_continue_state:<v4l2src0>  completed
> state change to NULL
> 0:00:05.141021729   898   0x324050 INFO              GST_STATES
> gstelement.c:2354:gst_element_continue_state:<v4l2src0>  posting
> state-changed READY to NULL
> 0:00:05.141174317   898   0x324050 INFO              GST_STATES
> gstbin.c:2492:gst_bin_change_state_func:<pipeline0>  child 'v4l2src0'
> changed state to 1(NULL) successfully
> 0:00:05.141448975   898   0x324050 INFO              GST_STATES
> gstelement.c:2341:gst_element_continue_state:<pipeline0>  completed
> state change to NULL
> 0:00:05.141510010   898   0x324050 INFO              GST_STATES
> gstelement.c:2354:gst_element_continue_state:<pipeline0>  posting
> state-changed READY to NULL
> 0:00:05.141662598   898   0x324050 INFO              GST_STATES
> gstbin.c:1759:gst_bin_get_state_func:<pipeline0>  getting state
> Freeing pipeline ...
> 0:00:05.141906738   898   0x324050 INFO        GST_ELEMENT_PADS
> gstpad.c:1713:gst_pad_unlink: unlinking capsfilter0:src(0x4643f0) and
> tividenc10:sink(0x4640d0)
> 0:00:05.142120361   898   0x324050 INFO        GST_ELEMENT_PADS
> gstpad.c:1758:gst_pad_unlink: unlinked capsfilter0:src and
> tividenc10:sink
> 0:00:05.144714356   898   0x324050 INFO        GST_ELEMENT_PADS
> gstpad.c:1713:gst_pad_unlink: unlinking v4l2src0:src(0x464008) and
> capsfilter0:sink(0x464328)
> 0:00:05.144958497   898   0x324050 INFO        GST_ELEMENT_PADS
> gstpad.c:1758:gst_pad_unlink: unlinked v4l2src0:src and
> capsfilter0:sink
> 0:00:05.145141602   898   0x324050 INFO           GST_PARENTAGE
> gstbin.c:1440:gst_bin_remove_func:<pipeline0>  removed child
> "capsfilter0"
> 0:00:05.145294190   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:2955:gst_element_dispose:<capsfilter0>  dispose
> 0:00:05.145355225   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:835:gst_element_remove_pad:<capsfilter0>  removing pad
> 'src'
> 0:00:05.145568848   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:835:gst_element_remove_pad:<capsfilter0>  removing pad
> 'sink'
> 0:00:05.145690918   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:2979:gst_element_dispose:<capsfilter0>  parent class
> dispose
> 0:00:05.145751953   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:3010:gst_element_finalize:<capsfilter0>  finalize
> 0:00:05.145812989   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:3021:gst_element_finalize:<capsfilter0>  finalize parent
> 0:00:05.145904541   898   0x324050 INFO        GST_ELEMENT_PADS
> gstpad.c:1713:gst_pad_unlink: unlinking tividenc10:src(0x464198) and
> filesink0:sink(0x464260)
> 0:00:05.146057129   898   0x324050 INFO        GST_ELEMENT_PADS
> gstpad.c:1758:gst_pad_unlink: unlinked tividenc10:src and
> filesink0:sink
> 0:00:05.146209717   898   0x324050 INFO           GST_PARENTAGE
> gstbin.c:1440:gst_bin_remove_func:<pipeline0>  removed child
> "filesink0"
> 0:00:05.146331787   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:2955:gst_element_dispose:<filesink0>  dispose
> 0:00:05.146392823   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:835:gst_element_remove_pad:<filesink0>  removing pad
> 'sink'
> 0:00:05.146484375   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:2979:gst_element_dispose:<filesink0>  parent class dispose
> 0:00:05.146575928   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:3010:gst_element_finalize:<filesink0>  finalize
> 0:00:05.146667481   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:3021:gst_element_finalize:<filesink0>  finalize parent
> 0:00:05.146789551   898   0x324050 INFO           GST_PARENTAGE
> gstbin.c:1440:gst_bin_remove_func:<pipeline0>  removed child
> "tividenc10"
> 0:00:05.146881104   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:2955:gst_element_dispose:<tividenc10>  dispose
> 0:00:05.146942139   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:835:gst_element_remove_pad:<tividenc10>  removing pad
> 'src'
> 0:00:05.147064209   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:835:gst_element_remove_pad:<tividenc10>  removing pad
> 'sink'
> 0:00:05.147216797   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:2979:gst_element_dispose:<tividenc10>  parent class
> dispose
> 0:00:05.147277832   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:3010:gst_element_finalize:<tividenc10>  finalize
> 0:00:05.147338867   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:3021:gst_element_finalize:<tividenc10>  finalize parent
> 0:00:05.147430420   898   0x324050 INFO           GST_PARENTAGE
> gstbin.c:1440:gst_bin_remove_func:<pipeline0>  removed child "v4l2src0"
> 0:00:05.147552490   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:2955:gst_element_dispose:<v4l2src0>  dispose
> 0:00:05.147613526   898   0x324050 INFO        GST_ELEMENT_PADS
> gstelement.c:835:gst_element_remove_pad:<v4l2src0>  removing pad 'src'
> 0:00:05.147705078   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:2979:gst_element_dispose:<v4l2src0>  parent class dispose
> 0:00:05.147888184   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:3010:gst_element_finalize:<v4l2src0>  finalize
> 0:00:05.147949219   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:3021:gst_element_finalize:<v4l2src0>  finalize parent
> 0:00:05.148040772   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:2955:gst_element_dispose:<pipeline0>  dispose
> 0:00:05.148132324   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:2979:gst_element_dispose:<pipeline0>  parent class dispose
> 0:00:05.148223877   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:3010:gst_element_finalize:<pipeline0>  finalize
> 0:00:05.148284912   898   0x324050 INFO         GST_REFCOUNTING
> gstelement.c:3021:gst_element_finalize:<pipeline0>  finalize parent
> 0:00:05.148345947   898   0x324050 INFO                GST_INIT
> gst.c:1010:gst_deinit: deinitializing GStreamer
> 0:00:05.173309326   898   0x324050 INFO                GST_INIT
> gst.c:1113:gst_deinit: deinitialized GStreamer
>
>
> Thanks for any help,
> Joel
>
> [1] http://pastebin.com/raw.php?i=wGMKQc15
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Gstreamer v4l2src could not negotiate format

wally_bkg
In reply to this post by Joel A Fernandes
Joel A Fernandes wrote
My command line looks like:

gst-launch -v v4l2src device=/dev/video2 !
'video/x-raw-yuv,width=640,height=480,format=(fourcc)UYVY' ! TIVidenc1
codecName=mpeg4enc engineName=codecServer ! filesink
location=output.m4v
Try letting ffmpegcolorspace convert from what the camera supports to UYVY:

gst-launch -v v4l2src device=/dev/video2 ! ffmpegcolorspace !
'video/x-raw-yuv,width=640,height=480,format=(fourcc)UYVY' ! TIVidenc1
codecName=mpeg4enc engineName=codecServer ! filesink
location=output.m4v

I've run into cameras and capture cards that don't support 640x480 frames, so you might need a videoscale element in there too if this it the case.
Reply | Threaded
Open this post in threaded view
|

Re: Gstreamer v4l2src could not negotiate format

Joel A Fernandes
In reply to this post by Wim Taymans
Hi Wim,

> Some snippet from the debug log (it queries the supported formats):
>
> gstv4l2object.c:1032:gst_v4l2_object_fill_format_list:<v4l2src0>  got 4
> format(s):
>> 0:00:01.588623047   898   0x324050 INFO                    v4l2
>> gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
>> YU12 (emulated)
>> 0:00:01.588684083   898   0x324050 INFO                    v4l2
>> gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
>> YV12 (emulated)
>> 0:00:01.588745118   898   0x324050 INFO                    v4l2
>> gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
>> BGR3 (emulated)
>> 0:00:01.588806153   898   0x324050 INFO                    v4l2
>> gstv4l2object.c:1038:gst_v4l2_object_fill_format_list:<v4l2src0>
>> RGB3 (emulated)
>
> So the camera supports only 4 formats: YU12, YV12, BGR3 and RGB3 all of them
> emulated.
>
> Since you are trying to make it produce UYVY with the capsfilter, this will
> fail, as the error message suggests. It does not call VIDEOC_S_FMT because
> the query of the formats revealed that UYVY is not supported.
>

Thanks for your suggestion. The camera driver supports only UYVY and
YUYV for now so I'm unusure about why (who) is returning these
formats. I dug into this further, and it seems that there are no
query/enumeration related IOCTLs being called during this enumeration
process. libv4l2 I'm guessing is returning some "emulated" formats
which seem to be unsupported.

My questions are:

1. Why does the v4l2src plugin not call the S_FMT function? I'm
guessing because of errors during v4l2s_src_get_caps which fails
because it tries to find the size for unsupported formats by making
IOCTLs to the driver (ioctl TRY_FMT)

2. In this case, how do I override the "format detection" part of v4l2src?

3. Is there something flawed in the way format detection/query is happening?

4. Why does it not use the caps filter parameters I pass in my
pipeline [1] instead of trying to query for formats?

5. Does libv4l2 conditionally make IOCTL system calls, when the
application requests it to do so by calling libv4l2_ioctl? I notice
that there are no ENUM_FMT calls at all when the code that determines
formats was executed, though v4l2src appeared to call libv4l2_ioctl.

Many Thanks,
Joel

[1] gst-launch -v v4l2src device=/dev/video2 !
'video/x-raw-yuv,width=640,height=480,format=(fourcc)UYVY' ! TIVidenc1
codecName=mpeg4enc engineName=codecServer ! filesink location=output.m4v
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Gstreamer v4l2src could not negotiate format

JamesAng
Hi Joel,

Do you have further information that can aid with getting v4l2src to work in your situation?

Thank you.

James.