Choppy video playback in wpe-webkit-mir-kiosk

I am new to linux and I don’t have a great deal of understanding in it.

So let me explain the scenario here:

I have a RPI 3B and I flashed ubuntu-core-18-armhf+raspi3.img.xz to it. After installing it successfully. I installed mir-kiosk and wpe-webkit-mir-kiosk.

Now I was trying to play an H264 video of video resolution 1920x1080 in wpe-webkit using the html5 video tag. I see that the video playback is choppy and the CPU utililization is very high. So I am guessing the GPU isn’t being utilized properly or not used atall. Could someone help me out on what I am missing or what is the issue?

Here is my config.txt
[pi4]
kernel=uboot_rpi_4_32b.bin
max_framebuffers=2

[pi2]
kernel=uboot_rpi_2.bin

[pi3]
kernel=uboot_rpi_3_32b.bin

[all]
enable_uart=1
dtparam=i2c=on
dtparam=spi=on
dtparam=act_led_trigger=heartbeat
dtparam=pwr_led_trigger=mmc0
dtparam=audio=on
device_tree_address=0x02000000
dtoverlay=vc4-fkms-v3d,cma-256
gpu_mem_256=128
gpu_mem_512=196
gpu_mem=512

Hi @satheesh the problem with video acceleration is that the client (i.e. wpe-webkit) needs to have support for the hardware you want to use.

On a Pi3b there are two options for decode acceleration: the proprietary OpenMAX API, or MMAL. The former you can only use along with the proprietary VideoCore platform. The latter can be used with the Mesa stack.

Mir works with the Mesa stack fine, and we’ve recently enabled the VideoCore platform, too - it’s not all well integrated just yet - watch the Mir discourse for news on that.

So far so good… now WPE / WebKit needs to talk to either omx or mmal… there are some gstreamer elements floating out there, but nothing streamlined or concrete. I’m not sure if WPE can even use gstreamer… We’d be very interested to know if you have any luck, but at this point I can’t provide any more guidance…

1 Like

Just stumbled across this post. I built and maintain the WPE snap (just packaging upstream), so suggestions on how to improve video performance are welcome. I built the WPE snap without prior knowledge of graphics stacks, feel free to criticize constructively :slight_smile: And yes, WPE makes extensive use of gstreamer.

@satheesh You can check the latest snapcraft.yaml, which is a WIP that’s released as rev50 of wpe-webkit-mir-kiosk on amd64 for now. For armhf, I’m getting a segmentation fault on cog startup, so that needs to be fixed first. Do note that the linked yaml builds on the gnome-3-34 extension, so some gstreamer dependencies are coming from there. The current revision on stable (both amd64 and armhf) are still built with the glib-only desktop helper.