diff mbox series

[bug#46337] A patch to enable building proprietary codecs in qtwebengine

Message ID 20210206014748.5b281d65@runbox.com
State Accepted
Headers show
Series [bug#46337] A patch to enable building proprietary codecs in qtwebengine | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

pkill9 Feb. 6, 2021, 1:47 a.m. UTC

Comments

Tobias Geerinckx-Rice Feb. 6, 2021, 10:10 a.m. UTC | #1
Pkill,

pkill9 写道:
> A patch to enable building proprietary codecs in qtwebengine

LGTM, but please send a proper (‘git format-patch’-format) patch 
that can be applied with ‘git am’ with a standardised commit 
message.  See ‘info (guix)Submitting Patches’ and the git log.

> +                       "--webengine-pepper-plugins=no"
> +		       "-webengine-proprietary-codecs")))))

The indentation's off here.  Guix Scheme code uses spaces 
everywhere.

Thanks!

T G-R
Tobias Geerinckx-Rice Feb. 6, 2021, 1:05 p.m. UTC | #2
Tobias Geerinckx-Rice via Guix-patches via 写道:
> +		       "-webengine-proprietary-codecs")))))

Addendum: add a comment explicitly noting that these are all free 
software, or we might face ‘misunderstandings’ later.

Kind regards,

T G-R
Leo Famulari Feb. 7, 2021, 6:12 p.m. UTC | #3
On Sat, Feb 06, 2021 at 01:47:48AM +0000, pkill9 wrote:
> diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
> index 4fbb157600..057644a576 100644
> --- a/gnu/packages/qt.scm
> +++ b/gnu/packages/qt.scm
> @@ -1939,7 +1939,8 @@ using the Enchant spell-checking library.")
>                         "--webengine-printing-and-pdf=no"
>                         "--webengine-ffmpeg=system"
>                         "--webengine-icu=system"
> -                       "--webengine-pepper-plugins=no")))))
> +                       "--webengine-pepper-plugins=no"
> +		       "-webengine-proprietary-codecs")))))

Thanks! I tried building with this flag on a powerful computer, but the
build failed because it couldn't find the dependency openh264. That is
packaged, so we just need an updated patch.
Sergey Trofimov May 30, 2021, 6:47 p.m. UTC | #4
Hey there. Just to clarify why and how this patch works:
When `-webengine-proprietary-codecs` flag is added `rtc_use_h264` 
gn arg would be enabled. [1]
This flag under the hood adds dependency on openh264 (to encode 
webrtc streams). [2]

Now to make the build accept system library we have to jump 
through some hoops:
- List of config flags [3] which qtwebengine supports misses 
  webengine-system-openh264
- Chromium on the other hand supports linking with system library. 
  [4]
- To pass the required GN arg I blatantly slap it in linux.pri to 
  gn_args

[1] 
https://github.com/qt/qtwebengine/blob/v5.15.2/src/core/config/common.pri#L31
[2] 
https://github.com/qt/qtwebengine-chromium/blob/88-based/chromium/third_party/webrtc/modules/video_coding/BUILD.gn#L402
[3] 
https://github.com/qt/qtwebengine/blob/v5.15.2/src/buildtools/configure.json#L763
[4] 
https://github.com/qt/qtwebengine-chromium/blob/88-based/chromium/third_party/openh264/openh264_args.gni
Sergey Trofimov May 30, 2021, 8 p.m. UTC | #5
Just a quick update. I built qtwebengine with this patch on my 
machine and checked that qutebrowser now plays h.264 videos.
diff mbox series

Patch

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 4fbb157600..057644a576 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1939,7 +1939,8 @@  using the Enchant spell-checking library.")
                        "--webengine-printing-and-pdf=no"
                        "--webengine-ffmpeg=system"
                        "--webengine-icu=system"
-                       "--webengine-pepper-plugins=no")))))
+                       "--webengine-pepper-plugins=no"
+		       "-webengine-proprietary-codecs")))))
        ;; Tests are disabled due to "Could not find QtWebEngineProcess
error" ;; It's possible this can be fixed by setting
QTWEBENGINEPROCESS_PATH ;; before running tests.