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 |
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 |
In reply to this post by Joel A Fernandes
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. |
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 |
Free forum by Nabble | Edit this page |