diff -ur chrome/browser/about_flags.cc chromium-69.0.3497.92/chrome/browser/about_flags.cc --- chrome/browser/about_flags.cc.orig 2019-06-18 11:47:49.000000000 -0400 +++ chrome/browser/about_flags.cc 2019-07-02 12:25:40.601434149 -0400 @@ -1053,12 +1053,14 @@ {"ui-disable-partial-swap", flag_descriptions::kUiPartialSwapName, flag_descriptions::kUiPartialSwapDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kUIDisablePartialSwap)}, +#if defined(OS_CHROMEOS) || defined(OS_ANDROID) {"disable-webrtc-hw-decoding", flag_descriptions::kWebrtcHwDecodingName, flag_descriptions::kWebrtcHwDecodingDescription, kOsAndroid | kOsCrOS, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebRtcHWDecoding)}, {"disable-webrtc-hw-encoding", flag_descriptions::kWebrtcHwEncodingName, flag_descriptions::kWebrtcHwEncodingDescription, kOsAndroid | kOsCrOS, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebRtcHWEncoding)}, +#endif #if !defined(OS_ANDROID) {"enable-reader-mode", flag_descriptions::kEnableReaderModeName, flag_descriptions::kEnableReaderModeDescription, kOsDesktop, @@ -1386,6 +1388,13 @@ flag_descriptions::kMojoImfDescription, kOsCrOS, FEATURE_VALUE_TYPE(features::kMojoIMF)}, #endif // OS_CHROMEOS +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) + { + "enable-accelerated-video", flag_descriptions::kAcceleratedVideoName, + flag_descriptions::kAcceleratedVideoDescription, kOsLinux, + SINGLE_VALUE_TYPE(switches::kEnableAcceleratedVideo), + }, +#else { "disable-accelerated-video-decode", flag_descriptions::kAcceleratedVideoDecodeName, @@ -1393,6 +1402,7 @@ kOsMac | kOsWin | kOsCrOS | kOsAndroid, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), }, +#endif #if defined(OS_WIN) {"enable-hdr", flag_descriptions::kEnableHDRName, flag_descriptions::kEnableHDRDescription, kOsWin, @@ -1882,12 +1892,17 @@ FEATURE_VALUE_TYPE(service_manager::features::kXRSandbox)}, #endif // ENABLE_ISOLATED_XR_SERVICE #endif // ENABLE_VR -#if defined(OS_CHROMEOS) +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) + {"enable-accelerated-mjpeg-decode", + flag_descriptions::kAcceleratedMjpegDecodeName, + flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsLinux, + SINGLE_VALUE_TYPE(switches::kEnableAcceleratedMjpegDecode)}, +#elif defined(OS_CHROMEOS) {"disable-accelerated-mjpeg-decode", flag_descriptions::kAcceleratedMjpegDecodeName, flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, -#endif // OS_CHROMEOS +#endif {"v8-cache-options", flag_descriptions::kV8CacheOptionsName, flag_descriptions::kV8CacheOptionsDescription, kOsAll, MULTI_VALUE_TYPE(kV8CacheOptionsChoices)}, Only in chrome/browser: about_flags.cc.orig diff -ur chrome/browser/chromeos/login/chrome_restart_request.cc chromium-69.0.3497.92/chrome/browser/chromeos/login/chrome_restart_request.cc --- chrome/browser/chromeos/login/chrome_restart_request.cc 2018-09-12 00:39:23.000000000 +0530 +++ chrome/browser/chromeos/login/chrome_restart_request.cc 2018-09-13 22:10:33.986014728 +0530 @@ -19,6 +19,7 @@ #include "base/sys_info.h" #include "base/timer/timer.h" #include "base/values.h" +#include "build/build_config.h" #include "cc/base/switches.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/boot_times_recorder.h" @@ -84,9 +85,14 @@ ::switches::kDisable2dCanvasImageChromium, ::switches::kDisableAccelerated2dCanvas, ::switches::kDisableAcceleratedJpegDecoding, +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) + ::switches::kEnableAcceleratedMjpegDecode, + ::switches::kEnableAcceleratedVideo, +#else ::switches::kDisableAcceleratedMjpegDecode, ::switches::kDisableAcceleratedVideoDecode, ::switches::kDisableAcceleratedVideoEncode, +#endif ::switches::kDisableBlinkFeatures, ::switches::kDisableCastStreamingHWEncoding, ::switches::kDisableGpu, @@ -160,8 +166,10 @@ ::switches::kEnableWebGLImageChromium, ::switches::kEnableWebVR, ::switches::kEnableUnsafeWebGPU, +#if (defined(OS_CHROMEOS) || defined(OS_ANDROID)) ::switches::kDisableWebRtcHWDecoding, ::switches::kDisableWebRtcHWEncoding, +#endif ::switches::kOzonePlatform, ash::switches::kAshEnableTabletMode, ash::switches::kAshEnableWaylandServer, diff -ur chrome/browser/flag_descriptions.cc chromium-69.0.3497.92/chrome/browser/flag_descriptions.cc --- chrome/browser/flag_descriptions.cc.orig 2019-06-18 11:47:50.000000000 -0400 +++ chrome/browser/flag_descriptions.cc 2019-07-02 12:27:47.137866754 -0400 @@ -14,6 +14,13 @@ "Enables the use of the GPU to perform 2d canvas rendering instead of " "using software rendering."; +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) +const char kAcceleratedVideoName[] = "Hardware-accelerated video"; +const char kAcceleratedVideoDescription[] = + "Hardware-accelerated video where VA-API driver is installed on the" + "system."; +#endif + const char kAcceleratedVideoDecodeName[] = "Hardware-accelerated video decode"; const char kAcceleratedVideoDecodeDescription[] = "Hardware-accelerated video decode where available."; @@ -2081,6 +2088,7 @@ const char kWebrtcHybridAgcDescription[] = "WebRTC Agc2 digital adaptation with Agc1 analog adaptation."; +#if defined(OS_CHROMEOS) || defined(OS_ANDROID) const char kWebrtcHwDecodingName[] = "WebRTC hardware video decoding"; const char kWebrtcHwDecodingDescription[] = "Support in WebRTC for decoding video streams using platform hardware."; @@ -2088,6 +2096,7 @@ const char kWebrtcHwEncodingName[] = "WebRTC hardware video encoding"; const char kWebrtcHwEncodingDescription[] = "Support in WebRTC for encoding video streams using platform hardware."; +#endif const char kWebrtcHwH264EncodingName[] = "WebRTC hardware h264 video encoding"; const char kWebrtcHwH264EncodingDescription[] = @@ -2943,14 +2952,16 @@ // Chrome OS ------------------------------------------------------------------- -#if defined(OS_CHROMEOS) +#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) const char kAcceleratedMjpegDecodeName[] = "Hardware-accelerated mjpeg decode for captured frame"; const char kAcceleratedMjpegDecodeDescription[] = "Enable hardware-accelerated mjpeg decode for captured frame where " "available."; +#endif +#if defined(OS_CHROMEOS) const char kAppServiceAshName[] = "App Service Ash"; const char kAppServiceAshDescription[] = "Use the App Service to provide data to the Ash UI, such as the shelf and " diff -ur chrome/browser/flag_descriptions.h chromium-69.0.3497.92/chrome/browser/flag_descriptions.h --- chrome/browser/flag_descriptions.h.orig 2019-06-18 11:47:50.000000000 -0400 +++ chrome/browser/flag_descriptions.h 2019-07-02 12:29:46.200214795 -0400 @@ -43,6 +43,10 @@ extern const char kAccelerated2dCanvasName[]; extern const char kAccelerated2dCanvasDescription[]; +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) +extern const char kAcceleratedVideoName[]; +extern const char kAcceleratedVideoDescription[]; +#endif extern const char kAcceleratedVideoDecodeName[]; extern const char kAcceleratedVideoDecodeDescription[]; @@ -1765,13 +1769,17 @@ #endif // defined(OS_MACOSX) -// Chrome OS ------------------------------------------------------------------ - -#if defined(OS_CHROMEOS) +#if defined(OS_CHROMEOS) || (defined(OS_LINUX) && !defined(OS_ANDROID)) extern const char kAcceleratedMjpegDecodeName[]; extern const char kAcceleratedMjpegDecodeDescription[]; +#endif + +// Chrome OS ------------------------------------------------------------------ + +#if defined(OS_CHROMEOS) + extern const char kAppServiceAshName[]; extern const char kAppServiceAshDescription[]; diff -ur content/browser/gpu/compositor_util.cc chromium-69.0.3497.92/content/browser/gpu/compositor_util.cc --- content/browser/gpu/compositor_util.cc 2018-09-12 00:39:41.000000000 +0530 +++ content/browser/gpu/compositor_util.cc 2018-09-13 22:10:34.072012092 +0530 @@ -149,7 +149,11 @@ {"video_decode", SafeGetFeatureStatus(gpu_feature_info, gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE), +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) + !command_line.HasSwitch(switches::kEnableAcceleratedVideo), +#else command_line.HasSwitch(switches::kDisableAcceleratedVideoDecode), +#endif "Accelerated video decode has been disabled, either via blacklist, " "about:flags or the command line.", true, true}, diff -ur content/browser/gpu/gpu_process_host.cc chromium-69.0.3497.92/content/browser/gpu/gpu_process_host.cc --- content/browser/gpu/gpu_process_host.cc 2018-09-12 00:39:41.000000000 +0530 +++ content/browser/gpu/gpu_process_host.cc 2018-09-13 22:10:34.113010836 +0530 @@ -209,7 +209,9 @@ switches::kDisableLogging, switches::kDisableShaderNameHashing, switches::kDisableSkiaRuntimeOpts, +#if !defined(OS_LINUX) switches::kDisableWebRtcHWEncoding, +#endif #if defined(OS_WIN) switches::kEnableAcceleratedVpxDecode, #endif diff -ur content/browser/renderer_host/media/video_capture_browsertest.cc chromium-69.0.3497.92/content/browser/renderer_host/media/video_capture_browsertest.cc --- content/browser/renderer_host/media/video_capture_browsertest.cc 2018-09-12 00:39:41.000000000 +0530 +++ content/browser/renderer_host/media/video_capture_browsertest.cc 2018-09-13 22:10:34.124010499 +0530 @@ -165,8 +165,13 @@ base::CommandLine::ForCurrentProcess()->AppendSwitch( switches::kUseFakeJpegDecodeAccelerator); } else { +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) + base::CommandLine::ForCurrentProcess()->AppendSwitch( + switches::kEnableAcceleratedMjpegDecode); +#else base::CommandLine::ForCurrentProcess()->AppendSwitch( switches::kDisableAcceleratedMjpegDecode); +#endif } } diff -ur content/browser/renderer_host/render_process_host_impl.cc chromium-69.0.3497.92/content/browser/renderer_host/render_process_host_impl.cc --- content/browser/renderer_host/render_process_host_impl.cc 2019-05-14 14:50:24.000000000 -0400 +++ content/browser/renderer_host/render_process_host_impl.cc 2019-07-02 09:42:59.280570734 -0400 @@ -2953,7 +2953,11 @@ switches::kDefaultTileHeight, switches::kDisable2dCanvasImageChromium, switches::kDisableAcceleratedJpegDecoding, +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) + switches::kEnableAcceleratedVideo, +#else switches::kDisableAcceleratedVideoDecode, +#endif switches::kDisableBackgroundTimerThrottling, switches::kDisableBestEffortTasks, switches::kDisableBreakpad, @@ -3091,8 +3095,10 @@ #if BUILDFLAG(ENABLE_PLUGINS) switches::kEnablePepperTesting, #endif +#if !defined(OS_LINUX) || defined(OS_CHROMEOS) switches::kDisableWebRtcHWDecoding, switches::kDisableWebRtcHWEncoding, +#endif switches::kEnableWebRtcSrtpAesGcm, switches::kEnableWebRtcSrtpEncryptedHeaders, switches::kEnableWebRtcStunOrigin, Only in content/browser/renderer_host: render_process_host_impl.cc.orig diff -ur content/browser/utility_process_host.cc chromium-69.0.3497.92/content/browser/utility_process_host.cc --- content/browser/utility_process_host.cc 2018-09-12 00:39:41.000000000 +0530 +++ content/browser/utility_process_host.cc 2018-09-13 22:10:34.296005227 +0530 @@ -296,7 +296,11 @@ switches::kOverrideUseSoftwareGLForTests, switches::kOverrideEnabledCdmInterfaceVersion, switches::kProxyServer, +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) + switches::kEnableAcceleratedMjpegDecode, +#else switches::kDisableAcceleratedMjpegDecode, +#endif switches::kUseFakeDeviceForMediaStream, switches::kUseFakeJpegDecodeAccelerator, switches::kUseFileForFakeVideoCapture, diff -ur content/browser/webrtc/webrtc_media_recorder_browsertest.cc chromium-69.0.3497.92/content/browser/webrtc/webrtc_media_recorder_browsertest.cc --- content/browser/webrtc/webrtc_media_recorder_browsertest.cc 2018-09-12 00:39:41.000000000 +0530 +++ content/browser/webrtc/webrtc_media_recorder_browsertest.cc 2018-09-13 22:10:34.143009916 +0530 @@ -66,7 +66,12 @@ return; // This flag is also used for encoding, https://crbug.com/616640. base::CommandLine::ForCurrentProcess()->AppendSwitch( - switches::kDisableAcceleratedVideoDecode); +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) + switches::kEnableAcceleratedVideo +#else + switches::kDisableAcceleratedVideoDecode +#endif + ); } private: diff -ur content/gpu/BUILD.gn chromium-69.0.3497.92/content/gpu/BUILD.gn --- content/gpu/BUILD.gn 2018-09-12 00:39:41.000000000 +0530 +++ content/gpu/BUILD.gn 2018-09-13 22:10:34.148009763 +0530 @@ -133,4 +133,8 @@ (!is_chromecast || is_cast_desktop_build)) { configs += [ "//build/config/linux/dri" ] } + + if (is_desktop_linux) { + public_configs = [ "//media/gpu:libva_config" ] + } } diff -ur content/gpu/gpu_main.cc chromium-69.0.3497.92/content/gpu/gpu_main.cc --- content/gpu/gpu_main.cc 2019-07-02 09:50:13.403486804 -0400 +++ content/gpu/gpu_main.cc 2019-07-02 09:55:07.256818723 -0400 @@ -288,7 +288,7 @@ base::PlatformThread::SetName("CrGpuMain"); -#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) +#if defined(OS_LINUX) // Set thread priority before sandbox initialization. base::PlatformThread::SetCurrentThreadPriority(base::ThreadPriority::DISPLAY); #endif @@ -321,7 +321,7 @@ GetContentClient()->SetGpuInfo(gpu_init->gpu_info()); base::ThreadPriority io_thread_priority = base::ThreadPriority::NORMAL; -#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(USE_OZONE) +#if defined(OS_LINUX) io_thread_priority = base::ThreadPriority::DISPLAY; #endif diff -ur content/public/browser/gpu_utils.cc chromium-69.0.3497.92/content/public/browser/gpu_utils.cc --- content/public/browser/gpu_utils.cc 2018-09-12 00:39:42.000000000 +0530 +++ content/public/browser/gpu_utils.cc 2018-09-13 22:10:34.164009273 +0530 @@ -57,9 +57,17 @@ gpu_preferences.in_process_gpu = command_line->HasSwitch(switches::kInProcessGPU); gpu_preferences.disable_accelerated_video_decode = +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) + !command_line->HasSwitch(switches::kEnableAcceleratedVideo); +#else command_line->HasSwitch(switches::kDisableAcceleratedVideoDecode); +#endif gpu_preferences.disable_accelerated_video_encode = +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) + !command_line->HasSwitch(switches::kEnableAcceleratedVideo); +#else command_line->HasSwitch(switches::kDisableAcceleratedVideoEncode); +#endif #if defined(OS_WIN) uint32_t enable_accelerated_vpx_decode_val = gpu::GpuPreferences::VPX_VENDOR_MICROSOFT; diff -ur content/public/common/content_switches.cc chromium-69.0.3497.92/content/public/common/content_switches.cc --- content/public/common/content_switches.cc 2018-09-12 00:39:42.000000000 +0530 +++ content/public/common/content_switches.cc 2018-09-13 22:10:34.172009028 +0530 @@ -79,6 +79,11 @@ // Disable gpu-accelerated 2d canvas. const char kDisableAccelerated2dCanvas[] = "disable-accelerated-2d-canvas"; +#if defined(OS_LINUX) +// Enables hardware acceleration of video for Linux only. VA-API driver +// is required to be present on the system installation. +const char kEnableAcceleratedVideo[] = "enable-accelerated-video"; +#endif // Disables hardware acceleration of video decode, where available. const char kDisableAcceleratedVideoDecode[] = "disable-accelerated-video-decode"; @@ -868,11 +873,13 @@ // ignores this switch on its stable and beta channels. const char kDisableWebRtcEncryption[] = "disable-webrtc-encryption"; +#if defined(OS_CHROMEOS) // Disables HW decode acceleration for WebRTC. const char kDisableWebRtcHWDecoding[] = "disable-webrtc-hw-decoding"; // Disables HW encode acceleration for WebRTC. const char kDisableWebRtcHWEncoding[] = "disable-webrtc-hw-encoding"; +#endif // Enables negotiation of GCM cipher suites from RFC 7714 for SRTP in WebRTC. // See https://tools.ietf.org/html/rfc7714 for further information. diff -ur content/public/common/content_switches.h chromium-69.0.3497.92/content/public/common/content_switches.h --- content/public/common/content_switches.h 2018-09-12 00:39:42.000000000 +0530 +++ content/public/common/content_switches.h 2018-09-13 22:10:34.172009028 +0530 @@ -104,6 +104,9 @@ CONTENT_EXPORT extern const char kDomAutomationController[]; extern const char kDisable2dCanvasClipAntialiasing[]; CONTENT_EXPORT extern const char kDumpBlinkRuntimeCallStats[]; +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) +CONTENT_EXPORT extern const char kEnableAcceleratedVideo[]; +#endif CONTENT_EXPORT extern const char kEnableAccessibilityObjectModel[]; CONTENT_EXPORT extern const char kEnableAggressiveDOMStorageFlushing[]; CONTENT_EXPORT extern const char kEnableAutomation[]; @@ -241,8 +244,10 @@ CONTENT_EXPORT extern const char kWaitForDebuggerChildren[]; CONTENT_EXPORT extern const char kDisableWebRtcEncryption[]; +#if defined(OS_CHROMEOS) CONTENT_EXPORT extern const char kDisableWebRtcHWDecoding[]; CONTENT_EXPORT extern const char kDisableWebRtcHWEncoding[]; +#endif CONTENT_EXPORT extern const char kEnableWebRtcSrtpAesGcm[]; CONTENT_EXPORT extern const char kEnableWebRtcSrtpEncryptedHeaders[]; CONTENT_EXPORT extern const char kEnableWebRtcStunOrigin[]; diff -ur content/renderer/render_thread_impl.cc chromium-69.0.3497.92/content/renderer/render_thread_impl.cc --- content/renderer/render_thread_impl.cc 2018-09-12 00:39:42.000000000 +0530 +++ content/renderer/render_thread_impl.cc 2018-09-13 22:10:34.192008415 +0530 @@ -1441,7 +1441,11 @@ kGpuStreamPriorityMedia); const bool enable_video_accelerator = +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) + cmd_line->HasSwitch(switches::kEnableAcceleratedVideo) && +#else !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode) && +#endif (gpu_channel_host->gpu_feature_info() .status_values[gpu::GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE] == gpu::kGpuFeatureStatusEnabled); Only in content/renderer: render_thread_impl.cc.orig diff -ur gpu/config/software_rendering_list.json chromium-69.0.3497.92/gpu/config/software_rendering_list.json --- gpu/config/software_rendering_list.json 2018-09-12 00:39:44.000000000 +0530 +++ gpu/config/software_rendering_list.json 2018-09-13 22:10:34.193008384 +0530 @@ -377,17 +377,6 @@ ] }, { - "id": 48, - "description": "Accelerated video decode is unavailable on Linux", - "cr_bugs": [137247], - "os": { - "type": "linux" - }, - "features": [ - "accelerated_video_decode" - ] - }, - { "id": 50, "description": "Disable VMware software renderer on older Mesa", "cr_bugs": [145531, 332596, 571899, 629434], diff -ur media/base/media_switches.cc chromium-69.0.3497.92/media/base/media_switches.cc --- media/base/media_switches.cc.orig 2019-06-18 11:48:14.000000000 -0400 +++ media/base/media_switches.cc 2019-07-02 12:32:22.370983036 -0400 @@ -103,10 +103,15 @@ const char kUseFakeMjpegDecodeAccelerator[] = "use-fake-mjpeg-decode-accelerator"; +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) +// Enable hardware accelerated mjpeg decode on linux +const char kEnableAcceleratedMjpegDecode[] = "enable-accelerated-mjpeg-decode"; +#else // Disable hardware acceleration of mjpeg decode for captured frame, where // available. const char kDisableAcceleratedMjpegDecode[] = "disable-accelerated-mjpeg-decode"; +#endif // When running tests on a system without the required hardware or libraries, // this flag will cause the tests to fail. Otherwise, they silently succeed. @@ -503,15 +508,21 @@ }; bool IsVideoCaptureAcceleratedJpegDecodingEnabled() { +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) && !defined(OS_ANDROID) + if (!base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kEnableAcceleratedMjpegDecode) +#else if (base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kDisableAcceleratedMjpegDecode)) { + switches::kDisableAcceleratedMjpegDecode) +#endif + ) { return false; } if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kUseFakeMjpegDecodeAccelerator)) { return true; } -#if defined(OS_CHROMEOS) +#if !defined(OS_ANDROID) && defined(OS_LINUX) return true; #endif return false; diff -ur media/base/media_switches.h chromium-69.0.3497.92/media/base/media_switches.h --- media/base/media_switches.h.orig 2019-07-02 12:20:39.902984488 -0400 +++ media/base/media_switches.h 2019-07-02 12:33:45.441923602 -0400 @@ -60,7 +60,11 @@ MEDIA_EXPORT extern const char kUseFileForFakeVideoCapture[]; MEDIA_EXPORT extern const char kUseFileForFakeAudioCapture[]; MEDIA_EXPORT extern const char kUseFakeMjpegDecodeAccelerator[]; +#if defined(OS_LINUX) && !defined(OS_CHROMEOS) +MEDIA_EXPORT extern const char kEnableAcceleratedMjpegDecode[]; +#else MEDIA_EXPORT extern const char kDisableAcceleratedMjpegDecode[]; +#endif MEDIA_EXPORT extern const char kRequireAudioHardwareForTesting[]; MEDIA_EXPORT extern const char kMuteAudio[]; diff -ur media/gpu/BUILD.gn chromium-69.0.3497.92/media/gpu/BUILD.gn --- media/gpu/BUILD.gn 2018-09-12 00:39:48.000000000 +0530 +++ media/gpu/BUILD.gn 2018-09-13 22:10:34.210007863 +0530 @@ -508,6 +508,14 @@ } } +if (is_desktop_linux && use_vaapi) { + import("//build/config/linux/pkg_config.gni") + + pkg_config("libva_config") { + packages = [ "libva" ] + } +} + if (use_v4l2_codec || use_vaapi) { test("jpeg_encode_accelerator_unittest") { deps = [ @@ -559,6 +567,10 @@ if (use_ozone) { deps += [ "//ui/ozone" ] } + + if (is_desktop_linux) { + public_configs = [ ":libva_config" ] + } } } --- content/renderer/media/webrtc/video_codec_factory.cc.orig 2019-07-02 16:39:57.973241977 -0400 +++ content/renderer/media/webrtc/video_codec_factory.cc 2019-07-02 17:00:00.656342711 -0400 @@ -187,8 +187,11 @@ std::unique_ptr encoder_factory; const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); - if (gpu_factories && gpu_factories->IsGpuVideoAcceleratorEnabled() && - !cmd_line->HasSwitch(switches::kDisableWebRtcHWEncoding)) { + if (gpu_factories && gpu_factories->IsGpuVideoAcceleratorEnabled() +#if defined(OS_CHROMEOS) + && !cmd_line->HasSwitch(switches::kDisableWebRtcHWEncoding) +#endif + ) { encoder_factory.reset(new RTCVideoEncoderFactory(gpu_factories)); } @@ -205,8 +208,11 @@ std::unique_ptr decoder_factory; const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); - if (gpu_factories && gpu_factories->IsGpuVideoAcceleratorEnabled() && - !cmd_line->HasSwitch(switches::kDisableWebRtcHWDecoding)) { + if (gpu_factories && gpu_factories->IsGpuVideoAcceleratorEnabled() +#if defined(OS_CHROMEOS) + && !cmd_line->HasSwitch(switches::kDisableWebRtcHWDecoding) +#endif + ) { decoder_factory.reset(new RTCVideoDecoderFactory(gpu_factories)); }