Closed aurelihein closed 3 years ago
Are both screenshots showing wpesrc output? Is rendering OK if you use gltestsrc
instead of wpesrc
?
The avdec_aac warnings are expected, no need to worry about those. Is playback in Cog working?
Yes gltestsrc
display the mire and is working :
gst-launch-1.0 -v gltestsrc pattern=smpte ! glimagesink
And yes cog seems to work until I want to play video : GST_DEBUG="3,webkit*:6" GST_DEBUG_FILE=/tmp/gst.log GST_DEBUG_DUMP_DOT_DIR=/tmp cog -P fdo https://youtube.com
Here is the debug tmp folder :
tmp_youtube_fail.zip
Not much into gst.log
file than previously
May I miss any gstreamer plugin to bring with the yocto image ?
Try a simple use-case before youtube please. This for instance: https://www.w3.org/2010/05/video/mediaevents.html
It's odd the logs are almost empty, this isn't expected.
gst-inspect-1.0 > plugins.log
and attach the file here please.
I thought that the page.html I wrote on the first part of my issue was not that complicate, since it just asked to play a video Here is the plugins.log : plugins.log Thank you for your help and support
Ok, we wouldn't a stack-trace of the crash then.
I don't understand, what do you want ?
(cog:1248): Cog-WARNING **: 15:48:00.346: <http://192.168.1.101/benchvideo/page.html> Crash!: The renderer process crashed. Reloading the page may fix intermittent failures.
This means WPEWebProcess has crashed. Can you get a stack-trace with gdb/gdbserver?
For an unknown reason it seems that the instance is killed while debugging :
I launch it with :
gdb --args cog -P fdo http://192.168.1.101/benchvideo/page.html
Here is the log :
20200406-gdb_debug_killed.txt.txt
Is there any stable version somewhere ? Do you have any git sha as reference for zeus ?
This is supposed to be the stable version. What you need to debug is the WebProcess, not cog:
autoplay
from your html page. Add controls
WPEWebProcess
with gdbI just have removed autoplay
and add controls
I have verified the behavior on my host computer that it waits that we press play for playing :+1:
When I launch my cog command : cog -P fdo http://192.168.1.101/benchvideo/page.html
I don't see anything and already have the crash :
root@raspberrypi3:~# export WAYLAND_DISPLAY="wayland-0"
root@raspberrypi3:~# export XDG_RUNTIME_DIR="/run/user/0"
root@raspberrypi3:~# cog -P fdo http://192.168.1.101/benchvideo/page.html
Cog-Message: 08:54:58.226: <http://192.168.1.101/benchvideo/page.html> Load started.
Cog-Message: 08:54:58.271: <http://192.168.1.101/benchvideo/page.html> Loading...
(cog:507): Cog-WARNING **: 08:55:02.931: <http://192.168.1.101/benchvideo/page.html> Crash!: The renderer process crashed. Reloading the page may fix intermittent failures.
Cog-Message: 08:55:03.424: <http://192.168.1.101/benchvideo/page.html> Load started.
Cog-Message: 08:55:03.434: <http://192.168.1.101/benchvideo/page.html> Loading...
Cog-Message: 08:55:03.484: <http://192.168.1.101/benchvideo/page.html> Loaded successfully.
@philn : Ok I propose to use the url : https://www.w3.org/2010/05/video/mediaevents.html the start doesn't fail... Sorry for that trivial question but how do you attach to WPEWebProcess
with gdb
Ok I figured out, to whom is looking for it :
cog -P fdo https://www.w3.org/2010/05/video/mediaevents.html
ps aux | grep WPEWebProcess | grep -v grep
gdb -p "pid"
PS : gdb -p $(pidof WPEWebProcess)
should also works
@philn I also receive a Killed :
root@raspberrypi3:~# gdb -p $(pidof WPEWebProcess)
GNU gdb (GDB) 8.3.1
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "arm-poky-linux-gnueabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
Attaching to process 1666
[New LWP 1670]
[New LWP 1671]
[New LWP 1673]
[New LWP 1674]
[New LWP 1685]
[New LWP 1686]
[New LWP 1688]
[New LWP 1689]
[New LWP 1690]
[New LWP 1695]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Killed
Once the process was killed, type this in the gdb
prompt... thread apply all bt
Once killed I am out of gdb prompt ...
So I also try this without sucess :
ulimit -c unlimited
cog -P fdo https://www.w3.org/2010/05/video/mediaevents.html
gdb --batch -ex "thread apply all bt full" /usr/libexec/wpe-webkit-1.0/WPEWebProcess core &> backtrace.txt
here is the backtrace.txt : I don't get anything in it :
root@raspberrypi3:~# cat backtrace.txt
[New LWP 2222]
[New LWP 2219]
[New LWP 2204]
[New LWP 2220]
[New LWP 2223]
[New LWP 2208]
[New LWP 2221]
[New LWP 2229]
[New LWP 2207]
[New LWP 2232]
[New LWP 2227]
[New LWP 2228]
[New LWP 2235]
[New LWP 2234]
[New LWP 2230]
[New LWP 2236]
[New LWP 2231]
[New LWP 2209]
[New LWP 2233]
[New LWP 2218]
[New LWP 2199]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
This seems to be a RAM memory issue, this is OOM killer that kill gdb
, so I have disabled it :
vm.oom-kill = 0
But even though it seems to not have enough memory ...
Once I launch gdb -p $(pidof WPEWebProcess)
Using while true; do free -mh; sleep 1; done
I see the memory going down to 0 , and we see the gdb crashing ...
Any idea ?
Hello,
I have the same issue with the last wpewebkit 2.28 ( using buildroot )
I can use cog ( weston + fdo ) to view website -> it work
But it crash when
play video with gst-play-1.0 -> it work
ps : previous build with wpewebkit 2.27 was OK with video
--> i test with raspberry pi 4
gst-play-1.0 --videosink glimagesink /path/to/video.mp4
works?
@mickdev this issue is about yocto, not buildroot. Please don't hijack this bug, yours might be unrelated.
@philn : wov crash with gst-play-1.0 !
root@raspberrypi3:~# gst-play-1.0 --videosink glimagesink 10_24fps_5M_nb-fastdecode.mp4
Press 'k' to see a list of keyboard shortcuts.
Now playing /home/root/10_24fps_5M_nb-fastdecode.mp4
0:00:00.0 / 0:02:00.0
** (gst-play-1.0:1710): CRITICAL **: 11:00:47.238: gst_gl_memory_setup_buffer: assertion '!wrapped_data || n_mem * views == n_wrapped_pointers' failed
Segmentation fault0.0
Also gst-launch-1.0 -v filesrc location=10_24fps_5M_nb-fastdecode.mp4 ! parsebin name=p ! v4l2h264dec capture-io-mode=4 ! 'video/x-raw, format=(string)RGB16' ! glimagesink
give the same blinky image than the one trying to display google webpage
The same for this line :
gst-launch-1.0 -v filesrc location=10_24fps_5M_nb-fastdecode.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 ! 'video/x-raw, format=(string)RGB16' ! glimagesink
Any idea ?
Please apply these patches to your gst-plugins-base recipe: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/615
@philn patches applied this following line doesn't hang anymore but ... still this issue :
gst-launch-1.0 -v filesrc location=10_24fps_5M_nb-fastdecode.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 ! 'video/x-raw, format=(string)RGB16' ! glimagesink
IMG_2619.zip
And speaking of cog there is still this crash :
Crash!: The renderer process crashed
I don't know, something looks wrong with the graphics driver. I don't have a rpi3/4 so can't help further. Sorry!
@philn Thank you very much for all the time spent for me already ! As soon as I solve this I will propose a PR If you have any suggestion on the way I should look at ... I will look for older Rpi graphics driver If you need any yocto image to test please ask Best regards, Aurelien BOUIN
Using the wpe from trunk and the meta-perf-browser (https://gitlab.com/browsers/meta-perf-browser) layer the Youtube works so far.
Note that the meta-perf-browser layer includes several patches in mesa and gstreamer which could be related with the rpi3 user experience (@philn , could you confirm/discard this?):
MACHINE=raspberrypi3-mesa
DISTRO=browsers
BUILD_ENV=${MACHINE}-wpe-nightly
cd /home/bot/yocto
repo init -u https://gitlab.com/browsers/meta-perf-browser.git -m manifest-zeus.xml -b nightly
repo sync --force-sync
source setup-environment ${BUILD_ENV} ${MACHINE} ${DISTRO} default mesa-wpe-nightly --update-config
IMAGE=core-image-weston-wpe
bitbake ${IMAGE}
export WAYLAND_DISPLAY=wayland-0
export XDG_RUNTIME_DIR=/tmp/xdg-900-runtime-dir/
cog -P fdo https://youtube.com
Could you verify if works for 2.28 as well. I suppose it will work but I didn't test it.
source setup-environment ${BUILD_ENV} ${MACHINE} ${DISTRO} default mesa-wpe-2_28 --update-config
The bitbake meta-layers hashes:
Build Configuration:
BB_VERSION = "1.44.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "debian-10"
TARGET_SYS = "arm-poky-linux-gnueabi"
MACHINE = "raspberrypi3-mesa"
DISTRO = "browsers"
DISTRO_VERSION = "1.0"
TUNE_FEATURES = "arm vfp cortexa7 neon vfpv4 thumb callconvention-hard"
TARGET_FPU = "hard"
meta
meta-poky = "zeus:5531ffc5668c2f24b9018a7b7174b5c77315a1cf"
meta-oe
meta-multimedia
meta-perl
meta-python
meta-networking
meta-filesystems
meta-webserver = "HEAD:9e60d30669a2ad0598e9abf0cd15ee06b523986b"
meta-clang = "HEAD:c8c1d5f915eeddf28b690ae4f7b3908d1d40660f"
meta-browser = "HEAD:830ef438e81ba5fc915b1855e69f02b2c286b21a"
meta-rust = "HEAD:1a3625364cdca31cb37f5c47b678523277b1374c"
meta-updater = "HEAD:416a934b0555a1131490644a7edcbb644a934e76"
meta-security = "HEAD:ecd8c30af6b1b957b4fa814d3f25c40f060b3ac1"
meta-raspberrypi = "HEAD:0e05098853eea77032bff9cf81955679edd2f35d"
meta-freescale = "HEAD:4e7e8ef4676c45f502dd2a0bd5179c3b777362a1"
meta-freescale-3rdparty = "HEAD:076c3132bb244b73c0f54b698d64c48b1ffbb58f"
meta-freescale-distro = "HEAD:ca27d12e4964d1336e662bcc60184bbff526c857"
meta-intel = "HEAD:faced19dda5332cce9164903b250db5aa9b86259"
meta-cloud-services = "HEAD:b8c25f63ab9124fe911165205d17808b9a7dead0"
meta-gstreamer1.0 = "HEAD:bf562ab7bb4dd68e486c71be6ebcf9d872f63b33"
meta-webkit = "issue_162:c282f2a600870b627a9e5958930907110d5f2191"
meta-perf-browser = "HEAD:9f7012d27ba66be10ab954bd991ab7748cbef655"
Below, the gstreamer selected packages:
=== Matching recipes: ===
gstreamer1.0:
meta-gstreamer1.0 1.16.2
meta 1.16.1
gstreamer1.0-libav:
meta-gstreamer1.0 1.16.2
meta 1.16.1
meta-freescale 1.14.0
gstreamer1.0-meta-base:
meta-gstreamer1.0 1.0
meta 1.0
gstreamer1.0-omx:
meta-gstreamer1.0 1.16.2
meta 1.16.1
gstreamer1.0-plugins-bad:
meta-gstreamer1.0 1.16.2
meta 1.16.1
gstreamer1.0-plugins-base:
meta-gstreamer1.0 1.16.2
meta 1.16.1
gstreamer1.0-plugins-good:
meta-gstreamer1.0 1.16.2
meta 1.16.1
gstreamer1.0-plugins-ugly:
meta-gstreamer1.0 1.16.2
meta 1.16.1
gstreamer1.0-python:
meta-gstreamer1.0 1.16.2
meta 1.16.1
gstreamer1.0-rtsp-server:
meta-gstreamer1.0 1.16.2
meta 1.16.1
gstreamer1.0-vaapi:
meta-gstreamer1.0 1.16.2
meta 1.16.1
Ah yeah the mesa vc4 patches are relevant. For some reason I thought they were already in meta-webkit
@philn FYI I am still alive on this, I recompile my yocto build on zeus but with a MACHINE="raspberrypi3-64" instead of MACHINE="raspberry3" and I don't have the rendering problem anymore.
The gst-launch are now playing well ...
The gst-launch-1.0 -v wpesrc location="https://www.google.fr" ! queue ! glimagesink
is now rendering well also
But I still have the crash when trying to play html5 video ... And I still can't attach a gdb on WPEWebProcess (oom killer do its job too well ...)
However I have a strange behavior with my rpi image. I can boot it only one time ! Then I need to reflash the sdcard image to retry ... never seen that before ... have you experienced such behavior before ? and I have checked on the already booted sdcard any files changes ... I can't find any ...
@psaavedra I didn't see your message before posting mine ! Thank you very much I will give it a try tomorrow ! Thank you !!!
@psaavedra & @philn Thank you very much, video acceleration is now working ! I had to :
@aurelihein hello,
i cannot find this patch "add a patch for wpewebkit 2.28 to avoid the cairo crash on version 1.16.0", you created it, can you share it ? thx ?
If the patch is about wpwebkit, you can fill a request directly to webkit.org, and propose it upstream here for a patch for wpewebkit in meta-webkit.
@psaavedra i downloaded from your link core-image-weston-browsers-raspberrypi3-mesa-20200405041232.rootfs.rpi-sdimg but it seems to be a webkit 2.27.** not 2.28 ( it work on rpi3 )
@psaavedra i downloaded from your link core-image-weston-browsers-raspberrypi3-mesa-20200405041232.rootfs.rpi-sdimg but it seems to be a webkit 2.27.** not 2.28 ( it work on rpi3 ) source setup-environment ${BUILD_ENV} ${MACHINE} ${DISTRO} default mesa-wpe-2_28 --update-config
Actually the image is built from WebKit trunk (date: 2020-04-05 04:12:32 CEST) so it should be something more like 2.29.X.
You can try to build your own image just using the following commands:
MACHINE=raspberrypi3-mesa
DISTRO=browsers
BUILD_ENV=${MACHINE}-wpe-nightly
cd /home/bot/yocto
repo init -u https://gitlab.com/browsers/meta-perf-browser.git -m manifest-zeus.xml -b nightly
repo sync --force-sync
source setup-environment ${BUILD_ENV} ${MACHINE} ${DISTRO} default mesa-wpe-2_28 --update-config
IMAGE=core-image-weston-wpe
bitbake ${IMAGE}
More info:
@mickdev I am talking about this one : https://github.com/WebPlatformForEmbedded/WPEWebKit/commit/71aab10b92eede51527e86b6c01abb21fe7d4f96
If interested I just updated the instruction on my README.md : https://github.com/aurelihein/meta-bouin
@aurelihein thank you, i just compiled the raspi-3-64bits-mesa with your readme
-> only the syntel video work on the w3.org (?) -> no detection of event media ended on the w3.org -> maybe problem with the loop attribute (?) ( syntel video loop .. but should not .. ) -> between 25% and 50% cpu usage ( between 5% and 10% with omx ... )
@psaavedra Hey Pablo, those references you're mentioning seem to be 404'ing at the moment. Is that meta-perf-browser layer accessible somewhere?
@psaavedra Hey Pablo, those references you're mentioning seem to be 404'ing at the moment. Is that meta-perf-browser layer accessible somewhere?
Hello, that repo is not longer available but the changes commented in this issue are nowadays mostly integrated in the upstream of each component: mesa, webkit ...
upstream of each component: mesa, webkit
Are you sure? I'm on Dunfell and I needed to patch mesa
otherwise it would crash, luckily @aurelihein had those patches in his repo. Might be worthwhile to mention this in the wiki maybe? It does mention this issue and, I guess, eventually people are going to figure out what is going on but still... ;-)
Thanks for your response though, much appreciated.
For the case of Mesa, the patch is this https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3997.
El mar, 23 feb 2021 a las 16:59, Wesly (notifications@github.com) escribió:
upstream of each component: mesa, webkit
Are you sure? I'm on Dunfell and I needed to patch mesa otherwise it would crash, luckily @aurelihein https://github.com/aurelihein had those patches in his repo. Might be worthwhile to mention this in the wiki maybe? It does mention this issue and, I guess, eventually people are going to figure out what is going on but still... ;-)
Thanks for your response though, much appreciated.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Igalia/meta-webkit/issues/165#issuecomment-784306269, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAC4ABVUXJYSWZAWSVBWBNTTAPGFJANCNFSM4L4GKORA .
-- Pablo Saavedra Rodiño saavedra.pablo@gmail.com | Mail @saavedra_pablo | Twitter http503.wordpress.com | Blog
I try to find a working build with accelerated video decoding with wpe The problem is that the rendering(not sure it is the correct work) doesn't work
I already have tried rdk backend with accelerated video decoding but the video played is not enough fluent ...
Here is the way I create my yocto build :
Get repos :
Now we should be into build dir Let's update local.conf :
Let's update bblayers.conf
Let's create a new meta to add some custom parameters :
into meta-bouin :
I launch the build with :
bitbake core-image-weston
FYI the git SHA I am using last zeus branches from today 3th of April 2020 :
The way I burn the image :
Once the board is booted :
We can verify wpe support for gstreamer :
When I launch :
This is What I get :
Another problem is when I try to play a video from a web server with this page into it :
and the well know big_buck_bunny_1080p_surround.avi converted into mp4
start debugging with :
GST_DEBUG="3,webkit*:6" GST_DEBUG_FILE=/tmp/gst.log GST_DEBUG_DUMP_DOT_DIR=/tmp cog -P fdo http://url_to/page.html
This is what I get :
Thank you for your support / help / suggestions / time Regards,
Aurelien BOUIN