Discussion:
[meta-freescale] Qtwebkit and gstreamer on imx6 (yocto Sumo, QT5, framebuffer)
Gustav Evertsson
2018-11-27 09:01:57 UTC
Permalink
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
--
Gustav Evertsson
2018-11-29 21:12:04 UTC
Permalink
Sorry for the extra mail. I noticed that the formating of my last mail got messed up. I have tried to fix it and and now sending the same question again. Hope it is easier to read this time.

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 -1
0:00:10.851607863  3447  0x1711600 INFO                   task gsttask.c:457:gst_task_set_lock: setting stream lock 0x19e0084 ontask 0x19f8828
0:00:10.851728851  3447  0x1711600 INFO                GST_PADS gstpad.c:6068:gst_pad_start_task:<appsrc0:src> created task 0x19f8828
0:00:10.852858077  3447  0x1711600 INFO              GST_STATES gstelement.c:2467:gst_element_continue_state:<appsrc0> completed state change to PAUSED
0:00:10.853009062  3447  0x1711600 INFO              GST_STATES gstelement.c:2372:_priv_gst_element_state_changed:<appsrc0> notifyingabout state-changed READY to PAUSED (VOID_PENDINGpending)
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) successfully
0: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 PAUSED
0: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 wayof creating a stream-id
0:00:11.185413074  3447  0x1711600 INFO              GST_STATES gstelement.c:2372:_priv_gst_element_state_changed:<source> notifyingabout state-changed READY to PAUSED (VOID_PENDINGpending)
0:00:11.185880696  3447  0x1711600 INFO              GST_STATESgstbin.c:2080:gst_bin_get_state_func:<play> gettingstate
0:00:11.185991352  3447  0x1711600 INFO              GST_STATES gstelement.c:2185:gst_element_get_state_func:<play> waiting for element to commit state
0:00:11.186134005  3447  0x1711600 INFO              GST_STATES gstelement.c:2199:gst_element_get_state_func:<play> timedout
0:00:11.186456308  3447  0x19ace90 INFO                GST_PADS gstpad.c:4167:gst_pad_peer_query:<typefind:src> pad has no peer
Loading...