QtWebEngine/VideoAcceleration: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 11: Line 11:


== Platforms ==
== Platforms ==
* Linux: Video acceleration (VA) API, gstreamer, and proprietary solutions
* Linux: Video acceleration (VA) API, GStreamer, and proprietary solutions


* Windows: directX API
* Windows: DirectX API (DXVA)


* macOS: ?
* macOS: Video Decode Acceleration framework
 
== Chromium ==
Official Chromium enables video acceleration for Windows, macOS, and ChromeOS builds.
 
Regular Linux builds do not have video acceleration enabled, unless patched downstream by Linux distributions.


== Qt WebEngine ==
== Qt WebEngine ==
Current status of video decode acceleration for Qt WebEngine 5.9 and 5.10 is as follows:
* Windows video acceleration does '''not''' work, see reasoning in https://codereview.qt-project.org/#/c/202314/ . Bottom line, this has not worked in any Qt WebEngine release due to ANGLE not working with multiple threads.
* macOS video acceleration does "not" currently work, see reasoning in https://bugreports.qt.io/browse/QTBUG-60002 and attached patch. This used to work in versions <= Qt 5.8 (needs confirmation).
* Linux (including embedded) video acceleration does ""not"" currently work. Work-in-progress VA-API support patch can be found at https://codereview.qt-project.org/#/c/209204/
Being considered:
Being considered:
* Enabling VA API in Qt 5.10 (?) for Chromium 60
* Enabling VA API in Qt 5.10 (?) for Chromium 61
* Implementing a punch hole in scenegraph
* Implementing a punch hole in scenegraph
* Supporting gstreamer
* Supporting GStreamer

Revision as of 09:27, 1 November 2017

Qt WebEngine does not currently support hardware accelerated decoding of videos.

Introduction

- What is video acceleration and do you really need it? Could you use a proprietary solution?

- To off-load CPU, especially important for embedded devices

- Needs to be supported by GPU hardware and drivers, usually only supporting some encoding

- Link to Chromium docs on video acceleration

Platforms

  • Linux: Video acceleration (VA) API, GStreamer, and proprietary solutions
  • Windows: DirectX API (DXVA)
  • macOS: Video Decode Acceleration framework

Chromium

Official Chromium enables video acceleration for Windows, macOS, and ChromeOS builds.

Regular Linux builds do not have video acceleration enabled, unless patched downstream by Linux distributions.

Qt WebEngine

Current status of video decode acceleration for Qt WebEngine 5.9 and 5.10 is as follows:

Being considered:

  • Enabling VA API in Qt 5.10 (?) for Chromium 61
  • Implementing a punch hole in scenegraph
  • Supporting GStreamer