chromium-browser-stable 81.0.4044.113-1 (x86_64) 2020-11465
1

Status rejected
Submitter nobodydead [@T] gmail.com
Platform rolling
Repository main
URL https://abf.openmandriva.org/build_lists/758366
Packages
chromedriver-81.0.4044.113-1.x86_64.binary
chromium-browser-1:81.0.4044.113-1.x86_64.binary
chromium-browser-stable-81.0.4044.113-1.x86_64.source
chromium-browser-stable-81.0.4044.113-1.x86_64.binary
Build Date 2020-04-17 02:46:22 +0000 UTC
Last Updated 2020-04-21 01:45:01.258777731 +0000 UTC
$ git diff --patch-with-stat --summary c75d552e5f4d2a828c4fdd658b4257270afacb72..05838274a6d69e4ec49df1b2bfffb326b9630538

 .abf.yml                                           |   2 +-
 ....0.3538.67-disable-fontconfig-cache-magic.patch |  13 --
 chromium-78.0.3904.70-unbundle-zlib.patch          |  12 --
 chromium-81-compile.patch                          |  98 +++++++++++++
 chromium-81-disable-fontconfig-cache-magic.patch   |  13 ++
 chromium-81-dont-pretend-vaapi-is-broken.patch     |  26 ++++
 chromium-81-enable-gpu-features.patch              |  34 +++++
 ...ra-media.patch => chromium-81-extra-media.patch | 162 +++++++++------------
 ....3683.75-norar.patch => chromium-81-norar-patch |  34 ++---
 chromium-81-norar.patch                            |  79 ++++++++++
 chromium-81-unbundle-zlib.patch                    |  12 ++
 chromium-browser-stable.spec                       |  54 ++++---
 chromium-drirc-disable-10bpc-color-configs.conf    |  21 +++
 chromium-skia-harmony.patch                        |  14 ++
 ...-Linux-frame-button-cache-when-activation.patch |  62 ++++++++
 vaapi-build-fix.patch                              |  51 +++++++
 vdpau-support.patch                                |  78 ++++++++++
 17 files changed, 609 insertions(+), 156 deletions(-)
 delete mode 100644 chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
 delete mode 100644 chromium-78.0.3904.70-unbundle-zlib.patch
 create mode 100644 chromium-81-compile.patch
 create mode 100644 chromium-81-disable-fontconfig-cache-magic.patch
 create mode 100644 chromium-81-dont-pretend-vaapi-is-broken.patch
 create mode 100644 chromium-81-enable-gpu-features.patch
 rename chromium-69-extra-media.patch => chromium-81-extra-media.patch (57%)
 rename chromium-73.0.3683.75-norar.patch => chromium-81-norar-patch (51%)
 create mode 100644 chromium-81-norar.patch
 create mode 100644 chromium-81-unbundle-zlib.patch
 create mode 100644 chromium-drirc-disable-10bpc-color-configs.conf
 create mode 100644 chromium-skia-harmony.patch
 create mode 100644 rebuild-Linux-frame-button-cache-when-activation.patch
 create mode 100644 vaapi-build-fix.patch
 create mode 100644 vdpau-support.patch

diff --git a/.abf.yml b/.abf.yml
index 9abdfd6..2b336ca 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,2 +1,2 @@
 sources:
-  chromium-80.0.3987.163.tar.xz: 10d06118d2d6cd2a244e2737d939536f3d3ea287
+  chromium-81.0.4044.113.tar.xz: ba5dff3a2a7a335261de56526e7089b216087d91
diff --git a/chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch b/chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
deleted file mode 100644
index 0c60643..0000000
--- a/chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-70.0.3538.67/base/test/BUILD.gn.nofc chromium-70.0.3538.67/base/test/BUILD.gn
---- chromium-70.0.3538.67/base/test/BUILD.gn.nofc	2018-10-29 11:29:01.356812567 -0400
-+++ chromium-70.0.3538.67/base/test/BUILD.gn	2018-10-29 11:29:12.631584916 -0400
-@@ -209,9 +209,6 @@ static_library("test_support") {
-     data_deps = [
-       "//third_party/test_fonts",
-     ]
--    if (current_toolchain == host_toolchain) {
--      data_deps += [ ":do_generate_fontconfig_caches" ]
--    }
-   }
- 
-   if (is_ios) {
diff --git a/chromium-78.0.3904.70-unbundle-zlib.patch b/chromium-78.0.3904.70-unbundle-zlib.patch
deleted file mode 100644
index 155990e..0000000
--- a/chromium-78.0.3904.70-unbundle-zlib.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn.unbundle-zlib chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn
---- chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn.unbundle-zlib	2019-10-23 09:25:44.419884187 -0400
-+++ chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn	2019-10-23 09:29:53.553442745 -0400
-@@ -276,7 +276,7 @@ if (enable_perfetto_trace_processor || e
-         "//buildtools:zlib",
-       ]
-     } else {
--      public_configs = [ "//third_party/zlib:zlib_config" ]
-+      public_configs = [ "//third_party/zlib:system_zlib" ]
-       public_deps = [
-         "//third_party/zlib",
-       ]
diff --git a/chromium-81-compile.patch b/chromium-81-compile.patch
new file mode 100644
index 0000000..a18af11
--- /dev/null
+++ b/chromium-81-compile.patch
@@ -0,0 +1,98 @@
+diff -up chromium-81.0.4044.92/third_party/perfetto/include/perfetto/base/task_runner.h.omv~ chromium-81.0.4044.92/third_party/perfetto/include/perfetto/base/task_runner.h
+--- chromium-81.0.4044.92/third_party/perfetto/include/perfetto/base/task_runner.h.omv~	2020-04-14 00:02:56.866537124 +0200
++++ chromium-81.0.4044.92/third_party/perfetto/include/perfetto/base/task_runner.h	2020-04-14 00:03:05.965638851 +0200
+@@ -18,6 +18,7 @@
+ #define INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
+ 
+ #include <functional>
++#include <cstdint>
+ 
+ #include "perfetto/base/export.h"
+ 
+diff -up chromium-81.0.4044.92/third_party/perfetto/include/perfetto/ext/base/unix_task_runner.h.omv~ chromium-81.0.4044.92/third_party/perfetto/include/perfetto/ext/base/unix_task_runner.h
+--- chromium-81.0.4044.92/third_party/perfetto/include/perfetto/ext/base/unix_task_runner.h.omv~	2020-04-14 00:02:08.613997692 +0200
++++ chromium-81.0.4044.92/third_party/perfetto/include/perfetto/ext/base/unix_task_runner.h	2020-04-14 00:02:25.772189504 +0200
+@@ -65,11 +65,11 @@ class UnixTaskRunner : public TaskRunner
+   bool IsIdleForTesting();
+ 
+   // TaskRunner implementation:
+-  void PostTask(std::function<void()>) override;
+-  void PostDelayedTask(std::function<void()>, uint32_t delay_ms) override;
+-  void AddFileDescriptorWatch(int fd, std::function<void()>) override;
+-  void RemoveFileDescriptorWatch(int fd) override;
+-  bool RunsTasksOnCurrentThread() const override;
++  virtual void PostTask(std::function<void()>) override;
++  virtual void PostDelayedTask(std::function<void()>, uint32_t delay_ms) override;
++  virtual void AddFileDescriptorWatch(int fd, std::function<void()>) override;
++  virtual void RemoveFileDescriptorWatch(int fd) override;
++  virtual bool RunsTasksOnCurrentThread() const override;
+ 
+   // Returns true if the task runner is quitting, or has quit and hasn't been
+   // restarted since. Exposed primarily for ThreadTaskRunner, not necessary for
+diff -up chromium-81.0.4044.92/third_party/webrtc/call/rtx_receive_stream.h.omv~ chromium-81.0.4044.92/third_party/webrtc/call/rtx_receive_stream.h
+--- chromium-81.0.4044.92/third_party/webrtc/call/rtx_receive_stream.h.omv~	2020-04-14 00:09:00.436602655 +0200
++++ chromium-81.0.4044.92/third_party/webrtc/call/rtx_receive_stream.h	2020-04-14 00:09:10.749718000 +0200
+@@ -12,6 +12,7 @@
+ #define CALL_RTX_RECEIVE_STREAM_H_
+ 
+ #include <map>
++#include <cstdint>
+ 
+ #include "call/rtp_packet_sink_interface.h"
+ 
+diff -up chromium-81.0.4044.92/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.omv~ chromium-81.0.4044.92/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+--- chromium-81.0.4044.92/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.omv~	2020-04-14 00:11:46.822463657 +0200
++++ chromium-81.0.4044.92/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h	2020-04-14 00:11:49.385492326 +0200
+@@ -31,7 +31,7 @@ class ClockdriftDetector {
+  private:
+   std::array<int, 3> delay_history_;
+   Level level_;
+-  size_t stability_counter_;
++  std::size_t stability_counter_;
+ };
+ }  // namespace webrtc
+ 
+diff -up chromium-81.0.4044.92/ui/gfx/linux/drm_util_linux.h.omv~ chromium-81.0.4044.92/ui/gfx/linux/drm_util_linux.h
+--- chromium-81.0.4044.92/ui/gfx/linux/drm_util_linux.h.omv~	2020-04-14 00:16:49.078844757 +0200
++++ chromium-81.0.4044.92/ui/gfx/linux/drm_util_linux.h	2020-04-14 00:17:20.350194586 +0200
+@@ -6,6 +6,7 @@
+ #define UI_GFX_LINUX_DRM_UTIL_LINUX_H_
+ 
+ #include "ui/gfx/buffer_types.h"
++#include <cstdint>
+ 
+ namespace ui {
+ 
+diff -up chromium-81.0.4044.92/chrome/browser/search/background/ntp_backgrounds.h.omv~ chromium-81.0.4044.92/chrome/browser/search/background/ntp_backgrounds.h
+--- chromium-81.0.4044.92/chrome/browser/search/background/ntp_backgrounds.h.omv~	2020-04-14 02:09:59.003729508 +0200
++++ chromium-81.0.4044.92/chrome/browser/search/background/ntp_backgrounds.h	2020-04-14 02:10:02.814777912 +0200
+@@ -9,7 +9,7 @@
+ 
+ class GURL;
+ 
+-const size_t kNtpBackgroundsCount = 5;
++const std::size_t kNtpBackgroundsCount = 5;
+ std::array<GURL, kNtpBackgroundsCount> GetNtpBackgrounds();
+ 
+ #endif  // CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
+diff -up chromium-81.0.4044.92/media/cdm/supported_cdm_versions.h.omv~ chromium-81.0.4044.92/media/cdm/supported_cdm_versions.h
+--- chromium-81.0.4044.92/media/cdm/supported_cdm_versions.h.omv~	2020-04-14 00:59:10.960991072 +0200
++++ chromium-81.0.4044.92/media/cdm/supported_cdm_versions.h	2020-04-14 01:03:55.446562578 +0200
+@@ -52,7 +52,7 @@ constexpr bool IsSupportedCdmModuleVersi
+ // Returns whether the CDM interface of |version| is supported in the
+ // implementation.
+ constexpr bool IsSupportedCdmInterfaceVersion(int version) {
+-  for (size_t i = 0; i < kSupportedCdmInterfaceVersions.size(); ++i) {
++  for (std::size_t i = 0; i < kSupportedCdmInterfaceVersions.size(); ++i) {
+     if (kSupportedCdmInterfaceVersions[i].version == version)
+       return true;
+   }
+@@ -70,7 +70,7 @@ constexpr bool IsSupportedCdmHostVersion
+ 
+ // Returns whether the CDM interface of |version| is enabled by default.
+ constexpr bool IsCdmInterfaceVersionEnabledByDefault(int version) {
+-  for (size_t i = 0; i < kSupportedCdmInterfaceVersions.size(); ++i) {
++  for (std::size_t i = 0; i < kSupportedCdmInterfaceVersions.size(); ++i) {
+     if (kSupportedCdmInterfaceVersions[i].version == version)
+       return kSupportedCdmInterfaceVersions[i].enabled;
+   }
diff --git a/chromium-81-disable-fontconfig-cache-magic.patch b/chromium-81-disable-fontconfig-cache-magic.patch
new file mode 100644
index 0000000..ab7781c
--- /dev/null
+++ b/chromium-81-disable-fontconfig-cache-magic.patch
@@ -0,0 +1,13 @@
+diff -up chromium-81.0.4044.92/base/test/BUILD.gn.10~ chromium-81.0.4044.92/base/test/BUILD.gn
+--- chromium-81.0.4044.92/base/test/BUILD.gn.10~	2020-04-12 15:29:43.843343651 +0200
++++ chromium-81.0.4044.92/base/test/BUILD.gn	2020-04-12 15:30:40.965979196 +0200
+@@ -245,9 +245,6 @@ static_library("test_support") {
+   if (is_linux) {
+     public_deps += [ ":fontconfig_util_linux" ]
+     data_deps = [ "//third_party/test_fonts" ]
+-    if (current_toolchain == host_toolchain) {
+-      data_deps += [ ":do_generate_fontconfig_caches" ]
+-    }
+   }
+ 
+   if (is_ios) {
diff --git a/chromium-81-dont-pretend-vaapi-is-broken.patch b/chromium-81-dont-pretend-vaapi-is-broken.patch
new file mode 100644
index 0000000..58172c6
--- /dev/null
+++ b/chromium-81-dont-pretend-vaapi-is-broken.patch
@@ -0,0 +1,26 @@
+diff -up chromium-81.0.4044.92/gpu/config/software_rendering_list.json.omv~ chromium-81.0.4044.92/gpu/config/software_rendering_list.json
+--- chromium-81.0.4044.92/gpu/config/software_rendering_list.json.omv~	2020-04-14 21:39:20.199909945 +0200
++++ chromium-81.0.4044.92/gpu/config/software_rendering_list.json	2020-04-14 21:39:41.903603086 +0200
+@@ -336,22 +336,6 @@
+       ]
+     },
+     {
+-      "id": 48,
+-      "description": "Accelerated video decode is unavailable on Linux",
+-      "cr_bugs": [137247, 1032907],
+-      "os": {
+-        "type": "linux"
+-      },
+-      "exceptions": [
+-        {
+-          "machine_model_name": ["Chromecast"]
+-        }
+-      ],
+-      "features": [
+-        "accelerated_video_decode"
+-      ]
+-    },
+-    {
+       "id": 50,
+       "description": "Disable VMware software renderer on older Mesa",
+       "cr_bugs": [145531, 332596, 571899, 629434],
diff --git a/chromium-81-enable-gpu-features.patch b/chromium-81-enable-gpu-features.patch
new file mode 100644
index 0000000..8324444
--- /dev/null
+++ b/chromium-81-enable-gpu-features.patch
@@ -0,0 +1,34 @@
+diff -up chromium-81.0.4044.92/gpu/config/gpu_finch_features.cc.omv~ chromium-81.0.4044.92/gpu/config/gpu_finch_features.cc
+--- chromium-81.0.4044.92/gpu/config/gpu_finch_features.cc.omv~	2020-04-14 21:45:54.420225847 +0200
++++ chromium-81.0.4044.92/gpu/config/gpu_finch_features.cc	2020-04-14 21:51:07.452169158 +0200
+@@ -25,9 +25,10 @@ const base::Feature kDisableSurfaceContr
+ // Enable GPU Rasterization by default. This can still be overridden by
+ // --force-gpu-rasterization or --disable-gpu-rasterization.
+ #if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_CHROMEOS) || \
+-    defined(OS_ANDROID) || defined(OS_FUCHSIA)
++    defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_LINUX)
+ // DefaultEnableGpuRasterization has launched on Mac, Windows, ChromeOS, and
+-// Android.
++// Android. And of course it works on Linux too, just because Google hates Linux
++// doesn't mean we have to.
+ const base::Feature kDefaultEnableGpuRasterization{
+     "DefaultEnableGpuRasterization", base::FEATURE_ENABLED_BY_DEFAULT};
+ #else
+@@ -37,7 +38,7 @@ const base::Feature kDefaultEnableGpuRas
+ 
+ // Enable out of process rasterization by default.  This can still be overridden
+ // by --enable-oop-rasterization or --disable-oop-rasterization.
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_LINUX)
+ const base::Feature kDefaultEnableOopRasterization{
+     "DefaultEnableOopRasterization", base::FEATURE_ENABLED_BY_DEFAULT};
+ #else
+@@ -58,7 +59,7 @@ const base::Feature kGpuProcessHighPrior
+ #endif
+ 
+ // Use ThreadPriority::DISPLAY for GPU main, viz compositor and IO threads.
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_WIN)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_WIN) || defined(OS_LINUX)
+ const base::Feature kGpuUseDisplayThreadPriority{
+     "GpuUseDisplayThreadPriority", base::FEATURE_ENABLED_BY_DEFAULT};
+ #else
diff --git a/chromium-69-extra-media.patch b/chromium-81-extra-media.patch
similarity index 57%
rename from chromium-69-extra-media.patch
rename to chromium-81-extra-media.patch
index 1864fa1..8ee195a 100644
--- a/chromium-69-extra-media.patch
+++ b/chromium-81-extra-media.patch
@@ -1,6 +1,6 @@
-diff -up chromium-79.0.3945.88/media/base/audio_codecs.cc.36~ chromium-79.0.3945.88/media/base/audio_codecs.cc
---- chromium-79.0.3945.88/media/base/audio_codecs.cc.36~	2019-12-16 22:50:49.000000000 +0100
-+++ chromium-79.0.3945.88/media/base/audio_codecs.cc	2019-12-23 22:57:12.137412713 +0100
+diff -up chromium-81.0.4044.92/media/base/audio_codecs.cc.29~ chromium-81.0.4044.92/media/base/audio_codecs.cc
+--- chromium-81.0.4044.92/media/base/audio_codecs.cc.29~	2020-04-03 06:10:46.000000000 +0200
++++ chromium-81.0.4044.92/media/base/audio_codecs.cc	2020-04-13 14:26:16.191198335 +0200
 @@ -46,6 +46,10 @@ std::string GetCodecName(AudioCodec code
        return "ac3";
      case kCodecMpegHAudio:
@@ -10,9 +10,9 @@ diff -up chromium-79.0.3945.88/media/base/audio_codecs.cc.36~ chromium-79.0.3945
 +    case kCodecDTS:
 +      return "dts";
    }
-   NOTREACHED();
-   return "";
-@@ -74,6 +78,10 @@ AudioCodec StringToAudioCodec(const std:
+ }
+ 
+@@ -81,6 +85,10 @@ AudioCodec StringToAudioCodec(const std:
      return kCodecVorbis;
    if (base::StartsWith(codec_id, "mp4a.40.", base::CompareCase::SENSITIVE))
      return kCodecAAC;
@@ -23,9 +23,9 @@ diff -up chromium-79.0.3945.88/media/base/audio_codecs.cc.36~ chromium-79.0.3945
    return kUnknownAudioCodec;
  }
  
-diff -up chromium-79.0.3945.88/media/base/audio_codecs.h.36~ chromium-79.0.3945.88/media/base/audio_codecs.h
---- chromium-79.0.3945.88/media/base/audio_codecs.h.36~	2019-12-16 22:50:49.000000000 +0100
-+++ chromium-79.0.3945.88/media/base/audio_codecs.h	2019-12-23 22:57:12.137412713 +0100
+diff -up chromium-81.0.4044.92/media/base/audio_codecs.h.29~ chromium-81.0.4044.92/media/base/audio_codecs.h
+--- chromium-81.0.4044.92/media/base/audio_codecs.h.29~	2020-04-12 15:37:58.182850697 +0200
++++ chromium-81.0.4044.92/media/base/audio_codecs.h	2020-04-13 14:25:37.209757394 +0200
 @@ -33,13 +33,15 @@ enum AudioCodec {
    kCodecALAC = 15,
    kCodecAC3 = 16,
@@ -42,11 +42,11 @@ diff -up chromium-79.0.3945.88/media/base/audio_codecs.h.36~ chromium-79.0.3945.
 +  kAudioCodecMax = kCodecDTS,
  };
  
- std::string MEDIA_EXPORT GetCodecName(AudioCodec codec);
-diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.0.3945.88/media/base/mime_util_internal.cc
---- chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~	2019-12-16 22:51:27.000000000 +0100
-+++ chromium-79.0.3945.88/media/base/mime_util_internal.cc	2019-12-23 22:57:12.137412713 +0100
-@@ -88,6 +88,10 @@ const StringToCodecMap& GetStringToCodec
+ enum class AudioCodecProfile {
+diff -up chromium-81.0.4044.92/media/base/mime_util_internal.cc.29~ chromium-81.0.4044.92/media/base/mime_util_internal.cc
+--- chromium-81.0.4044.92/media/base/mime_util_internal.cc.29~	2020-04-03 06:10:46.000000000 +0200
++++ chromium-81.0.4044.92/media/base/mime_util_internal.cc	2020-04-12 15:37:58.182850697 +0200
+@@ -89,6 +89,10 @@ const StringToCodecMap& GetStringToCodec
        {"vp8", MimeUtil::VP8},
        {"vp8.0", MimeUtil::VP8},
        {"theora", MimeUtil::THEORA},
@@ -57,7 +57,7 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.
    });
  
    return *kStringToCodecMap;
-@@ -183,6 +187,10 @@ AudioCodec MimeUtilToAudioCodec(MimeUtil
+@@ -181,6 +185,10 @@ AudioCodec MimeUtilToAudioCodec(MimeUtil
        return kCodecOpus;
      case MimeUtil::FLAC:
        return kCodecFLAC;
@@ -68,7 +68,7 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.
      default:
        break;
    }
-@@ -205,6 +213,9 @@ VideoCodec MimeUtilToVideoCodec(MimeUtil
+@@ -203,6 +211,9 @@ VideoCodec MimeUtilToVideoCodec(MimeUtil
        return kCodecTheora;
      case MimeUtil::DOLBY_VISION:
        return kCodecDolbyVision;
@@ -78,7 +78,7 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.
      default:
        break;
    }
-@@ -295,6 +306,33 @@ void MimeUtil::AddSupportedMediaFormats(
+@@ -293,6 +304,33 @@ void MimeUtil::AddSupportedMediaFormats(
    CodecSet ogg_codecs(ogg_audio_codecs);
    ogg_codecs.insert(ogg_video_codecs.begin(), ogg_video_codecs.end());
  
@@ -112,7 +112,7 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.
    const CodecSet webm_audio_codecs{OPUS, VORBIS};
    CodecSet webm_video_codecs{VP8, VP9};
  #if BUILDFLAG(ENABLE_AV1_DECODER)
-@@ -304,9 +342,9 @@ void MimeUtil::AddSupportedMediaFormats(
+@@ -302,9 +340,9 @@ void MimeUtil::AddSupportedMediaFormats(
    CodecSet webm_codecs(webm_audio_codecs);
    webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
  
@@ -124,7 +124,7 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.
  
    // Only VP9 with valid codec string vp09.xx.xx.xx.xx.xx.xx.xx is supported.
    // See ParseVp9CodecID for details.
-@@ -366,6 +404,10 @@ void MimeUtil::AddSupportedMediaFormats(
+@@ -364,6 +402,10 @@ void MimeUtil::AddSupportedMediaFormats(
    DCHECK(!mp4_video_codecs.empty());
    AddContainerWithCodecs("video/mp4", mp4_codecs);
  
@@ -135,10 +135,10 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.
  #if BUILDFLAG(USE_PROPRIETARY_CODECS)
    AddContainerWithCodecs("audio/aac", implicit_codec);  // AAC / ADTS.
    // These strings are supported for backwards compatibility only and thus only
-diff -up chromium-79.0.3945.88/media/base/mime_util_internal.h.36~ chromium-79.0.3945.88/media/base/mime_util_internal.h
---- chromium-79.0.3945.88/media/base/mime_util_internal.h.36~	2019-12-16 22:51:27.000000000 +0100
-+++ chromium-79.0.3945.88/media/base/mime_util_internal.h	2019-12-23 22:57:12.137412713 +0100
-@@ -46,7 +46,11 @@ class MEDIA_EXPORT MimeUtil {
+diff -up chromium-81.0.4044.92/media/base/mime_util_internal.h.29~ chromium-81.0.4044.92/media/base/mime_util_internal.h
+--- chromium-81.0.4044.92/media/base/mime_util_internal.h.29~	2020-04-03 06:10:46.000000000 +0200
++++ chromium-81.0.4044.92/media/base/mime_util_internal.h	2020-04-12 15:37:58.182850697 +0200
+@@ -47,7 +47,11 @@ class MEDIA_EXPORT MimeUtil {
      DOLBY_VISION,
      AV1,
      MPEG_H_AUDIO,
@@ -151,9 +151,9 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.h.36~ chromium-79.0
    };
  
    // Platform configuration structure.  Controls which codecs are supported at
-diff -up chromium-79.0.3945.88/media/base/supported_types.cc.36~ chromium-79.0.3945.88/media/base/supported_types.cc
---- chromium-79.0.3945.88/media/base/supported_types.cc.36~	2019-12-23 22:57:12.138412713 +0100
-+++ chromium-79.0.3945.88/media/base/supported_types.cc	2019-12-23 23:03:49.386393440 +0100
+diff -up chromium-81.0.4044.92/media/base/supported_types.cc.29~ chromium-81.0.4044.92/media/base/supported_types.cc
+--- chromium-81.0.4044.92/media/base/supported_types.cc.29~	2020-04-03 06:11:34.000000000 +0200
++++ chromium-81.0.4044.92/media/base/supported_types.cc	2020-04-13 14:27:13.657848219 +0200
 @@ -163,6 +163,7 @@ bool IsAudioCodecProprietary(AudioCodec
      case kCodecAAC:
      case kCodecAC3:
@@ -170,15 +170,15 @@ diff -up chromium-79.0.3945.88/media/base/supported_types.cc.36~ chromium-79.0.3
      case kCodecMP3:
      case kCodecOpus:
      case kCodecVorbis:
-@@ -193,6 +195,7 @@ bool IsDefaultSupportedAudioType(const A
-   switch (type.codec) {
-     case kCodecAAC:
+@@ -205,6 +207,7 @@ bool IsDefaultSupportedAudioType(const A
+ #endif
+ 
      case kCodecFLAC:
 +    case kCodecMP2:
      case kCodecMP3:
      case kCodecOpus:
      case kCodecPCM:
-@@ -201,6 +204,10 @@ bool IsDefaultSupportedAudioType(const A
+@@ -213,6 +216,10 @@ bool IsDefaultSupportedAudioType(const A
      case kCodecPCM_S24BE:
      case kCodecPCM_ALAW:
      case kCodecVorbis:
@@ -189,7 +189,7 @@ diff -up chromium-79.0.3945.88/media/base/supported_types.cc.36~ chromium-79.0.3
        return true;
  
      case kCodecAMR_NB:
-@@ -212,9 +219,6 @@ bool IsDefaultSupportedAudioType(const A
+@@ -224,9 +231,6 @@ bool IsDefaultSupportedAudioType(const A
        return false;
  #endif
  
@@ -199,7 +199,7 @@ diff -up chromium-79.0.3945.88/media/base/supported_types.cc.36~ chromium-79.0.3
      case kCodecMpegHAudio:
      case kUnknownAudioCodec:
        return false;
-@@ -270,12 +274,12 @@ bool IsDefaultSupportedVideoType(const V
+@@ -282,12 +286,12 @@ bool IsDefaultSupportedVideoType(const V
      case kCodecH264:
      case kCodecVP8:
      case kCodecTheora:
@@ -215,13 +215,13 @@ diff -up chromium-79.0.3945.88/media/base/supported_types.cc.36~ chromium-79.0.3
      case kCodecDolbyVision:
        return false;
  
-diff -up chromium-79.0.3945.88/media/ffmpeg/ffmpeg_common.cc.36~ chromium-79.0.3945.88/media/ffmpeg/ffmpeg_common.cc
---- chromium-79.0.3945.88/media/ffmpeg/ffmpeg_common.cc.36~	2019-12-16 22:51:27.000000000 +0100
-+++ chromium-79.0.3945.88/media/ffmpeg/ffmpeg_common.cc	2019-12-23 22:59:51.658404973 +0100
-@@ -116,6 +116,10 @@ AudioCodec CodecIDToAudioCodec(AVCodecID
-       return kCodecOpus;
-     case AV_CODEC_ID_ALAC:
-       return kCodecALAC;
+diff -up chromium-81.0.4044.92/media/ffmpeg/ffmpeg_common.cc.29~ chromium-81.0.4044.92/media/ffmpeg/ffmpeg_common.cc
+--- chromium-81.0.4044.92/media/ffmpeg/ffmpeg_common.cc.29~	2020-04-12 15:37:58.182850697 +0200
++++ chromium-81.0.4044.92/media/ffmpeg/ffmpeg_common.cc	2020-04-13 14:31:35.807811237 +0200
+@@ -124,6 +124,10 @@ AudioCodec CodecIDToAudioCodec(AVCodecID
+     case AV_CODEC_ID_MPEGH_3D_AUDIO:
+       return kCodecMpegHAudio;
+ #endif
 +    case AV_CODEC_ID_MP2:
 +      return kCodecMP2;
 +    case AV_CODEC_ID_DTS:
@@ -229,10 +229,10 @@ diff -up chromium-79.0.3945.88/media/ffmpeg/ffmpeg_common.cc.36~ chromium-79.0.3
      default:
        DVLOG(1) << "Unknown audio CodecID: " << codec_id;
    }
-@@ -167,6 +171,14 @@ AVCodecID AudioCodecToCodecID(AudioCodec
-       return AV_CODEC_ID_PCM_MULAW;
-     case kCodecOpus:
-       return AV_CODEC_ID_OPUS;
+@@ -179,6 +183,14 @@ AVCodecID AudioCodecToCodecID(AudioCodec
+     case kCodecMpegHAudio:
+       return AV_CODEC_ID_MPEGH_3D_AUDIO;
+ #endif
 +    case kCodecAC3:
 +      return AV_CODEC_ID_AC3;
 +    case kCodecEAC3:
@@ -244,47 +244,25 @@ diff -up chromium-79.0.3945.88/media/ffmpeg/ffmpeg_common.cc.36~ chromium-79.0.3
      default:
        DVLOG(1) << "Unknown AudioCodec: " << audio_codec;
    }
-@@ -336,23 +348,6 @@ bool AVCodecContextToAudioDecoderConfig(
+@@ -347,6 +359,7 @@ bool AVCodecContextToAudioDecoderConfig(
                                                 codec_context->channels);
  
    int sample_rate = codec_context->sample_rate;
--  switch (codec) {
--    // For AC3/EAC3 we enable only demuxing, but not decoding, so FFmpeg does
--    // not fill |sample_fmt|.
--    case kCodecAC3:
--    case kCodecEAC3:
--#if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
--      // The spec for AC3/EAC3 audio is ETSI TS 102 366. According to sections
--      // F.3.1 and F.5.1 in that spec the sample_format for AC3/EAC3 must be 16.
--      sample_format = kSampleFormatS16;
--#else
--      NOTREACHED();
--#endif
--      break;
--
--    default:
--      break;
--  }
++#if 0
+   switch (codec) {
+     // For AC3/EAC3 we enable only demuxing, but not decoding, so FFmpeg does
+     // not fill |sample_fmt|.
+@@ -370,6 +383,7 @@ bool AVCodecContextToAudioDecoderConfig(
+     default:
+       break;
+   }
++#endif
  
    base::TimeDelta seek_preroll;
    if (codec_context->seek_preroll > 0) {
-@@ -382,13 +377,6 @@ bool AVCodecContextToAudioDecoderConfig(
-   if (channel_layout == CHANNEL_LAYOUT_DISCRETE)
-     config->SetChannelsForDiscrete(codec_context->channels);
- 
--#if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
--  // These are bitstream formats unknown to ffmpeg, so they don't have
--  // a known sample format size.
--  if (codec == kCodecAC3 || codec == kCodecEAC3)
--    return true;
--#endif
--
-   // Verify that AudioConfig.bits_per_channel was calculated correctly for
-   // codecs that have |sample_fmt| set by FFmpeg.
-   DCHECK_EQ(av_get_bytes_per_sample(codec_context->sample_fmt) * 8,
-diff -up chromium-79.0.3945.88/media/filters/ffmpeg_video_decoder.cc.36~ chromium-79.0.3945.88/media/filters/ffmpeg_video_decoder.cc
---- chromium-79.0.3945.88/media/filters/ffmpeg_video_decoder.cc.36~	2019-12-16 22:50:49.000000000 +0100
-+++ chromium-79.0.3945.88/media/filters/ffmpeg_video_decoder.cc	2019-12-23 22:57:12.138412713 +0100
+diff -up chromium-81.0.4044.92/media/filters/ffmpeg_video_decoder.cc.29~ chromium-81.0.4044.92/media/filters/ffmpeg_video_decoder.cc
+--- chromium-81.0.4044.92/media/filters/ffmpeg_video_decoder.cc.29~	2020-04-03 06:11:34.000000000 +0200
++++ chromium-81.0.4044.92/media/filters/ffmpeg_video_decoder.cc	2020-04-12 15:37:58.182850697 +0200
 @@ -38,7 +38,6 @@ static int GetFFmpegVideoDecoderThreadCo
      case kUnknownVideoCodec:
      case kCodecVC1:
@@ -301,9 +279,9 @@ diff -up chromium-79.0.3945.88/media/filters/ffmpeg_video_decoder.cc.36~ chromiu
        // Normalize to three threads for 1080p content, then scale linearly
        // with number of pixels.
        // Examples:
-diff -up chromium-79.0.3945.88/media/remoting/media_remoting_rpc.proto.36~ chromium-79.0.3945.88/media/remoting/media_remoting_rpc.proto
---- chromium-79.0.3945.88/media/remoting/media_remoting_rpc.proto.36~	2019-12-16 22:51:27.000000000 +0100
-+++ chromium-79.0.3945.88/media/remoting/media_remoting_rpc.proto	2019-12-23 22:57:12.138412713 +0100
+diff -up chromium-81.0.4044.92/media/remoting/media_remoting_rpc.proto.29~ chromium-81.0.4044.92/media/remoting/media_remoting_rpc.proto
+--- chromium-81.0.4044.92/media/remoting/media_remoting_rpc.proto.29~	2020-04-03 06:10:46.000000000 +0200
++++ chromium-81.0.4044.92/media/remoting/media_remoting_rpc.proto	2020-04-12 15:37:58.182850697 +0200
 @@ -67,6 +67,8 @@ message AudioDecoderConfig {
      kCodecALAC = 15;
      kCodecAC3 = 16;
@@ -313,10 +291,10 @@ diff -up chromium-79.0.3945.88/media/remoting/media_remoting_rpc.proto.36~ chrom
    }
  
    // Proto version of media::SampleFormat.
-diff -up chromium-79.0.3945.88/media/remoting/proto_enum_utils.cc.36~ chromium-79.0.3945.88/media/remoting/proto_enum_utils.cc
---- chromium-79.0.3945.88/media/remoting/proto_enum_utils.cc.36~	2019-12-16 22:51:27.000000000 +0100
-+++ chromium-79.0.3945.88/media/remoting/proto_enum_utils.cc	2019-12-23 22:57:12.138412713 +0100
-@@ -58,6 +58,8 @@ base::Optional<AudioCodec> ToMediaAudioC
+diff -up chromium-81.0.4044.92/media/remoting/proto_enum_utils.cc.29~ chromium-81.0.4044.92/media/remoting/proto_enum_utils.cc
+--- chromium-81.0.4044.92/media/remoting/proto_enum_utils.cc.29~	2020-04-03 06:10:46.000000000 +0200
++++ chromium-81.0.4044.92/media/remoting/proto_enum_utils.cc	2020-04-12 15:37:58.182850697 +0200
+@@ -60,6 +60,8 @@ base::Optional<AudioCodec> ToMediaAudioC
      CASE_RETURN_OTHER(kCodecALAC);
      CASE_RETURN_OTHER(kCodecAC3);
      CASE_RETURN_OTHER(kCodecMpegHAudio);
@@ -325,7 +303,7 @@ diff -up chromium-79.0.3945.88/media/remoting/proto_enum_utils.cc.36~ chromium-7
    }
    return base::nullopt;  // Not a 'default' to ensure compile-time checks.
  }
-@@ -85,6 +87,8 @@ base::Optional<pb::AudioDecoderConfig::C
+@@ -87,6 +89,8 @@ base::Optional<pb::AudioDecoderConfig::C
      CASE_RETURN_OTHER(kCodecALAC);
      CASE_RETURN_OTHER(kCodecAC3);
      CASE_RETURN_OTHER(kCodecMpegHAudio);
@@ -334,10 +312,10 @@ diff -up chromium-79.0.3945.88/media/remoting/proto_enum_utils.cc.36~ chromium-7
    }
    return base::nullopt;  // Not a 'default' to ensure compile-time checks.
  }
-diff -up chromium-79.0.3945.88/net/base/mime_util.cc.36~ chromium-79.0.3945.88/net/base/mime_util.cc
---- chromium-79.0.3945.88/net/base/mime_util.cc.36~	2019-12-16 22:50:50.000000000 +0100
-+++ chromium-79.0.3945.88/net/base/mime_util.cc	2019-12-23 22:57:12.138412713 +0100
-@@ -162,6 +162,9 @@ static const MimeInfo kPrimaryMappings[]
+diff -up chromium-81.0.4044.92/net/base/mime_util.cc.29~ chromium-81.0.4044.92/net/base/mime_util.cc
+--- chromium-81.0.4044.92/net/base/mime_util.cc.29~	2020-04-03 06:10:47.000000000 +0200
++++ chromium-81.0.4044.92/net/base/mime_util.cc	2020-04-12 15:37:58.183850708 +0200
+@@ -165,6 +165,9 @@ static const MimeInfo kPrimaryMappings[]
      {"image/png", "png"},
      {"image/apng", "png"},
      {"image/webp", "webp"},
@@ -347,7 +325,7 @@ diff -up chromium-79.0.3945.88/net/base/mime_util.cc.36~ chromium-79.0.3945.88/n
      {"multipart/related", "mht,mhtml"},
      {"text/css", "css"},
      {"text/html", "html,htm,shtml,shtm"},
-@@ -568,6 +571,7 @@ static const char* const kStandardAudioT
+@@ -570,6 +573,7 @@ static const char* const kStandardAudioT
    "audio/vorbis",
    "audio/wav",
    "audio/webm",
@@ -355,7 +333,7 @@ diff -up chromium-79.0.3945.88/net/base/mime_util.cc.36~ chromium-79.0.3945.88/n
    "audio/x-m4a",
    "audio/x-ms-wma",
    "audio/vnd.rn-realaudio",
-@@ -585,8 +589,10 @@ static const char* const kStandardVideoT
+@@ -587,8 +591,10 @@ static const char* const kStandardVideoT
    "video/webm",
    "video/x-dv",
    "video/x-m4v",
diff --git a/chromium-73.0.3683.75-norar.patch b/chromium-81-norar-patch
similarity index 51%
rename from chromium-73.0.3683.75-norar.patch
rename to chromium-81-norar-patch
index d61fd9c..446c3cd 100644
--- a/chromium-73.0.3683.75-norar.patch
+++ b/chromium-81-norar-patch
@@ -1,8 +1,8 @@
-diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn
---- chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar	2019-03-13 08:59:45.988801102 -0400
-+++ chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn	2019-03-13 09:00:20.244977448 -0400
-@@ -64,41 +64,6 @@ if (safe_browsing_mode == 1) {
-     ]
+diff -up chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn.8~ chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn
+--- chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn.8~	2020-04-10 16:05:45.111240059 +0200
++++ chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn	2020-04-12 15:27:04.499572447 +0200
+@@ -72,39 +72,6 @@ if (safe_browsing_mode == 1) {
+     public_deps = [ "//components/safe_browsing/core:csd_proto" ]
    }
  
 -  source_set("rar_analyzer") {
@@ -17,7 +17,7 @@ diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar chro
 -      ":file_type_policies",
 -      "//base",
 -      "//base:i18n",
--      "//components/safe_browsing:features",
+-      "//components/safe_browsing/core:features",
 -      "//third_party/unrar:unrar",
 -    ]
 -
@@ -35,25 +35,23 @@ diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar chro
 -      "UNRAR_NO_EXCEPTIONS",
 -    ]
 -
--    public_deps = [
--      "//components/safe_browsing:csd_proto",
--    ]
+-    public_deps = [ "//components/safe_browsing/core:csd_proto" ]
 -  }
 -
    source_set("disk_image_type_sniffer_mac") {
      sources = [
        "disk_image_type_sniffer_mac.cc",
-@@ -167,7 +132,6 @@ source_set("safe_browsing") {
+@@ -171,7 +138,6 @@ source_set("safe_browsing") {
        ":archive_analyzer_results",
        ":binary_feature_extractor",
        ":download_type_util",
 -      ":rar_analyzer",
-       "//components/safe_browsing:features",
+       "//components/safe_browsing/core:features",
      ]
  
-diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS.nounrar chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS
---- chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS.nounrar	2019-03-11 18:00:54.000000000 -0400
-+++ chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS	2019-03-13 08:59:26.513282690 -0400
+diff -up chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS.8~ chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS
+--- chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS.8~	2020-04-03 06:10:40.000000000 +0200
++++ chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS	2020-04-10 16:05:45.111240059 +0200
 @@ -1,6 +1,5 @@
  include_rules = [
    "+components/safe_browsing",
@@ -61,10 +59,10 @@ diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS.nounrar chromium
 -  "+third_party/unrar",
    "+third_party/zlib",
  ]
-diff -up chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc.nounrar	2019-03-13 08:59:26.518282566 -0400
-+++ chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc	2019-03-13 09:01:03.885935483 -0400
-@@ -48,10 +48,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
+diff -up chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc.8~ chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc
+--- chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc.8~	2020-04-03 06:10:40.000000000 +0200
++++ chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc	2020-04-10 16:05:45.111240059 +0200
+@@ -46,10 +46,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
  void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
                                           base::File temporary_file,
                                           AnalyzeRarFileCallback callback) {
diff --git a/chromium-81-norar.patch b/chromium-81-norar.patch
new file mode 100644
index 0000000..446c3cd
--- /dev/null
+++ b/chromium-81-norar.patch
@@ -0,0 +1,79 @@
+diff -up chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn.8~ chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn
+--- chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn.8~	2020-04-10 16:05:45.111240059 +0200
++++ chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn	2020-04-12 15:27:04.499572447 +0200
+@@ -72,39 +72,6 @@ if (safe_browsing_mode == 1) {
+     public_deps = [ "//components/safe_browsing/core:csd_proto" ]
+   }
+ 
+-  source_set("rar_analyzer") {
+-    sources = [
+-      "rar_analyzer.cc",
+-      "rar_analyzer.h",
+-    ]
+-
+-    deps = [
+-      ":archive_analyzer_results",
+-      ":download_type_util",
+-      ":file_type_policies",
+-      "//base",
+-      "//base:i18n",
+-      "//components/safe_browsing/core:features",
+-      "//third_party/unrar:unrar",
+-    ]
+-
+-    defines = [
+-      "_FILE_OFFSET_BITS=64",
+-      "LARGEFILE_SOURCE",
+-      "RAR_SMP",
+-      "SILENT",
+-
+-      # The following is set to disable certain macro definitions in the unrar
+-      # source code.
+-      "CHROMIUM_UNRAR",
+-
+-      # Disables exceptions in unrar, replaces them with process termination.
+-      "UNRAR_NO_EXCEPTIONS",
+-    ]
+-
+-    public_deps = [ "//components/safe_browsing/core:csd_proto" ]
+-  }
+-
+   source_set("disk_image_type_sniffer_mac") {
+     sources = [
+       "disk_image_type_sniffer_mac.cc",
+@@ -171,7 +138,6 @@ source_set("safe_browsing") {
+       ":archive_analyzer_results",
+       ":binary_feature_extractor",
+       ":download_type_util",
+-      ":rar_analyzer",
+       "//components/safe_browsing/core:features",
+     ]
+ 
+diff -up chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS.8~ chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS
+--- chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS.8~	2020-04-03 06:10:40.000000000 +0200
++++ chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS	2020-04-10 16:05:45.111240059 +0200
+@@ -1,6 +1,5 @@
+ include_rules = [
+   "+components/safe_browsing",
+   "+third_party/protobuf",
+-  "+third_party/unrar",
+   "+third_party/zlib",
+ ]
+diff -up chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc.8~ chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc
+--- chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc.8~	2020-04-03 06:10:40.000000000 +0200
++++ chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc	2020-04-10 16:05:45.111240059 +0200
+@@ -46,10 +46,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
+ void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
+                                          base::File temporary_file,
+                                          AnalyzeRarFileCallback callback) {
++#if 0
+   DCHECK(rar_file.IsValid());
+ 
+   safe_browsing::ArchiveAnalyzerResults results;
+   safe_browsing::rar_analyzer::AnalyzeRarFile(
+       std::move(rar_file), std::move(temporary_file), &results);
+   std::move(callback).Run(results);
++#else
++  NOTREACHED();
++#endif
+ }
diff --git a/chromium-81-unbundle-zlib.patch b/chromium-81-unbundle-zlib.patch
new file mode 100644
index 0000000..4c9131c
--- /dev/null
+++ b/chromium-81-unbundle-zlib.patch
@@ -0,0 +1,12 @@
+diff -up chromium-81.0.4044.92/third_party/perfetto/gn/BUILD.gn.17~ chromium-81.0.4044.92/third_party/perfetto/gn/BUILD.gn
+--- chromium-81.0.4044.92/third_party/perfetto/gn/BUILD.gn.17~	2020-04-12 15:32:26.125149888 +0200
++++ chromium-81.0.4044.92/third_party/perfetto/gn/BUILD.gn	2020-04-12 15:33:39.545967688 +0200
+@@ -294,7 +294,7 @@ if (enable_perfetto_zlib) {
+       public_configs = [ "//buildtools:zlib_config" ]
+       public_deps = [ "//buildtools:zlib" ]
+     } else {
+-      public_configs = [ "//third_party/zlib:zlib_config" ]
++      public_configs = [ "//third_party/zlib:system_zlib" ]
+       public_deps = [ "//third_party/zlib" ]
+     }
+   }
diff --git a/chromium-browser-stable.spec b/chromium-browser-stable.spec
index 8563738..ddcb9cd 100644
--- a/chromium-browser-stable.spec
+++ b/chromium-browser-stable.spec
@@ -50,7 +50,7 @@
 Name: 		chromium-browser-%{channel}
 # Working version numbers can be found at
 # http://omahaproxy.appspot.com/
-Version: 	80.0.3987.163
+Version: 	81.0.4044.113
 Release: 	1%{?extrarelsuffix}
 Summary: 	A fast webkit-based web browser
 Group: 		Networking/WWW
@@ -60,6 +60,10 @@ Source0: 	https://commondatastorage.googleapis.com/chromium-browser-official/chr
 Source1: 	chromium-wrapper
 Source2: 	chromium-browser%{namesuffix}.desktop
 Source3:	master_preferences
+# https://bugs.freedesktop.org/show_bug.cgi?id=106490
+# Workaround from Arch Linux
+# https://aur.archlinux.org/cgit/aur.git/tree/chromium-drirc-disable-10bpc-color-configs.conf?h=chromium-vaapi
+Source4:	chromium-drirc-disable-10bpc-color-configs.conf
 Source100:	%{name}.rpmlintrc
 
 ### Chromium Fedora Patches ###
@@ -78,13 +82,13 @@ Patch4:		https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-60.0.
 Patch5:		https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-60.0.3112.78-jpeg-nomangle.patch
 # Do not mangle zlib
 Patch6:		https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-77.0.3865.75-no-zlib-mangle.patch
-# Do not use unrar code, it is non-free
-Patch7:		https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-73.0.3683.75-norar.patch
+# Do not use unrar code, it is non-free (originally from Fedora, ported to 81 code base)
+Patch7:		chromium-81-norar.patch
 # Use Gentoo's Widevine hack
 # https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-widevine-r3.patch
 Patch8:		https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-71.0.3578.98-widevine-r3.patch
-# Disable fontconfig cache magic that breaks remoting
-Patch9:		https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
+# Disable fontconfig cache magic that breaks remoting (originally from Fedora, ported to 81 code base)
+Patch9:		chromium-81-disable-fontconfig-cache-magic.patch
 # drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
 Patch10:	https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch
 # Try to load widevine from other places
@@ -100,7 +104,7 @@ Patch51:	https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-76.0.
 # Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
 Patch52:	https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-78.0.3904.70-vtable-symbol-undefined.patch
 # https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-unbundle-zlib.patch
-Patch53:	https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-78.0.3904.70-unbundle-zlib.patch
+Patch53:	chromium-81-unbundle-zlib.patch
 # Needs to be submitted..
 Patch54:	https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-77.0.3865.75-gcc-include-memory.patch
 # https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec571699018772f358e
@@ -119,13 +123,6 @@ Patch63:	https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-79.0.
 # el7 only patch
 #Patch102:	https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-79.0.3945.56-el7-noexcept.patch
 
-# Enable VAAPI support on Linux
-# NOTE: This patch will never land upstream
-Patch202:	https://src.fedoraproject.org/rpms/chromium/raw/master/f/enable-vaapi.patch
-Patch203:	https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
-# Fix compatibility with VA-API library (libva) version 1
-#Patch204:	https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
-
 # Apply these patches to work around EPEL8 issues
 #Patch300:	https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
 
@@ -138,8 +135,15 @@ Patch600:	arm_use_right_compiler.patch
 # Arch Linux, fix for compile error with system ICU
 Patch602:	https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/chromium/chromium-system-icu.patch
 
+# Enable VAAPI support on Linux
+# From https://aur.archlinux.org/packages/chromium-vaapi/
+Patch650:	vaapi-build-fix.patch
+Patch651:	vdpau-support.patch
+Patch652:	rebuild-Linux-frame-button-cache-when-activation.patch
+Patch653:	chromium-skia-harmony.patch
+
 # mga
-Patch700:	chromium-69-extra-media.patch
+Patch700:	chromium-81-extra-media.patch
 Patch701:	chromium-69-wmvflvmpg.patch
 Patch702:	chromium-40-sorenson-spark.patch
 
@@ -147,11 +151,14 @@ Patch702:	chromium-40-sorenson-spark.patch
 Patch1001:	chromium-64-system-curl.patch
 Patch1002:	chromium-69-no-static-libstdc++.patch
 Patch1003:	chromium-80-libstdc++10.patch
-Patch1004:	chromium-80-clang10-libstdc++10.patch
+#Patch1004:	chromium-80-clang10-libstdc++10.patch
+Patch1005:	chromium-81-compile.patch
+Patch1006:	chromium-81-dont-pretend-vaapi-is-broken.patch
+Patch1007:	chromium-81-enable-gpu-features.patch
 
 # stop so many build warnings
-Patch1006:	chromium-71.0.3578.94-quieten.patch
-Patch1007:	chromium-trace.patch
+Patch1008:	chromium-71.0.3578.94-quieten.patch
+Patch1009:	chromium-trace.patch
 
 Provides: 	%{crname}
 Obsoletes: 	chromium-browser-unstable < 26.0.1410.51
@@ -338,6 +345,7 @@ python2 build/linux/unbundle/remove_bundled_libraries.py \
 	'third_party/angle/src/third_party/compiler' \
 	'third_party/angle/src/third_party/libXNVCtrl' \
 	'third_party/angle/src/third_party/trace_event' \
+	'third_party/angle/src/third_party/volk' \
 	'third_party/angle/third_party/glslang' \
 	'third_party/angle/third_party/spirv-headers' \
 	'third_party/angle/third_party/spirv-tools' \
@@ -384,6 +392,8 @@ python2 build/linux/unbundle/remove_bundled_libraries.py \
 	'third_party/devtools-frontend' \
 	'third_party/devtools-frontend/src/third_party/typescript' \
 	'third_party/devtools-frontend/src/third_party/axe-core' \
+	'third_party/devtools-frontend/src/front_end/third_party/wasmparser' \
+	'third_party/devtools-frontend/src/front_end/third_party/fabricjs' \
 	'third_party/dom_distiller_js' \
 	'third_party/emoji-segmenter' \
 	'third_party/expat' \
@@ -479,7 +489,6 @@ python2 build/linux/unbundle/remove_bundled_libraries.py \
 %endif
 	'third_party/rnnoise' \
 	'third_party/s2cellid' \
-	'third_party/sfntly' \
 	'third_party/simplejson' \
 	'third_party/sinonjs' \
 	'third_party/skia' \
@@ -524,13 +533,13 @@ python2 build/linux/unbundle/remove_bundled_libraries.py \
         'third_party/zlib' \
 	'third_party/zlib/google' \
 	'tools/grit/third_party/six' \
-	'tools/gn/base/third_party/icu' \
 	'url/third_party/mozilla' \
 	'v8/src/third_party/siphash' \
 	'v8/src/third_party/utf8-decoder' \
 	'v8/src/third_party/valgrind' \
 	'v8/third_party/v8' \
 	'v8/third_party/inspector_protocol' \
+	'tools/gn/src/base/third_party/icu' \
 	--do-remove
 
 
@@ -622,7 +631,7 @@ CHROMIUM_CORE_GN_DEFINES+=" custom_toolchain=\"//build/toolchain/linux/unbundle:
 CHROMIUM_CORE_GN_DEFINES+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
 CHROMIUM_CORE_GN_DEFINES+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:default\""
 
-CHROMIUM_BROWSER_GN_DEFINES="use_pulseaudio=true"
+CHROMIUM_BROWSER_GN_DEFINES="use_pulseaudio=true link_pulseaudio=true"
 CHROMIUM_BROWSER_GN_DEFINES+=" enable_nacl=false"
 CHROMIUM_BROWSER_GN_DEFINES+=" is_component_ffmpeg=true"
 CHROMIUM_BROWSER_GN_DEFINES+=" enable_hangout_services_extension=true"
@@ -741,6 +750,10 @@ ln -s %{_libdir}/libEGL.so.1.0.0 %{buildroot}%{_libdir}/%{name}/swiftshader/libE
 
 find %{buildroot} -name "*.nexe" -exec strip {} \;
 
+# drirc workaround for VAAPI
+mkdir -p %{buildroot}%{_datadir}/drirc.d/
+cp %{S:4} %{buildroot}%{_datadir}/drirc.d/10-%{name}.conf
+
 %if "%{channel}" == "stable"
 %files -n chromium-browser
 %endif
@@ -748,6 +761,7 @@ find %{buildroot} -name "*.nexe" -exec strip {} \;
 %files
 %doc LICENSE AUTHORS
 %config %{_sysconfdir}/chromium
+%{_datadir}/drirc.d/10-%{name}.conf
 %{_bindir}/%{name}
 %{_libdir}/%{name}/*.bin
 %{_libdir}/%{name}/chromium-wrapper
diff --git a/chromium-drirc-disable-10bpc-color-configs.conf b/chromium-drirc-disable-10bpc-color-configs.conf
new file mode 100644
index 0000000..c079ba1
--- /dev/null
+++ b/chromium-drirc-disable-10bpc-color-configs.conf
@@ -0,0 +1,21 @@
+<!--
+
+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>
+        <application name="Chromium" executable="chromium-browser-stable">
+            <option name="allow_rgb10_configs" value="false" />
+        </application>
+        <application name="Chromium" executable="chrome">
+            <option name="allow_rgb10_configs" value="false" />
+        </application>
+    </device>
+</driconf>
diff --git a/chromium-skia-harmony.patch b/chromium-skia-harmony.patch
new file mode 100644
index 0000000..ecd491e
--- /dev/null
+++ b/chromium-skia-harmony.patch
@@ -0,0 +1,14 @@
+--- cr/third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig	2019-07-19 11:08:34.770972665 +0000
++++ cr/third_party/skia/src/ports/SkFontHost_FreeType.cpp	2019-07-19 11:08:44.274442065 +0000
+@@ -128,9 +128,9 @@ public:
+         : fGetVarDesignCoordinates(nullptr)
+         , fGetVarAxisFlags(nullptr)
+         , fLibrary(nullptr)
+-        , fIsLCDSupported(false)
++        , fIsLCDSupported(true)
+         , fLightHintingIsYOnly(false)
+-        , fLCDExtra(0)
++        , fLCDExtra(2)
+     {
+         if (FT_New_Library(&gFTMemory, &fLibrary)) {
+             return;
diff --git a/rebuild-Linux-frame-button-cache-when-activation.patch b/rebuild-Linux-frame-button-cache-when-activation.patch
new file mode 100644
index 0000000..526e7cc
--- /dev/null
+++ b/rebuild-Linux-frame-button-cache-when-activation.patch
@@ -0,0 +1,62 @@
+From d10f885b9327399be9348b780967ebd6b7f2c4bc Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Fri, 7 Feb 2020 22:44:54 +0000
+Subject: [PATCH] Rebuild Linux frame button cache when activation state
+ changes
+
+This fixes an issue where the frame buttons would always render in an
+inactive state on Linux (see repro steps in bug 1049258).
+
+Bug: 1049258
+R=sky
+CC=pkasting
+
+Change-Id: Ic5af33199003e1d1cdf6cedf506e32388ea11fa9
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2044538
+Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
+Commit-Queue: Scott Violet <sky@chromium.org>
+Reviewed-by: Scott Violet <sky@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#739585}
+---
+ .../ui/views/frame/desktop_linux_browser_frame_view.cc      | 6 +++---
+ .../desktop_aura/desktop_window_tree_host_platform.cc       | 3 +++
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
+index 954e776057f..4f579955675 100644
+--- a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
++++ b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
+@@ -22,13 +22,13 @@ DesktopLinuxBrowserFrameView::DesktopLinuxBrowserFrameView(
+     : OpaqueBrowserFrameView(frame, browser_view, layout),
+       nav_button_provider_(std::move(nav_button_provider)) {}
+ 
+-DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() {}
++DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() = default;
+ 
+ void DesktopLinuxBrowserFrameView::Layout() {
+   // Calling MaybeUpdateCachedFrameButtonImages() from Layout() is sufficient to
+   // catch all cases that could update the appearance, since
+-  // DesktopWindowTreeHostPlatform::OnWindowStateChanged() does a layout any
+-  // time any properties change.
++  // DesktopWindowTreeHostPlatform::On{Window,Activation}StateChanged() does a
++  // layout any time the maximized and activation state changes, respectively.
+   MaybeUpdateCachedFrameButtonImages();
+   OpaqueBrowserFrameView::Layout();
+ }
+diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+index 9c695d8e5b1..9662f19aa90 100644
+--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
++++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+@@ -677,9 +677,12 @@ void DesktopWindowTreeHostPlatform::OnCloseRequest() {
+ }
+ 
+ void DesktopWindowTreeHostPlatform::OnActivationChanged(bool active) {
++  if (is_active_ == active)
++    return;
+   is_active_ = active;
+   aura::WindowTreeHostPlatform::OnActivationChanged(active);
+   desktop_native_widget_aura_->HandleActivationChanged(active);
++  Relayout();
+ }
+ 
+ base::Optional<gfx::Size>
diff --git a/vaapi-build-fix.patch b/vaapi-build-fix.patch
new file mode 100644
index 0000000..2b7851a
--- /dev/null
+++ b/vaapi-build-fix.patch
@@ -0,0 +1,51 @@
+From 5b2ff215473e0526b5b24aeff4ad90d369b21c75 Mon Sep 17 00:00:00 2001
+From: Julien Isorce <julien.isorce@chromium.org>
+Date: Wed, 05 Feb 2020 17:59:59 +0000
+Subject: [PATCH] Fix vaapi with GLX
+
+The signature of ui's gl::GLImageGLX has changed a little bit
+since "mplement GpuMemoryBuffers for EGL and GLX":
+  https://chromium-review.googlesource.com/c/chromium/src/+/1984712
+
+Bug: 1031269
+Test: build with use_vaapi=true and run with --use-gl=desktop, see
+Change-Id: I80b07294b9abdfa8233aaf79f7d9ec4c58117090
+https: //chromium.googlesource.com/chromium/src.git/+/refs/heads/master/docs/gpu/vaapi.md#vaapi-on-linux
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2036494
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Miguel Casas <mcasas@chromium.org>
+Commit-Queue: Julien Isorce <julien.isorce@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#738595}
+---
+
+diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
+index 227c31b..b42620d 100644
+--- a/media/gpu/vaapi/vaapi_picture_tfp.cc
++++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
+@@ -57,7 +57,7 @@
+   if (make_context_current_cb_ && !make_context_current_cb_.Run())
+     return false;
+
+-  glx_image_ = new gl::GLImageGLX(size_, GL_RGB);
++  glx_image_ = new gl::GLImageGLX(size_, gfx::BufferFormat::BGRX_8888);
+   if (!glx_image_->Initialize(x_pixmap_)) {
+     // x_pixmap_ will be freed in the destructor.
+     DLOG(ERROR) << "Failed creating a GLX Pixmap for TFP";
+--- a/media/mojo/services/gpu_mojo_media_client.cc	2020-04-02 21:11:34.000000000 -0700
++++ b/media/mojo/services/gpu_mojo_media_client.cc	2020-04-09 00:44:58.871366432 -0700
+@@ -158,6 +158,7 @@
+       *d3d11_supported_configs_;
+
+ #elif BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
++#if defined(OS_CHROMEOS)
+   if (base::FeatureList::IsEnabled(kChromeosVideoDecoder)) {
+     if (!cros_supported_configs_) {
+       cros_supported_configs_ =
+@@ -167,6 +168,7 @@
+         *cros_supported_configs_;
+     return supported_config_map;
+   }
++#endif  //defined(OS_CHROMEOS)
+ #endif
+
+   auto& default_configs =
diff --git a/vdpau-support.patch b/vdpau-support.patch
new file mode 100644
index 0000000..d0d849a
--- /dev/null
+++ b/vdpau-support.patch
@@ -0,0 +1,78 @@
+diff -up chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.28~ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+--- chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.28~	2020-04-03 06:11:34.000000000 +0200
++++ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.cc	2020-04-14 16:27:40.623165963 +0200
+@@ -712,6 +712,7 @@ void VaapiVideoDecodeAccelerator::Assign
+   // |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's
+   // internal decoded frame.
+   if (buffer_allocation_mode_ != BufferAllocationMode::kNone &&
++      buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau &&
+       !vpp_vaapi_wrapper_) {
+     vpp_vaapi_wrapper_ = VaapiWrapper::Create(
+         VaapiWrapper::kVideoProcess, VAProfileNone,
+@@ -743,7 +744,8 @@ void VaapiVideoDecodeAccelerator::Assign
+             : gfx::Size();
+ 
+     std::unique_ptr<VaapiPicture> picture = vaapi_picture_factory_->Create(
+-        (buffer_allocation_mode_ == BufferAllocationMode::kNone)
++        ((buffer_allocation_mode_ == BufferAllocationMode::kNone) ||
++	 (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau))
+             ? vaapi_wrapper_
+             : vpp_vaapi_wrapper_,
+         make_context_current_cb_, bind_image_cb_, buffer, size_to_bind);
+@@ -1199,6 +1201,12 @@ VaapiVideoDecodeAccelerator::GetSupporte
+ 
+ VaapiVideoDecodeAccelerator::BufferAllocationMode
+ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
++  // NVIDIA blobs use VDPAU
++  if (VaapiWrapper::GetImplementationType() == VAImplementation::kNVIDIAVDPAU) {
++    LOG(INFO) << "VA-API driver on VDPAU backend";
++    return BufferAllocationMode::kWrapVdpau;
++  }
++
+   // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
+   // |output_mode_| as well.
+   if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
+@@ -1211,7 +1219,7 @@ VaapiVideoDecodeAccelerator::DecideBuffe
+   // depends on the bitstream and sometimes it's not enough to cover the amount
+   // of frames needed by the client pipeline (see b/133733739).
+   // TODO(crbug.com/911754): Enable for VP9 Profile 2.
+-  if (IsGeminiLakeOrLater() &&
++  if (false && IsGeminiLakeOrLater() &&
+       (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) {
+     // Add one to the reference frames for the one being currently egressed, and
+     // an extra allocation for both |client_| and |decoder_|, see
+diff -up chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.h.28~ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.h
+--- chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.h.28~	2020-04-03 06:11:34.000000000 +0200
++++ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.h	2020-04-14 16:24:00.916251409 +0200
+@@ -208,6 +208,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeA
+     // Using |client_|s provided PictureBuffers and as many internally
+     // allocated.
+     kNormal,
++    kWrapVdpau,
+   };
+ 
+   // Decides the concrete buffer allocation mode, depending on the hardware
+diff -up chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.cc.28~ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.cc
+--- chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.cc.28~	2020-04-03 06:11:34.000000000 +0200
++++ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.cc	2020-04-14 16:24:00.916251409 +0200
+@@ -133,6 +133,9 @@ media::VAImplementation VendorStringToIm
+   } else if (base::StartsWith(va_vendor_string, "Intel iHD driver",
+                               base::CompareCase::SENSITIVE)) {
+     return media::VAImplementation::kIntelIHD;
++  } else if (base::StartsWith(va_vendor_string, "Splitted-Desktop Systems VDPAU",
++                              base::CompareCase::SENSITIVE)) {
++    return media::VAImplementation::kNVIDIAVDPAU;
+   }
+   return media::VAImplementation::kOther;
+ }
+diff -up chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.h.28~ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.h
+--- chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.h.28~	2020-04-03 06:11:34.000000000 +0200
++++ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.h	2020-04-14 16:24:00.916251409 +0200
+@@ -80,6 +80,7 @@ enum class VAImplementation {
+   kIntelIHD,
+   kOther,
+   kInvalid,
++  kNVIDIAVDPAU,
+ };
+ 
+ // This class handles VA-API calls and ensures proper locking of VA-API calls
Not Available

benbullard79 [@T] cox.net*Should* be OK1682d 16hrs
benbullard79 [@T] cox.netNo Comment.1679d 17hrs