[Qtwebengine] MP4 video playback not working in QtWebEngine

Chris Trowbridge Chris.Trowbridge at autobag.com
Thu Dec 14 14:46:16 CET 2017


Hi all,

I'm running into some issues trying to get MP4 playback through QtWebEngine 5.9.2.

Our hardware is a DFI KS310 (http://www.dfi.com/products/product.html?productId=1962) running an i.MX6 ARM processor. We are using Yocto to build the OS based on version 3.14.52 of the Linux kernel and are including the qtwebengine recipe from Yocto to include it in the image. We are also using Wayland/Weston as a compositor.

When I run the minimal browser sample application and navigate to a page that contains an MP4 video file (embedded in a <video> HTML tag), the app crashes with a segmentation fault and the following stack trace:
Received signal 11 SEGV_MAPERR 000069646551
#0 0x0000b4108086 <unknown>
#1 0x0000b4108356 <unknown>
#2 0x0000b33b0b80 <unknown>
[end of stack trace]

At first, I thought this was because the default compilation configuration for QtWebEngine (and Chromium) disables support for proprietary codecs. So, I changed the compilation configuration to enable proprietary codecs, but the minimal browser application still crashes when trying to display the MP4 video.

My next thought was to ensure that hardware acceleration was fully enabled in the underlying instance of Chromium. I was able to achieve almost full hardware acceleration by adding the following command line switches when running the minimal browser application:
--ignore-gpu-blacklist --disable-gpu-sandbox --blacklist-accelerated-compositing --enable-native-gpu-memory-buffers

After this, the 'chrome://gpu' page in Chromium reported:

Graphics Feature Status:

  *   Canvas: Hardware accelerated
  *   Flash: Hardware accelerated
  *   Flash Stage3D: Hardware accelerated
  *   Flash Stage3D Baseline profile: Hardware accelerated
  *   Compositing: Hardware accelerated
  *   Multiple Raster Threads: Enabled
  *   Native GpuMemoryBuffers: Hardware accelerated
  *   Rasterization: Software only. Hardware acceleration disabled
  *   Video Decode: Software only. Hardware acceleration disabled
  *   VPx Video Decode: Software only. Hardware acceleration disabled
  *   WebGL: Hardware accelerated
  *   WebGL2: Hardware accelerated
Problems Detected:

  *   Clear uniforms before first program use on all platforms: 124764, 349137 - Applied Workarounds: clear_uniforms_first_program_use
  *   Always rewrite vec/mat constructors to be consistent: 398694 - Applied Workarounds: scalarize_vec_and_mat_constructor_args
  *   Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198 - Applied Workarounds: disable_framebuffer_cmaa
  *   Accelerated video decode has been disabled, either via blacklist, about:flags or the command line. - Disabled Features: video_decode
  *   Accelerated rasterization has been disabled, either via blacklist, about:flags or the command line. - Disabled Features: rasterization
  *   Accelerated VPx video decode has been disabled, either via blacklist, about:flags or the command line. - Disabled Features: vpx_decode
As you can see, it seems as though video decode and VPx video decode are not hardware accelerated, and I think this is where my real problem lies.

I also tried to load the same MP4 video file using Chromium (version 40), but the page crashes just the same as with QtWebEngine and displays an "Oh, snap" Chromium error message with no error messages on the console.

I have also tried to pre-install through Yocto many of the Freescale/NXP i.MX6 graphics support libraries and drivers, but it's possible that I could be missing a vital one or not configuring one correctly:


*         Libfslvpuwrap (v1.0.62)

*         libavcodec

*         libavformat

*         libavutil

*         libexif (v0.6.21)

*         imx-gpu-viv (v5.0.11)

*         gst1.0-fsl-plugin (v4.0.8)

*         gstreamer1.0-plugins-imx (v0.12.1)

*         imx-lib (v5.1)

*         imx-vpu (v5.4.32)

*         libfslcodec (v4.0.8)

*         libfslparser (v4.0.8)

*         libimxvpuapi (0.10.2)

Has anyone been able to get MP4 video playback to work in QtWebEngine built with Yocto on the i.MX6 chipset?

Thanks,

Chris


CONFIDENTIALITY NOTICE:  This email message is for the sole use of the intended recipient(s) and may contain CONFIDENTIAL INFORMATION of Automated Packaging Systems, Inc..  Any unauthorized review, use, disclosure or distribution of this email or the information it contains is prohibited.  If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qtwebengine/attachments/20171214/2c66ef06/attachment.html>


More information about the QtWebEngine mailing list