[arch-commits] Commit in chromium/trunk (4 files)

Evangelos Foutras foutrelis at archlinux.org
Fri Feb 8 09:33:41 UTC 2019


    Date: Friday, February 8, 2019 @ 09:33:40
  Author: foutrelis
Revision: 345633

upgpkg: chromium 72.0.3626.96-3

- Disable 10 bpc color configs; fixes VAAPI playback
- Split upstream patch out of chromium-vaapi.patch
- Add replaces for chromium-vaapi{,-bin}

Added:
  chromium/trunk/chromium-drirc-disable-10bpc-color-configs.conf
  chromium/trunk/chromium-enable-mojo-video-decoders-by-default.patch
Modified:
  chromium/trunk/PKGBUILD
  chromium/trunk/chromium-vaapi.patch

------------------------------------------------------+
 PKGBUILD                                             |   13 +-
 chromium-drirc-disable-10bpc-color-configs.conf      |   15 ++
 chromium-enable-mojo-video-decoders-by-default.patch |  104 +++++++++++++++++
 chromium-vaapi.patch                                 |   56 ---------
 4 files changed, 130 insertions(+), 58 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-02-08 02:49:03 UTC (rev 345632)
+++ PKGBUILD	2019-02-08 09:33:40 UTC (rev 345633)
@@ -5,7 +5,7 @@
 
 pkgname=chromium
 pkgver=72.0.3626.96
-pkgrel=2
+pkgrel=3
 _launcher_ver=6
 pkgdesc="A web browser built for speed, simplicity, and security"
 arch=('x86_64')
@@ -20,22 +20,27 @@
             'kdialog: needed for file dialogs in KDE'
             'gnome-keyring: for storing passwords in GNOME keyring'
             'kwallet: for storing passwords in KWallet')
+replaces=('chromium-vaapi' 'chromium-vaapi-bin')
 install=chromium.install
 source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz
         chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz
+        chromium-drirc-disable-10bpc-color-configs.conf
         chromium-system-icu.patch
         chromium-webrtc-missing-header.patch
         chromium-vaapi.patch
         chromium-vaapi-relax-the-version-check-for-VA-API.patch
+        chromium-enable-mojo-video-decoders-by-default.patch
         chromium-vaapi-fix-the-VA_CHECK_VERSION.patch
         chromium-widevine.patch
         chromium-skia-harmony.patch)
 sha256sums=('b2daf52aac4d9eba0ab9f034db6f2411ad6930dd02544c4b583e3a6e49dcaa3b'
             '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1'
+            'babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb'
             'e2d284311f49c529ea45083438a768db390bde52949995534034d2a814beab89'
             '63cbed7d7af327c17878a2066c303f106ff08636372721845131f7ff13d87b44'
-            '561151f381db44908ab5649f3579049e4cbce04cbed76e32d767b156bf83944d'
+            'e87ede45edf39ac19e56ac1ae49c9d1f5f5130e5838bcbb4c3d4fb16e55575c0'
             '07fcf5d25114c7335582f117090b5e0bd148aca69044d4fe25c66b4c52dcd2a6'
+            '669a9ad4773d182a06ee729008a60aeadddae92f1a0077b3811e11f292c8d4ff'
             '0bd750255163bfb1bedaf97c1cdb313f42bd9e6e52243c6e68494b6e0ffb84bf'
             'd081f2ef8793544685aad35dea75a7e6264a2cb987ff3541e6377f4a3650a28b'
             '5887f78b55c4ecbbcba5930f3f0bb7bc0117c2a41c2f761805fcf7f46f1ca2b3')
@@ -91,6 +96,7 @@
   # Enable VAAPI on Linux
   patch -Np1 -i ../chromium-vaapi.patch
   patch -Np1 -i ../chromium-vaapi-relax-the-version-check-for-VA-API.patch
+  patch -Np1 -i ../chromium-enable-mojo-video-decoders-by-default.patch
   patch -Np1 -i ../chromium-vaapi-fix-the-VA_CHECK_VERSION.patch
 
   # Load Widevine CDM if available
@@ -202,6 +208,9 @@
   install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox"
   ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver"
 
+  install -Dm644 ../chromium-drirc-disable-10bpc-color-configs.conf \
+    "$pkgdir/usr/share/drirc.d/10-$pkgname.conf"
+
   install -Dm644 chrome/installer/linux/common/desktop.template \
     "$pkgdir/usr/share/applications/chromium.desktop"
   install -Dm644 chrome/app/resources/manpage.1.in \

Added: chromium-drirc-disable-10bpc-color-configs.conf
===================================================================
--- chromium-drirc-disable-10bpc-color-configs.conf	                        (rev 0)
+++ chromium-drirc-disable-10bpc-color-configs.conf	2019-02-08 09:33:40 UTC (rev 345633)
@@ -0,0 +1,15 @@
+<!--
+
+Disable 10 bpc color configs; fixes VAAPI playback.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=106490
+
+-->
+
+<driconf>
+    <device>
+        <application name="Chromium" executable="chromium">
+            <option name="allow_rgb10_configs" value="false" />
+        </application>
+    </device>
+</driconf>

Added: chromium-enable-mojo-video-decoders-by-default.patch
===================================================================
--- chromium-enable-mojo-video-decoders-by-default.patch	                        (rev 0)
+++ chromium-enable-mojo-video-decoders-by-default.patch	2019-02-08 09:33:40 UTC (rev 345633)
@@ -0,0 +1,104 @@
+From 31225b9c5f3f685d65f742dc129241c30c32157c Mon Sep 17 00:00:00 2001
+From: Julien Isorce <julien.isorce at chromium.org>
+Date: Sat, 15 Dec 2018 01:02:18 +0000
+Subject: [PATCH] Enable mojo video decoders by default on Linux desktop if
+ use_vaapi is true
+
+Already the case for ChromeOS, Mac and Win. And run the service
+in the GPU process too. Except that here the gn arg use_vaapi
+has to be true as well.
+
+Note that this CL does not change the following:
+  - the gn arg 'use_vaapi' is still false by default on Linux,
+    see media/gpu/args.gni
+  - 'accelerated_video_decode' is still black listed on Linux,
+    see entry 48 in gpu/config/software_rendering_list.json
+  - it is still not possible to enable hw video decode from
+    about:flags, see chrome/browser/about_flags.cc
+
+Also note that with this CL the ffmpeg and libvpx video decoders
+are still selected thanks to media::DecoderSelector::SelectDecoder
+in case vaapi fails to initialize.
+
+Also see https://chromium-review.googlesource.com/c/chromium/src/+/1225275/
+which was very similar but for ChromeOS.
+
+Tested on Linux desktop with gn args:
+  - use_vaapi = true (default is false)
+  ./out/release/chrome --ignore-gpu-blacklist --use-gl=desktop url_to_vp9_video
+  ./out/release/chrome --ignore-gpu-blacklist --use-gl=egl url_to_vp9_video
+   -> MojoVideoDecoder was in use and VaapiVideoDecodeAccelerator runing in the
+      GPU process, through MojoVideoDecoderService
+
+
+Bug: 522298
+Change-Id: Ia19f9f3edc0af488a477a16001b7de4f4818b3b2
+Reviewed-on: https://chromium-review.googlesource.com/c/1370717
+Reviewed-by: Dan Sanders <sandersd at chromium.org>
+Commit-Queue: Julien Isorce <julien.isorce at chromium.org>
+Cr-Commit-Position: refs/heads/master@{#616901}
+---
+ media/media_options.gni                      | 9 ++++++---
+ media/mojo/services/gpu_mojo_media_client.cc | 5 +++--
+ 2 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/media/media_options.gni b/media/media_options.gni
+index 46eaa58181..6e338f651b 100644
+--- a/media/media_options.gni
++++ b/media/media_options.gni
+@@ -5,6 +5,7 @@
+ import("//build/config/chrome_build.gni")
+ import("//build/config/chromecast_build.gni")
+ import("//build/config/features.gni")
++import("//media/gpu/args.gni")
+ import("//testing/libfuzzer/fuzzer_test.gni")
+ 
+ # Do not expand this list without double-checking with OWNERS, this is a list of
+@@ -129,8 +130,9 @@ declare_args() {
+   # |mojo_media_services|). When enabled, selected mojo paths will be enabled in
+   # the media pipeline and corresponding services will hosted in the selected
+   # remote process (e.g. "utility" process, see |mojo_media_host|).
+-  enable_mojo_media = is_android || is_chromecast || is_chromeos || is_mac ||
+-                      is_win || enable_library_cdms
++  enable_mojo_media =
++      is_android || is_chromecast || is_chromeos || is_mac || is_win ||
++      enable_library_cdms || (is_desktop_linux && use_vaapi)
+ 
+   # Enable the TestMojoMediaClient to be used in mojo MediaService. This is for
+   # testing only and will override the default platform MojoMediaClient, if any.
+@@ -200,7 +202,8 @@ if (enable_mojo_media) {
+       ]
+       _default_mojo_media_host = "gpu"
+     }
+-  } else if (is_chromeos || is_mac || is_win) {
++  } else if (is_chromeos || is_mac || is_win ||
++             (is_desktop_linux && use_vaapi)) {
+     _default_mojo_media_services = [ "video_decoder" ]
+     _default_mojo_media_host = "gpu"
+   }
+diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc
+index 75f5e611c7..f056e1b315 100644
+--- a/media/mojo/services/gpu_mojo_media_client.cc
++++ b/media/mojo/services/gpu_mojo_media_client.cc
+@@ -54,7 +54,7 @@ namespace media {
+ namespace {
+ 
+ #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || \
+-    defined(OS_WIN)
++    defined(OS_WIN) || defined(OS_LINUX)
+ gpu::CommandBufferStub* GetCommandBufferStub(
+     base::WeakPtr<MediaGpuChannelManager> media_gpu_channel_manager,
+     base::UnguessableToken channel_token,
+@@ -148,7 +148,8 @@ std::unique_ptr<VideoDecoder> GpuMojoMediaClient::CreateVideoDecoder(
+       android_overlay_factory_cb_, std::move(request_overlay_info_cb),
+       std::make_unique<VideoFrameFactoryImpl>(gpu_task_runner_,
+                                               std::move(get_stub_cb)));
+-#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN)
++#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) || \
++    defined(OS_LINUX)
+   std::unique_ptr<VideoDecoder> vda_video_decoder = VdaVideoDecoder::Create(
+       task_runner, gpu_task_runner_, media_log->Clone(), target_color_space,
+       gpu_preferences_, gpu_workarounds_,
+-- 
+2.20.1
+

Modified: chromium-vaapi.patch
===================================================================
--- chromium-vaapi.patch	2019-02-08 02:49:03 UTC (rev 345632)
+++ chromium-vaapi.patch	2019-02-08 09:33:40 UTC (rev 345633)
@@ -112,61 +112,5 @@
        "features": [
          "accelerated_video_decode"
        ]
-diff --git a/media/media_options.gni b/media/media_options.gni
-index 46eaa5818..6e338f651 100644
---- a/media/media_options.gni
-+++ b/media/media_options.gni
-@@ -5,6 +5,7 @@
- import("//build/config/chrome_build.gni")
- import("//build/config/chromecast_build.gni")
- import("//build/config/features.gni")
-+import("//media/gpu/args.gni")
- import("//testing/libfuzzer/fuzzer_test.gni")
- 
- # Do not expand this list without double-checking with OWNERS, this is a list of
-@@ -129,8 +130,9 @@ declare_args() {
-   # |mojo_media_services|). When enabled, selected mojo paths will be enabled in
-   # the media pipeline and corresponding services will hosted in the selected
-   # remote process (e.g. "utility" process, see |mojo_media_host|).
--  enable_mojo_media = is_android || is_chromecast || is_chromeos || is_mac ||
--                      is_win || enable_library_cdms
-+  enable_mojo_media =
-+      is_android || is_chromecast || is_chromeos || is_mac || is_win ||
-+      enable_library_cdms || (is_desktop_linux && use_vaapi)
- 
-   # Enable the TestMojoMediaClient to be used in mojo MediaService. This is for
-   # testing only and will override the default platform MojoMediaClient, if any.
-@@ -200,7 +202,8 @@ if (enable_mojo_media) {
-       ]
-       _default_mojo_media_host = "gpu"
-     }
--  } else if (is_chromeos || is_mac || is_win) {
-+  } else if (is_chromeos || is_mac || is_win ||
-+             (is_desktop_linux && use_vaapi)) {
-     _default_mojo_media_services = [ "video_decoder" ]
-     _default_mojo_media_host = "gpu"
-   }
-diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc
-index 75f5e611c..09a8fef92 100644
---- a/media/mojo/services/gpu_mojo_media_client.cc
-+++ b/media/mojo/services/gpu_mojo_media_client.cc
-@@ -54,7 +54,7 @@ namespace media {
- namespace {
- 
- #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || \
--    defined(OS_WIN)
-+    defined(OS_WIN) || defined(OS_LINUX)
- gpu::CommandBufferStub* GetCommandBufferStub(
-     base::WeakPtr<MediaGpuChannelManager> media_gpu_channel_manager,
-     base::UnguessableToken channel_token,
-@@ -148,7 +148,7 @@ std::unique_ptr<VideoDecoder> GpuMojoMediaClient::CreateVideoDecoder(
-       android_overlay_factory_cb_, std::move(request_overlay_info_cb),
-       std::make_unique<VideoFrameFactoryImpl>(gpu_task_runner_,
-                                               std::move(get_stub_cb)));
--#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN)
-+#elif defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
-   std::unique_ptr<VideoDecoder> vda_video_decoder = VdaVideoDecoder::Create(
-       task_runner, gpu_task_runner_, media_log->Clone(), target_color_space,
-       gpu_preferences_, gpu_workarounds_,
 -- 
 2.20.1



More information about the arch-commits mailing list