Error with qmlglsink plugin on MacOS against 1.22
Describe your issue
I'm trying to get the latest qmlglsink plugin working on on MacOS. I see this error message.
qtsink gstqtsink.cc:359:gst_qt_sink_change_state:<glsink> error: Required property 'widget' not set
It appears the widget property is not being set correctly either in gst_qt_sink_init
or gst_qt_sink_set_property
of gstqtsink.cc. I don't see this same issue with 1.18; it sets the property correctly.
This causes the entire process to abort with GST_STATE_CHANGE_FAILURE
and means the pipeline is not started.
Expected Behavior
The pipeline will start correctly.
Observed Behavior
The pipeline fails to run.
Setup
- MacOS (intel/x86)
- Computer
- GStreamer Version: 1.22.5
Steps to reproduce the bug
- Download gstreamer source, checkout 1.22.5 tag.
- Build the libgstqml.dylib (
meson setup -Dgst-plugins-good:qt=enabled build && cd build && ninja subprojects/gst-plugins-good/ext/qt/libgstqmlgl.dylib
) - Install MacOS binaries from https://gstreamer.freedesktop.org/download/. I used 1.22.5.
- Add libgstqml.dylib to
/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/
- Make sure you can see libgstqml.dylib using
gst-inspect-1.0 qmlglsink
- Clone this project: https://github.com/patrickelectric/gstpipeline-qmlsink
- Install Qt 5x using Qt Creator downloader
- Set the path:
export PATH=~/Qt/5.14.2/clang_64/bin/:$PATH
- Verify qmake:
qmake --version
->QMake version 3.1\nUsing Qt version 5.14.2...
- Generate makefile with qmake:
PKG_CONFIG_PATH=/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/pkgconfig/:/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/pkgconfig/ qmake
- Edit the gst pipeline inside the main.qml to just use videotestsrc:
sed -e '34s/.*/description: "videotestsrc"/' -i '' qml/main.qml
. It should then readdescription: "videotestsrc"
(and just start videotestsrc instead of use the complicated UDP based pipeline). make
macdeployqt ./play.app/ -qmldir=$HOME/Qt/5.14.2/clang_64/lib
GST_DEBUG=2 ./play.app/Contents/MacOS/play
Running with GST_DEBUG=2 shows this warning.
0:00:00.643647000 41543 0x7ff30f0e9400 WARN qtsink gstqtsink.cc:359:gst_qt_sink_change_state:<glsink> error: Required property 'widget' not set
And, inside gstqtsink.cc
, you can see this blocks starting the pipeline.
How reproducible is the bug?
Always
Screenshots if relevant
Solutions you have tried
I tried adding QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts);
to line 16 in main.ccp as recommended in some other threads, but this had no effect.
Tried simplifying the pipeline using videotestsrc, no luck.
Details
This is the full stack trace with GST_DEBUG=4
$ GST_DEBUG=4 ./play.app/Contents/MacOS/play
Using temporary folder: "/private/var/folders/7q/3ypj4th13gg85qy6bf3rdcdw0000gn/T"
0:00:00.000203000 41665 0x7f869a416e00 INFO GST_INIT gst.c:576:init_pre: Initializing GStreamer Core Library version 1.22.5
0:00:00.000233000 41665 0x7f869a416e00 INFO GST_INIT gst.c:577:init_pre: Using library installed in /Library/Frameworks/GStreamer.framework/Versions/1.0/lib
0:00:00.000256000 41665 0x7f869a416e00 INFO GST_INIT gst.c:597:init_pre: Darwin RooseveltPwnsU.local 19.6.0 Darwin Kernel Version 19.6.0: Tue Jun 21 21:18:39 PDT 2022; root:xnu-6153.141.66~1/RELEASE_X86_64 x86_64
0:00:00.000560000 41665 0x7f869a416e00 INFO GST_INIT gstmessage.c:129:_priv_gst_message_initialize: init messages
0:00:00.000954000 41665 0x7f869a416e00 INFO GST_INIT gstcontext.c:86:_priv_gst_context_initialize: init contexts
0:00:00.001131000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:324:_priv_gst_plugin_initialize: registering 0 static plugins
0:00:00.001234000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:232:gst_plugin_register_static: registered static plugin "staticelements"
0:00:00.001245000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:234:gst_plugin_register_static: added static plugin "staticelements", result: 1
0:00:00.001454000 41665 0x7f869a416e00 INFO GST_REGISTRY gstregistry.c:1836:ensure_current_registry: reading registry cache: /Users/xrdawson/.cache/gstreamer-1.0/registry.x86_64.bin
0:00:00.016000000 41665 0x7f869a416e00 INFO GST_REGISTRY gstregistrybinary.c:683:priv_gst_registry_binary_read_cache: loaded /Users/xrdawson/.cache/gstreamer-1.0/registry.x86_64.bin in 0.014519 seconds
0:00:00.016062000 41665 0x7f869a416e00 INFO GST_REGISTRY gstregistry.c:1703:scan_and_update_registry: Validating plugins from registry cache: /Users/xrdawson/.cache/gstreamer-1.0/registry.x86_64.bin
0:00:00.024057000 41665 0x7f869a416e00 INFO GST_REGISTRY gstregistry.c:1795:scan_and_update_registry: Registry cache has not changed
0:00:00.024068000 41665 0x7f869a416e00 INFO GST_REGISTRY gstregistry.c:1871:ensure_current_registry: registry reading and updating done
0:00:00.024075000 41665 0x7f869a416e00 INFO GST_INIT gst.c:806:init_post: GLib runtime version: 2.74.4
0:00:00.024090000 41665 0x7f869a416e00 INFO GST_INIT gst.c:808:init_post: GLib headers version: 2.74.4
0:00:00.024094000 41665 0x7f869a416e00 INFO GST_INIT gst.c:809:init_post: initialized GStreamer successfully
Window does not contain a valid pointer.
0:00:00.521603000 41665 0x7f869a416e00 INFO GST_PIPELINE gstparse.c:345:gst_parse_launch_full: parsing pipeline description 'videotestsrc ! videoconvert ! video/x-raw, format=RGBA, framerate=30/1 ! queue ! glupload ! qmlglsink name=glsink sync=true'
0:00:00.526558000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/libgstvideotestsrc.dylib" loaded
0:00:00.526775000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "videotestsrc"
0:00:00.526831000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseSrc@0x7f869aa2b8e0> adding pad 'src'
0:00:00.531632000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/libgstvideoconvertscale.dylib" loaded
0:00:00.531838000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "videoconvert"
0:00:00.531864000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x7f869b076d40> adding pad 'sink'
0:00:00.531877000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x7f869b076d40> adding pad 'src'
0:00:00.537334000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/libgstcoreelements.dylib" loaded
0:00:00.537393000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "queue"
0:00:00.537417000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstQueue@0x7f869aa361c0> adding pad 'sink'
0:00:00.537441000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstQueue@0x7f869aa361c0> adding pad 'src'
0:00:00.547213000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/libgstopengl.dylib" loaded
0:00:00.547399000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "glupload"
0:00:00.547423000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x7f869b080170> adding pad 'sink'
0:00:00.547436000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x7f869b080170> adding pad 'src'
0:00:00.558949000 41665 0x7f869a416e00 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/gstreamer-1.0/libgstqmlgl.dylib" loaded
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_lookup: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_insert: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_lookup: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_lookup: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_insert: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_lookup: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_lookup: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_insert: assertion 'pool != NULL' failed
(process:41665): GLib-GObject-CRITICAL **: 09:41:32.107: g_param_spec_pool_lookup: assertion 'pool != NULL' failed
0:00:00.559294000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "qmlglsink"
0:00:00.559323000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseSink@0x7f869aa3e730> adding pad 'sink'
0:00:00.559382000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "pipeline"
0:00:00.559512000 41665 0x7f869a416e00 INFO GST_PIPELINE gst/parse/grammar.y:1002:gst_parse_perform_link: linking some pad of GstVideoTestSrc named videotestsrc0 to some pad of GstVideoConvert named videoconvert0 (0/0) with caps "(NULL)"
0:00:00.559543000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstutils.c:1821:gst_element_link_pads_full: trying to link element videotestsrc0:(any) to element videoconvert0:(any)
0:00:00.559561000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1081:gst_pad_check_link: trying to link videotestsrc0:src and videoconvert0:sink
0:00:00.559611000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<videoconvert0:src> pad has no peer
0:00:00.559968000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1635:prepare_link_maybe_ghosting: videotestsrc0 and videoconvert0 in same bin, no need for ghost pads
0:00:00.559994000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2388:gst_pad_link_prepare: trying to link videotestsrc0:src and videoconvert0:sink
0:00:00.560004000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<videoconvert0:src> pad has no peer
0:00:00.560267000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2596:gst_pad_link_full: linked videotestsrc0:src and videoconvert0:sink, successful
0:00:00.560284000 41665 0x7f869a416e00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.560296000 41665 0x7f869a416e00 INFO GST_EVENT gstpad.c:5986:gst_pad_send_event_unchecked:<videotestsrc0:src> Received event on flushing pad. Discarding
0:00:00.560324000 41665 0x7f869a416e00 INFO GST_PIPELINE gst/parse/grammar.y:1002:gst_parse_perform_link: linking some pad of GstVideoConvert named videoconvert0 to some pad of GstQueue named queue0 (0/0) with caps "video/x-raw, format=(string)RGBA, framerate=(fraction)30/1"
0:00:00.560332000 41665 0x7f869a416e00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "capsfilter"
0:00:00.560382000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x7f869aa461d0> adding pad 'sink'
0:00:00.560397000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x7f869aa461d0> adding pad 'src'
0:00:00.560410000 41665 0x7f869a416e00 INFO GST_STATES gstbin.c:2070:gst_bin_get_state_func:<pipeline0> getting state
0:00:00.560426000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<capsfilter0> completed state change to NULL
0:00:00.560439000 41665 0x7f869a416e00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.560452000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstutils.c:1821:gst_element_link_pads_full: trying to link element videoconvert0:(any) to element capsfilter0:sink
0:00:00.560459000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:1017:gst_element_get_static_pad: found pad capsfilter0:sink
0:00:00.560465000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1635:prepare_link_maybe_ghosting: videoconvert0 and capsfilter0 in same bin, no need for ghost pads
0:00:00.560474000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2388:gst_pad_link_prepare: trying to link videoconvert0:src and capsfilter0:sink
0:00:00.560682000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<capsfilter0:src> pad has no peer
0:00:00.560710000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2596:gst_pad_link_full: linked videoconvert0:src and capsfilter0:sink, successful
0:00:00.560716000 41665 0x7f869a416e00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.560721000 41665 0x7f869a416e00 INFO GST_EVENT gstpad.c:5986:gst_pad_send_event_unchecked:<videoconvert0:src> Received event on flushing pad. Discarding
0:00:00.560732000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstutils.c:1821:gst_element_link_pads_full: trying to link element capsfilter0:src to element queue0:(any)
0:00:00.560740000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstelement.c:1017:gst_element_get_static_pad: found pad capsfilter0:src
0:00:00.560747000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1081:gst_pad_check_link: trying to link capsfilter0:src and queue0:sink
0:00:00.560968000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<queue0:src> pad has no peer
0:00:00.560981000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1635:prepare_link_maybe_ghosting: capsfilter0 and queue0 in same bin, no need for ghost pads
0:00:00.560990000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2388:gst_pad_link_prepare: trying to link capsfilter0:src and queue0:sink
0:00:00.561205000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<queue0:src> pad has no peer
0:00:00.561217000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2596:gst_pad_link_full: linked capsfilter0:src and queue0:sink, successful
0:00:00.561222000 41665 0x7f869a416e00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.561227000 41665 0x7f869a416e00 INFO GST_EVENT gstpad.c:5986:gst_pad_send_event_unchecked:<capsfilter0:src> Received event on flushing pad. Discarding
0:00:00.561241000 41665 0x7f869a416e00 INFO GST_PIPELINE gst/parse/grammar.y:1002:gst_parse_perform_link: linking some pad of GstQueue named queue0 to some pad of GstGLUploadElement named gluploadelement0 (0/0) with caps "(NULL)"
0:00:00.561248000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstutils.c:1821:gst_element_link_pads_full: trying to link element queue0:(any) to element gluploadelement0:(any)
0:00:00.561256000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1081:gst_pad_check_link: trying to link queue0:src and gluploadelement0:sink
0:00:00.561469000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<gluploadelement0:src> pad has no peer
0:00:00.561660000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1635:prepare_link_maybe_ghosting: queue0 and gluploadelement0 in same bin, no need for ghost pads
0:00:00.561676000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2388:gst_pad_link_prepare: trying to link queue0:src and gluploadelement0:sink
0:00:00.561900000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:4367:gst_pad_peer_query:<gluploadelement0:src> pad has no peer
0:00:00.562032000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2596:gst_pad_link_full: linked queue0:src and gluploadelement0:sink, successful
0:00:00.562039000 41665 0x7f869a416e00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.562045000 41665 0x7f869a416e00 INFO GST_EVENT gstpad.c:5986:gst_pad_send_event_unchecked:<queue0:src> Received event on flushing pad. Discarding
0:00:00.562059000 41665 0x7f869a416e00 INFO GST_PIPELINE gst/parse/grammar.y:1002:gst_parse_perform_link: linking some pad of GstGLUploadElement named gluploadelement0 to some pad of play named glsink (0/0) with caps "(NULL)"
0:00:00.562067000 41665 0x7f869a416e00 INFO GST_ELEMENT_PADS gstutils.c:1821:gst_element_link_pads_full: trying to link element gluploadelement0:(any) to element glsink:(any)
0:00:00.562074000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1081:gst_pad_check_link: trying to link gluploadelement0:src and glsink:sink
0:00:00.562360000 41665 0x7f869a416e00 INFO GST_PADS gstutils.c:1635:prepare_link_maybe_ghosting: gluploadelement0 and glsink in same bin, no need for ghost pads
0:00:00.562372000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2388:gst_pad_link_prepare: trying to link gluploadelement0:src and glsink:sink
0:00:00.562639000 41665 0x7f869a416e00 INFO GST_PADS gstpad.c:2596:gst_pad_link_full: linked gluploadelement0:src and glsink:sink, successful
0:00:00.562647000 41665 0x7f869a416e00 INFO GST_EVENT gstevent.c:1687:gst_event_new_reconfigure: creating reconfigure event
0:00:00.562652000 41665 0x7f869a416e00 INFO GST_EVENT gstpad.c:5986:gst_pad_send_event_unchecked:<gluploadelement0:src> Received event on flushing pad. Discarding
0:00:00.562674000 41665 0x7f869a416e00 INFO GST_PARENTAGE gstbin.c:4386:gst_bin_get_by_name: [pipeline0]: looking up child element glsink
Running pipeline: "videotestsrc"
0:00:00.563492000 41665 0x7f869a416e00 INFO qtglutility gstqtglutility.cc:94:gst_qt_get_gl_display: QGuiApplication::instance()->platformName() cocoa
(process:41665): GLib-CRITICAL **: 09:41:32.112: g_datalist_id_set_data_full: assertion 'key_id > 0' failed
(play:41665): GLib-GObject-WARNING **: 09:41:32.112: g_object_set_is_valid_property: object class 'play' has no property named 'widget'
0:00:00.656633000 41665 0x7f869a416e00 INFO glcontext gstglcontext.c:1113:_create_context_info:<glwrappedcontext0> GL_VERSION: 2.1 INTEL-14.7.28
0:00:00.656653000 41665 0x7f869a416e00 INFO glcontext gstglcontext.c:1116:_create_context_info:<glwrappedcontext0> GL_SHADING_LANGUAGE_VERSION: 1.20
0:00:00.656660000 41665 0x7f869a416e00 INFO glcontext gstglcontext.c:1118:_create_context_info:<glwrappedcontext0> GL_VENDOR: Intel Inc.
0:00:00.656674000 41665 0x7f869a416e00 INFO glcontext gstglcontext.c:1120:_create_context_info:<glwrappedcontext0> GL_RENDERER: Intel HD Graphics 4000 OpenGL Engine
0:00:00.661555000 41665 0x7f869a416e00 INFO GST_STATES gstbin.c:2484:gst_bin_element_set_state:<glsink> current NULL pending VOID_PENDING, desired next READY
0:00:00.661570000 41665 0x7f869a416e00 WARN qtsink gstqtsink.cc:359:gst_qt_sink_change_state:<glsink> error: Required property 'widget' not set
0:00:00.661584000 41665 0x7f869a416e00 INFO GST_ERROR_SYSTEM gstelement.c:2282:gst_element_message_full_with_details:<glsink> posting message: Required property 'widget' not set
0:00:00.661641000 41665 0x7f869a416e00 INFO GST_ERROR_SYSTEM gstelement.c:2309:gst_element_message_full_with_details:<glsink> posted error message: Required property 'widget' not set
0:00:00.661647000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:3102:gst_element_change_state:<glsink> have FAILURE change_state return
0:00:00.661653000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2690:gst_element_abort_state:<glsink> aborting state from NULL to READY
0:00:00.661660000 41665 0x7f869a416e00 INFO GST_STATES gstbin.c:2955:gst_bin_change_state_func:<pipeline0> child 'glsink' failed to go to state 2(READY)
0:00:00.661687000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<glsink> completed state change to NULL
0:00:00.661696000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<gluploadelement0> completed state change to NULL
0:00:00.661703000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<queue0> completed state change to NULL
0:00:00.661709000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<capsfilter0> completed state change to NULL
0:00:00.661716000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<videoconvert0> completed state change to NULL
0:00:00.661725000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:2817:gst_element_continue_state:<videotestsrc0> completed state change to NULL
0:00:00.661733000 41665 0x7f869a416e00 INFO GST_STATES gstelement.c:3102:gst_element_change_state:<pipeline0> have FAILURE change_state return