Gustav Evertsson
2018-11-27 09:01:57 UTC
I am trying to play video in qtwebkit using gstreamer 1.0. I can see
that gstreamer get called, plugins is loaded, src and sink is setup
etc but then it just stops and no video is showed in the browser. I
use the qt5 example browser to test it. I build Sumo yocto without
wayland and x11. Is there anything specific that needs to be done to
enable this combination? Video plays as it should with
gst-play-1.0.We use Congatec's Sumo branch, it is meta-freescale Sumo
branch (from July 2018) plus some minor changes for GPIO etc so I hope
it is ok that I send my question to this mailing
list.IMAGE_INSTALL_append += "\ packagegroup-imx-tools-audio \
imx-codec \ pulseaudio \ qtbase-plugins \ qtbase-tools \
qtdeclarative \ qtdeclarative-plugins \ qtdeclarative-tools \
qtdeclarative-qmlplugins \ qtmultimedia \ qtmultimedia-plugins
\ qtmultimedia-qmlplugins \ qtsvg \ qtsvg-plugins \
qtsensors \ qtimageformats-plugins \ qtsystems \
qtsystems-tools \ qtsystems-qmlplugins \ qtscript \ qt3d \
qt3d-qmlplugins \ qt3d-tools \ qtwebkit \
qtwebkit-examples-examples \ qtwebkit-qmlplugins \
qtgraphicaleffects-qmlplugins \ qtconnectivity-qmlplugins \
qtlocation-plugins \ qtlocation-qmlplugins \
gstreamer1.0-plugins-imx \ gstreamer1.0-plugins-imx-meta \
gstreamer1.0-plugins-bad \ gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \ packagegroup-fsl-gstreamer1.0 \
packagegroup-fsl-tools-testapps \ imx-vpu \ imx-test \
firmware-imx-vpu-imx6d \ "DISTRO_FEATURES_remove = "X11
wayland"DISTRO_FEATURES_append =
"directfb"PACKAGECONFIG_append_pn-qtmultimedia = " examples
gstreamer"PACKAGECONFIG_append_pn-qtdeclarative = "
qtxmlpatterns"PACKAGECONFIG_append_pn-qtbase = " linuxfb
accessibility "PACKAGECONFIG_remove_pn-gstreamer1.0-plugins-good = "
gdk-pixbuf" The gstreamer logs (GST_DEBUG=4) ends with these lines.
I'm not sure what the timed out at the end means or how to figure out
what element/plugin is causing it. If anyone else has this working and
could save the same logs so I can compare that would be very much
appreciated. 0:00:10.851254563 3447 0x1711600 INFO
basesrc gstbasesrc.c:1331:gst_base_src_do_seek:<appsrc0> seeking:
bytes segment start=0, offset=0, stop=-1, rate=1.000000,
applied_rate=1.000000, flags=0x00, time=0, base=0, position 0,
duration -10:00:10.851607863 3447 0x1711600 INFO
task gsttask.c:457:gst_task_set_lock: setting stream lock 0x19e0084 on
task 0x19f88280:00:10.851728851 3447 0x1711600 INFO
GST_PADS gstpad.c:6068:gst_pad_start_task:<appsrc0:src> created task
0x19f88280:00:10.852858077 3447 0x1711600 INFO
GST_STATES gstelement.c:2467:gst_element_continue_state:<appsrc0>
completed state change to PAUSED0:00:10.853009062 3447 0x1711600
INFO GST_STATES
gstelement.c:2372:_priv_gst_element_state_changed:<appsrc0> notifying
about state-changed READY to PAUSED (VOID_PENDING
pending)0:00:10.853207043 3447 0x1711600 INFO
GST_STATES gstbin.c:2945:gst_bin_change_state_func:<source> child
'appsrc0' changed state to 3(PAUSED) successfully0:00:10.853313033
3447 0x19ace90 INFO GST_ELEMENT_PADS
gstelement.c:915:gst_element_get_static_pad: no such pad 'sink' in
element "appsrc0"0:00:10.853469018 3447 0x1711600 INFO
GST_STATES gstelement.c:2467:gst_element_continue_state:<source>
completed state change to PAUSED0:00:11.185429405 3447 0x19ace90
FIXME default
gstutils.c:3902:gst_pad_create_stream_id_internal:<appsrc0:src>
Creating random stream-id, consider implementing a deterministic way
of creating a stream-id0:00:11.185413074 3447 0x1711600
INFO GST_STATES
gstelement.c:2372:_priv_gst_element_state_changed:<source> notifying
about state-changed READY to PAUSED (VOID_PENDING
pending)0:00:11.185880696 3447 0x1711600 INFO GST_STATES
gstbin.c:2080:gst_bin_get_state_func:<play> getting
state0:00:11.185991352 3447 0x1711600 INFO GST_STATES
gstelement.c:2185:gst_element_get_state_func:<play> waiting for
element to commit state0:00:11.186134005 3447 0x1711600
INFO GST_STATES
gstelement.c:2199:gst_element_get_state_func:<play> timed
out0:00:11.186456308 3447 0x19ace90 INFO GST_PADS
gstpad.c:4167:gst_pad_peer_query:<typefind:src> pad has no peer
--
that gstreamer get called, plugins is loaded, src and sink is setup
etc but then it just stops and no video is showed in the browser. I
use the qt5 example browser to test it. I build Sumo yocto without
wayland and x11. Is there anything specific that needs to be done to
enable this combination? Video plays as it should with
gst-play-1.0.We use Congatec's Sumo branch, it is meta-freescale Sumo
branch (from July 2018) plus some minor changes for GPIO etc so I hope
it is ok that I send my question to this mailing
list.IMAGE_INSTALL_append += "\ packagegroup-imx-tools-audio \
imx-codec \ pulseaudio \ qtbase-plugins \ qtbase-tools \
qtdeclarative \ qtdeclarative-plugins \ qtdeclarative-tools \
qtdeclarative-qmlplugins \ qtmultimedia \ qtmultimedia-plugins
\ qtmultimedia-qmlplugins \ qtsvg \ qtsvg-plugins \
qtsensors \ qtimageformats-plugins \ qtsystems \
qtsystems-tools \ qtsystems-qmlplugins \ qtscript \ qt3d \
qt3d-qmlplugins \ qt3d-tools \ qtwebkit \
qtwebkit-examples-examples \ qtwebkit-qmlplugins \
qtgraphicaleffects-qmlplugins \ qtconnectivity-qmlplugins \
qtlocation-plugins \ qtlocation-qmlplugins \
gstreamer1.0-plugins-imx \ gstreamer1.0-plugins-imx-meta \
gstreamer1.0-plugins-bad \ gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \ packagegroup-fsl-gstreamer1.0 \
packagegroup-fsl-tools-testapps \ imx-vpu \ imx-test \
firmware-imx-vpu-imx6d \ "DISTRO_FEATURES_remove = "X11
wayland"DISTRO_FEATURES_append =
"directfb"PACKAGECONFIG_append_pn-qtmultimedia = " examples
gstreamer"PACKAGECONFIG_append_pn-qtdeclarative = "
qtxmlpatterns"PACKAGECONFIG_append_pn-qtbase = " linuxfb
accessibility "PACKAGECONFIG_remove_pn-gstreamer1.0-plugins-good = "
gdk-pixbuf" The gstreamer logs (GST_DEBUG=4) ends with these lines.
I'm not sure what the timed out at the end means or how to figure out
what element/plugin is causing it. If anyone else has this working and
could save the same logs so I can compare that would be very much
appreciated. 0:00:10.851254563 3447 0x1711600 INFO
basesrc gstbasesrc.c:1331:gst_base_src_do_seek:<appsrc0> seeking:
bytes segment start=0, offset=0, stop=-1, rate=1.000000,
applied_rate=1.000000, flags=0x00, time=0, base=0, position 0,
duration -10:00:10.851607863 3447 0x1711600 INFO
task gsttask.c:457:gst_task_set_lock: setting stream lock 0x19e0084 on
task 0x19f88280:00:10.851728851 3447 0x1711600 INFO
GST_PADS gstpad.c:6068:gst_pad_start_task:<appsrc0:src> created task
0x19f88280:00:10.852858077 3447 0x1711600 INFO
GST_STATES gstelement.c:2467:gst_element_continue_state:<appsrc0>
completed state change to PAUSED0:00:10.853009062 3447 0x1711600
INFO GST_STATES
gstelement.c:2372:_priv_gst_element_state_changed:<appsrc0> notifying
about state-changed READY to PAUSED (VOID_PENDING
pending)0:00:10.853207043 3447 0x1711600 INFO
GST_STATES gstbin.c:2945:gst_bin_change_state_func:<source> child
'appsrc0' changed state to 3(PAUSED) successfully0:00:10.853313033
3447 0x19ace90 INFO GST_ELEMENT_PADS
gstelement.c:915:gst_element_get_static_pad: no such pad 'sink' in
element "appsrc0"0:00:10.853469018 3447 0x1711600 INFO
GST_STATES gstelement.c:2467:gst_element_continue_state:<source>
completed state change to PAUSED0:00:11.185429405 3447 0x19ace90
FIXME default
gstutils.c:3902:gst_pad_create_stream_id_internal:<appsrc0:src>
Creating random stream-id, consider implementing a deterministic way
of creating a stream-id0:00:11.185413074 3447 0x1711600
INFO GST_STATES
gstelement.c:2372:_priv_gst_element_state_changed:<source> notifying
about state-changed READY to PAUSED (VOID_PENDING
pending)0:00:11.185880696 3447 0x1711600 INFO GST_STATES
gstbin.c:2080:gst_bin_get_state_func:<play> getting
state0:00:11.185991352 3447 0x1711600 INFO GST_STATES
gstelement.c:2185:gst_element_get_state_func:<play> waiting for
element to commit state0:00:11.186134005 3447 0x1711600
INFO GST_STATES
gstelement.c:2199:gst_element_get_state_func:<play> timed
out0:00:11.186456308 3447 0x19ace90 INFO GST_PADS
gstpad.c:4167:gst_pad_peer_query:<typefind:src> pad has no peer
--