From 4bdaa3c977fb0b135aac8ebab12de683000a27eb Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Fri, 5 Aug 2016 14:51:22 -0700 Subject: [PATCH] chromium: update to 53.0.2785.92 --- .../addons/browser/chromium/changelog.txt | 3 + packages/addons/browser/chromium/package.mk | 8 +- .../patches/chromium-0001_widevine.patch | 45 +- .../chromium-0002-unset-madv_free.patch | 15 + .../chromium-0004_enable-vaapi-on-linux.patch | 936 ++++++++++-------- 5 files changed, 524 insertions(+), 483 deletions(-) create mode 100644 packages/addons/browser/chromium/patches/chromium-0002-unset-madv_free.patch diff --git a/packages/addons/browser/chromium/changelog.txt b/packages/addons/browser/chromium/changelog.txt index afa0cf171a..fc71b8fece 100644 --- a/packages/addons/browser/chromium/changelog.txt +++ b/packages/addons/browser/chromium/changelog.txt @@ -1,3 +1,6 @@ +8.0.104 +- Update to 53.0.2785.92 + 8.0.103 - add xdotool diff --git a/packages/addons/browser/chromium/package.mk b/packages/addons/browser/chromium/package.mk index f1e6e26d85..ced8919cc6 100644 --- a/packages/addons/browser/chromium/package.mk +++ b/packages/addons/browser/chromium/package.mk @@ -19,8 +19,8 @@ ################################################################################ PKG_NAME="chromium" -PKG_VERSION="50.0.2661.75" -PKG_REV="103" +PKG_VERSION="53.0.2785.92" +PKG_REV="104" PKG_ARCH="x86_64" PKG_LICENSE="Mixed" PKG_SITE="http://www.chromium.org/Home" @@ -29,7 +29,7 @@ PKG_DEPENDS_TARGET="toolchain pciutils dbus libXcomposite libXcursor libXtst als PKG_PRIORITY="optional" PKG_SECTION="browser" PKG_SHORTDESC="Chromium Browser: the open-source web browser from Google" -PKG_LONGDESC="Chromium Browser: the open-source web browser from Google" +PKG_LONGDESC="Chromium Browser ($PKG_VERSION): the open-source web browser from Google" PKG_AUTORECONF="no" PKG_IS_ADDON="yes" @@ -45,6 +45,8 @@ pre_make_target() { # https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/9JX1N2nf4PU/discussion touch chrome/test/data/webui/i18n_process_css_test.html + + sed -i -e 's/@WIDEVINE_VERSION@/Pinkie Pie/' third_party/widevine/cdm/stub/widevine_cdm_version.h } make_target() { diff --git a/packages/addons/browser/chromium/patches/chromium-0001_widevine.patch b/packages/addons/browser/chromium/patches/chromium-0001_widevine.patch index eb06138905..a67ae8b1c1 100644 --- a/packages/addons/browser/chromium/patches/chromium-0001_widevine.patch +++ b/packages/addons/browser/chromium/patches/chromium-0001_widevine.patch @@ -1,46 +1,3 @@ -diff -upr chromium-48.0.2564.82.orig/chrome/common/chrome_content_client.cc chromium-48.0.2564.82/chrome/common/chrome_content_client.cc ---- chromium-48.0.2564.82.orig/chrome/common/chrome_content_client.cc 2016-01-20 22:01:20.000000000 +0200 -+++ chromium-48.0.2564.82/chrome/common/chrome_content_client.cc 2016-01-21 20:02:02.788936626 +0200 -@@ -158,7 +158,12 @@ void ComputeBuiltInPlugins(std::vector + #include + ++#if OS(LINUX) && defined(MADV_FREE) ++// Added in Linux 4.5, but it breaks the sandbox. ++#undef MADV_FREE ++#endif ++ + #ifndef MADV_FREE + #define MADV_FREE MADV_DONTNEED + #endif diff --git a/packages/addons/browser/chromium/patches/chromium-0004_enable-vaapi-on-linux.patch b/packages/addons/browser/chromium/patches/chromium-0004_enable-vaapi-on-linux.patch index 3fdd7f89ad..6550078b92 100644 --- a/packages/addons/browser/chromium/patches/chromium-0004_enable-vaapi-on-linux.patch +++ b/packages/addons/browser/chromium/patches/chromium-0004_enable-vaapi-on-linux.patch @@ -1,89 +1,34 @@ -Description: Enables using VA-API hardware acceleration in Linux. The patch for bpf_gpu_policy_linux.cc initially came from https://codereview.chromium.org/15955009/diff/92001/content/common/sandbox_linux/bpf_gpu_policy_linux.cc. +From 0cc8e208feef2c49b8f2344005e97684b5e84012 Mon Sep 17 00:00:00 2001 +From: Knut Andre Tidemann +Date: Mon, 29 Aug 2016 20:57:27 +0200 +Subject: [PATCH] Enable VAAPI on Linux. -Index: dev.wily/content/common/gpu/media/gpu_video_decode_accelerator.cc -=================================================================== ---- dev.wily.orig/content/common/gpu/media/gpu_video_decode_accelerator.cc -+++ dev.wily/content/common/gpu/media/gpu_video_decode_accelerator.cc -@@ -34,7 +34,7 @@ - #include "content/common/gpu/media/dxva_video_decode_accelerator_win.h" - #elif defined(OS_MACOSX) - #include "content/common/gpu/media/vt_video_decode_accelerator_mac.h" --#elif defined(OS_CHROMEOS) -+#elif defined(OS_CHROMEOS) || defined(OS_LINUX) - #if defined(USE_V4L2_CODEC) - #include "content/common/gpu/media/v4l2_device.h" - #include "content/common/gpu/media/v4l2_slice_video_decode_accelerator.h" -@@ -164,7 +164,7 @@ - #if defined(OS_WIN) - capabilities.supported_profiles = - DXVAVideoDecodeAccelerator::GetSupportedProfiles(); --#elif defined(OS_CHROMEOS) -+#elif defined(OS_CHROMEOS) || defined(OS_LINUX) - media::VideoDecodeAccelerator::SupportedProfiles vda_profiles; - #if defined(USE_V4L2_CODEC) - vda_profiles = V4L2VideoDecodeAccelerator::GetSupportedProfiles(); -@@ -251,6 +251,8 @@ void GpuVideoDecodeAccelerator::Initiali - } - #endif - -+ VLOG(1) << "Initializing GPU video decode accelerator."; -+ - // Array of Create..VDA() function pointers, maybe applicable to the current - // platform. This list is ordered by priority of use and it should be the - // same as the order of querying supported profiles of VDAs. -@@ -361,11 +361,14 @@ - &GpuVideoDecodeAccelerator::CreateAndroidVDA}; - - for (const auto& create_vda_function : create_vda_fps) { -+ VLOG(1) << "Testing create_vda_function."; - video_decode_accelerator_ = (this->*create_vda_function)(); - if (!video_decode_accelerator_ || - !video_decode_accelerator_->Initialize(config, this)) - continue; - -+ VLOG(1) << "Initialization successful."; -+ - if (video_decode_accelerator_->CanDecodeOnIOThread()) { - filter_ = new MessageFilter(this, host_route_id_); - stub_->channel()->AddFilter(filter_.get()); -@@ -346,7 +351,9 @@ void GpuVideoDecodeAccelerator::BindImag - scoped_ptr - GpuVideoDecodeAccelerator::CreateVaapiVDA() { - scoped_ptr decoder; --#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) -+ VLOG(1) << "About to create new VAAPI video decode accelerator."; -+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) -+ VLOG(1) << "Creating new VAAPI video decode accelerator."; - decoder.reset(new VaapiVideoDecodeAccelerator( - make_context_current_, base::Bind(&GpuVideoDecodeAccelerator::BindImage, - base::Unretained(this)))); -Index: dev.wily/content/content_common.gypi -=================================================================== ---- dev.wily.orig/content/content_common.gypi -+++ dev.wily/content/content_common.gypi -@@ -856,7 +856,7 @@ - }, - ], - }], -- ['chromeos==1', { -+ ['chromeos==1 or desktop_linux==1', { - 'sources': [ - 'common/gpu/media/accelerated_video_decoder.h', - 'common/gpu/media/h264_decoder.cc', -@@ -908,7 +908,7 @@ - 'common/gpu/media/tegra_v4l2_device.h', - ], - }], -- ['target_arch != "arm" and chromeos == 1', { -+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', { - 'dependencies': [ - '../media/media.gyp:media', - '../third_party/libyuv/libyuv.gyp:libyuv', -Index: dev.wily/content/content_gpu.gypi -=================================================================== ---- dev.wily.orig/content/content_gpu.gypi -+++ dev.wily/content/content_gpu.gypi -@@ -36,7 +36,7 @@ +--- + content/content_gpu.gypi | 2 +- + content/public/common/content_switches.cc | 2 ++ + content/public/common/content_switches.h | 3 +++ + gpu/command_buffer/service/gpu_preferences.h | 2 +- + gpu/config/software_rendering_list_json.cc | 11 ----------- + media/gpu/BUILD.gn | 10 +++++----- + media/gpu/gpu_video_decode_accelerator_factory_impl.cc | 12 ++++++------ + media/gpu/gpu_video_decode_accelerator_factory_impl.h | 4 ++-- + media/gpu/ipc/service/BUILD.gn | 2 +- + media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc | 6 +++--- + media/gpu/ipc/service/gpu_video_decode_accelerator.cc | 4 ++-- + media/gpu/ipc/service/gpu_video_encode_accelerator.cc | 10 +++++----- + media/gpu/ipc/service/gpu_video_encode_accelerator.h | 4 ++-- + media/gpu/jpeg_decode_accelerator_unittest.cc | 8 ++++---- + media/gpu/video_decode_accelerator_unittest.cc | 4 ++-- + media/gpu/video_encode_accelerator_unittest.cc | 10 +++++----- + media/media.gyp | 12 ++++++------ + media/media_gpu.gypi | 8 ++++---- + 18 files changed, 54 insertions(+), 60 deletions(-) + +diff --git a/content/content_gpu.gypi b/content/content_gpu.gypi +index f2a21d9..f9df0e6 100644 +--- a/content/content_gpu.gypi ++++ b/content/content_gpu.gypi +@@ -49,7 +49,7 @@ ], }, }], @@ -92,24 +37,11 @@ Index: dev.wily/content/content_gpu.gypi 'include_dirs': [ '<(DEPTH)/third_party/libva', ], -Index: dev.wily/content/content_tests.gypi -=================================================================== ---- dev.wily.orig/content/content_tests.gypi -+++ dev.wily/content/content_tests.gypi -@@ -1719,7 +1719,7 @@ - }, - ] - }], -- ['chromeos==1 and target_arch != "arm"', { -+ ['(chromeos==1 or desktop_linux==1) and target_arch != "arm"', { - 'targets': [ - { - 'target_name': 'vaapi_jpeg_decoder_unittest', -Index: dev.wily/content/public/common/content_switches.cc -=================================================================== ---- dev.wily.orig/content/public/common/content_switches.cc -+++ dev.wily/content/public/common/content_switches.cc -@@ -926,7 +926,9 @@ const char kDisableWebAudio[] +diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc +index 244e371..48cdffb 100644 +--- a/content/public/common/content_switches.cc ++++ b/content/public/common/content_switches.cc +@@ -970,7 +970,9 @@ const char kDisableAudioSupportForDesktopShare[] = #if defined(OS_CHROMEOS) // Disables panel fitting (used for mirror mode). const char kDisablePanelFitting[] = "disable-panel-fitting"; @@ -119,46 +51,38 @@ Index: dev.wily/content/public/common/content_switches.cc // Disables VA-API accelerated video encode. const char kDisableVaapiAcceleratedVideoEncode[] = "disable-vaapi-accelerated-video-encode"; -Index: dev.wily/content/public/common/content_switches.h -=================================================================== ---- dev.wily.orig/content/public/common/content_switches.h -+++ dev.wily/content/public/common/content_switches.h -@@ -272,6 +272,8 @@ CONTENT_EXPORT extern const char kDisabl +diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h +index be5cc9e..9585fb6 100644 +--- a/content/public/common/content_switches.h ++++ b/content/public/common/content_switches.h +@@ -278,6 +278,9 @@ CONTENT_EXPORT extern const char kEnableOSKOverscroll[]; #if defined(OS_CHROMEOS) CONTENT_EXPORT extern const char kDisablePanelFitting[]; +#endif ++ +#if defined(OS_CHROMEOS) || defined(OS_LINUX) CONTENT_EXPORT extern const char kDisableVaapiAcceleratedVideoEncode[]; #endif -Index: dev.wily/media/media.gyp -=================================================================== ---- dev.wily.orig/media/media.gyp -+++ dev.wily/media/media.gyp -@@ -756,7 +756,7 @@ - ], - }], - # For VaapiVideoEncodeAccelerator. -- ['target_arch != "arm" and chromeos == 1', { -+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', { - 'sources': [ - 'filters/h264_bitstream_buffer.cc', - 'filters/h264_bitstream_buffer.h', -@@ -1359,7 +1359,7 @@ - 'player_android', - ], - }], -- ['target_arch != "arm" and chromeos == 1 and use_x11 == 1', { -+ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1) and use_x11 == 1', { - 'sources': [ - 'filters/h264_bitstream_buffer_unittest.cc', - ], -Index: dev.wily/gpu/config/software_rendering_list_json.cc -=================================================================== ---- dev.wily.orig/gpu/config/software_rendering_list_json.cc -+++ dev.wily/gpu/config/software_rendering_list_json.cc -@@ -481,17 +481,6 @@ const char kSoftwareRenderingListJson[] +diff --git a/gpu/command_buffer/service/gpu_preferences.h b/gpu/command_buffer/service/gpu_preferences.h +index 6fe15b0..ee31d3e 100644 +--- a/gpu/command_buffer/service/gpu_preferences.h ++++ b/gpu/command_buffer/service/gpu_preferences.h +@@ -37,7 +37,7 @@ struct GPU_EXPORT GpuPreferences { + // Disables hardware acceleration of video decode, where available. + bool disable_accelerated_video_decode = false; + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + // Disables VA-API accelerated video encode. + bool disable_vaapi_accelerated_video_encode = false; + #endif +diff --git a/gpu/config/software_rendering_list_json.cc b/gpu/config/software_rendering_list_json.cc +index 9adc5f0..abf7bc5 100644 +--- a/gpu/config/software_rendering_list_json.cc ++++ b/gpu/config/software_rendering_list_json.cc +@@ -431,17 +431,6 @@ ] }, { @@ -173,318 +97,458 @@ Index: dev.wily/gpu/config/software_rendering_list_json.cc - ] - }, - { - "id": 49, - "description": "NVidia GeForce GT 650M can cause the system to hang with flash 3D", - "cr_bugs": [140175], -@@ -1042,6 +1042,11 @@ - }, - { - "os": { -+ "type": "linux" -+ } -+ }, -+ { -+ "os": { - "type": "android" - }, - "gl_renderer": ".*Google.*" -Index: dev.wily/content/common/sandbox_linux/bpf_gpu_policy_linux.cc -=================================================================== ---- dev.wily.orig/content/common/sandbox_linux/bpf_gpu_policy_linux.cc -+++ dev.wily/content/common/sandbox_linux/bpf_gpu_policy_linux.cc -@@ -21,6 +21,8 @@ - #include "base/logging.h" - #include "base/memory/scoped_ptr.h" - #include "build/build_config.h" -+// Auto-generated for dlopen libva libraries -+#include "content/common/gpu/media/va_stubs.h" - #include "content/common/sandbox_linux/sandbox_bpf_base_policy_linux.h" - #include "content/common/sandbox_linux/sandbox_seccomp_bpf_linux.h" - #include "content/common/set_process_title.h" -@@ -31,6 +33,8 @@ - #include "sandbox/linux/syscall_broker/broker_file_permission.h" - #include "sandbox/linux/syscall_broker/broker_process.h" - #include "sandbox/linux/system_headers/linux_syscalls.h" -+#include "third_party/libva/va/va.h" -+#include "third_party/libva/va/va_x11.h" - - using sandbox::arch_seccomp_data; - using sandbox::bpf_dsl::Allow; -@@ -40,6 +44,11 @@ using sandbox::syscall_broker::BrokerFil - using sandbox::syscall_broker::BrokerProcess; - using sandbox::SyscallSets; - -+using content_common_gpu_media::kModuleVa; -+using content_common_gpu_media::kModuleVa_x11; -+using content_common_gpu_media::InitializeStubs; -+using content_common_gpu_media::StubPathMap; -+ - namespace content { - - namespace { -@@ -94,7 +103,7 @@ inline bool UseLibV4L2() { - - bool IsAcceleratedVaapiVideoEncodeEnabled() { - bool accelerated_encode_enabled = false; --#if defined(OS_CHROMEOS) -+#if defined(OS_CHROMEOS) || defined(OS_LINUX) - const base::CommandLine& command_line = - *base::CommandLine::ForCurrentProcess(); - accelerated_encode_enabled = -@@ -299,27 +299,41 @@ - // inside the sandbox, so preload them now. - if (IsAcceleratedVaapiVideoEncodeEnabled() || - IsAcceleratedVideoDecodeEnabled()) { -- const char* I965DrvVideoPath = NULL; -- const char* I965HybridDrvVideoPath = NULL; -+ VLOG(1) << "Attempting to enable hardware video acceleration."; -+ StubPathMap paths; -+ paths[kModuleVa].push_back("libva.so.1"); -+ paths[kModuleVa_x11].push_back("libva-x11.so.1"); -+ if (!InitializeStubs(paths)) { -+ VLOG(1) << "Failed to initialize stubs"; -+ return false; -+ } - -- if (IsArchitectureX86_64()) { -- I965DrvVideoPath = "/usr/lib64/va/drivers/i965_drv_video.so"; -- I965HybridDrvVideoPath = "/usr/lib64/va/drivers/hybrid_drv_video.so"; -- } else if (IsArchitectureI386()) { -- I965DrvVideoPath = "/usr/lib/va/drivers/i965_drv_video.so"; -+ // libva drivers won't get loaded even above two libraries get dlopened. -+ // Thus, libva calls will fail after post sandbox stage. -+ // -+ // To get the va driver loaded before sandboxing, upstream simply dlopen -+ // the hard-coded va driver path because ChromeOS is the only platform -+ // that Google want to support libva. -+ // -+ // While generic linux distros ship va driver as anywhere they want. -+ // Fortunately, the va driver will be loadded when vaInitialize() get -+ // called. -+ // So the following code is to call vaInitialize() before sandboxing. -+ Display* x_display = XOpenDisplay(NULL); -+ VADisplay va_display = vaGetDisplay(x_display); -+ if (!vaDisplayIsValid(va_display)) { -+ VLOG(1) << "Failed to call vaGetDisplay()"; -+ return false; - } - -- dlopen(I965DrvVideoPath, RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); -- if (I965HybridDrvVideoPath) -- dlopen(I965HybridDrvVideoPath, RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); -- dlopen("libva.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); --#if defined(USE_OZONE) -- dlopen("libva-drm.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); --#elif defined(USE_X11) -- dlopen("libva-x11.so.1", RTLD_NOW|RTLD_GLOBAL|RTLD_NODELETE); --#endif -- } -- } -+ int major_version, minor_version; -+ if (vaInitialize(va_display, &major_version, &minor_version) -+ != VA_STATUS_SUCCESS) { -+ VLOG(1) << "Failed to call vaInitialize()"; -+ return false; -+ } -+ } // end of IsAcceleratedVaapiVideoEncodeEnabled() || IsAcceleratedVideoDecodeEnabled() -+ } // end of IsArchitectureX86_64() || IsArchitectureI386() - - return true; + "id": 50, + "description": "Disable VMware software renderer on older Mesa", + "cr_bugs": [145531, 332596, 571899], +diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn +index ba02e8a..c31bae2 100644 +--- a/media/gpu/BUILD.gn ++++ b/media/gpu/BUILD.gn +@@ -12,7 +12,7 @@ if (is_mac) { + import("//build/config/mac/mac_sdk.gni") } -Index: dev.wily/chrome/browser/about_flags.cc -=================================================================== ---- dev.wily.orig/chrome/browser/about_flags.cc -+++ dev.wily/chrome/browser/about_flags.cc -@@ -854,7 +854,7 @@ - "disable-accelerated-video-decode", - IDS_FLAGS_ACCELERATED_VIDEO_DECODE_NAME, - IDS_FLAGS_ACCELERATED_VIDEO_DECODE_DESCRIPTION, -- kOsMac | kOsWin | kOsCrOS, -+ kOsAll, - SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedVideoDecode), - }, - #if defined(USE_ASH) -Index: dev.wily/content/common/gpu/media/vaapi_wrapper.cc -=================================================================== ---- dev.wily.orig/content/common/gpu/media/vaapi_wrapper.cc -+++ dev.wily/content/common/gpu/media/vaapi_wrapper.cc -@@ -146,7 +146,7 @@ scoped_ptr VaapiWrapper::C - VAProfile va_profile, - const base::Closure& report_error_to_uma_cb) { - if (!profile_infos_.Get().IsProfileSupported(mode, va_profile)) { -- DVLOG(1) << "Unsupported va_profile: " << va_profile; -+ VLOG(1) << "Unsupported va_profile: " << va_profile; - return nullptr; - } -@@ -305,15 +305,17 @@ VaapiWrapper::GetSupportedProfileInfosFo - bool VaapiWrapper::VaInitialize(const base::Closure& report_error_to_uma_cb) { - static bool vaapi_functions_initialized = PostSandboxInitialization(); - if (!vaapi_functions_initialized) { -- bool running_on_chromeos = false; --#if defined(OS_CHROMEOS) -+ bool error_level_logging = false; -+#if defined(OS_LINUX) -+ error_level_logging = true; -+#elif defined(OS_CHROMEOS) - // When chrome runs on linux with chromeos=1, do not log error message - // without VAAPI libraries. -- running_on_chromeos = base::SysInfo::IsRunningOnChromeOS(); -+ error_level_logging = base::SysInfo::IsRunningOnChromeOS(); - #endif - static const char kErrorMsg[] = "Failed to initialize VAAPI libs"; -- if (running_on_chromeos) -- LOG(ERROR) << kErrorMsg; -+ if (error_level_logging) -+ VLOG(1) << kErrorMsg; - else - DVLOG(1) << kErrorMsg; - return false; -@@ -384,7 +386,7 @@ bool VaapiWrapper::IsEntrypointSupported - if (std::find(supported_entrypoints.begin(), - supported_entrypoints.end(), - entrypoint) == supported_entrypoints.end()) { -- DVLOG(1) << "Unsupported entrypoint"; -+ VLOG(1) << "Unsupported entrypoint"; - return false; +-if (is_chromeos && current_cpu != "arm") { ++if ((is_chromeos || is_linux) && current_cpu != "arm") { + action("libva_generate_stubs") { + extra_header = "va_stub_header.fragment" + +@@ -54,7 +54,7 @@ if (is_chromeos && current_cpu != "arm") { } - return true; -@@ -408,8 +410,8 @@ bool VaapiWrapper::AreAttribsSupported_L - if (attribs[i].type != required_attribs[i].type || - (attribs[i].value & required_attribs[i].value) != - required_attribs[i].value) { -- DVLOG(1) << "Unsupported value " << required_attribs[i].value -- << " for attribute type " << required_attribs[i].type; -+ VLOG(1) << "Unsupported value " << required_attribs[i].value -+ << " for attribute type " << required_attribs[i].type; - return false; + } + +-if (is_chromeos && use_v4lplugin) { ++if ((is_chromeos || is_linux) && use_v4lplugin) { + action("libv4l2_generate_stubs") { + extra_header = "v4l2_stub_header.fragment" + +@@ -229,7 +229,7 @@ component("gpu") { } } -@@ -427,46 +427,7 @@ - VAEntrypoint entrypoint, - std::vector& required_attribs, - gfx::Size* resolution) { -- va_lock_->AssertAcquired(); -- VAConfigID va_config_id; -- VAStatus va_res = vaCreateConfig( -- va_display_, -- va_profile, -- entrypoint, -- &required_attribs[0], -- required_attribs.size(), -- &va_config_id); -- VA_SUCCESS_OR_RETURN(va_res, "vaCreateConfig failed", false); -- -- // Calls vaQuerySurfaceAttributes twice. The first time is to get the number -- // of attributes to prepare the space and the second time is to get all -- // attributes. -- unsigned int num_attribs; -- va_res = vaQuerySurfaceAttributes( -- va_display_, va_config_id, nullptr, &num_attribs); -- VA_SUCCESS_OR_RETURN(va_res, "vaQuerySurfaceAttributes failed", false); -- if (!num_attribs) -- return false; -- -- std::vector attrib_list( -- base::checked_cast(num_attribs)); -- -- va_res = vaQuerySurfaceAttributes( -- va_display_, va_config_id, &attrib_list[0], &num_attribs); -- VA_SUCCESS_OR_RETURN(va_res, "vaQuerySurfaceAttributes failed", false); -- -- resolution->SetSize(0, 0); -- for (const auto& attrib : attrib_list) { -- if (attrib.type == VASurfaceAttribMaxWidth) -- resolution->set_width(attrib.value.value.i); -- else if (attrib.type == VASurfaceAttribMaxHeight) -- resolution->set_height(attrib.value.value.i); -- } -- if (resolution->IsEmpty()) { -- LOG(ERROR) << "Codec resolution " << resolution->ToString() -- << " cannot be zero."; -- return false; -- } -+ resolution->SetSize(1920, 1088); + +- if (is_chromeos) { ++ if (is_chromeos || is_linux) { + sources += [ + "accelerated_video_decoder.h", + "h264_decoder.cc", +@@ -356,7 +356,7 @@ component("gpu") { + } + } + +-if (is_win || is_android || is_chromeos) { ++if (is_win || is_android || is_chromeos || is_linux) { + test("video_decode_accelerator_unittest") { + sources = [ + "video_accelerator_unittest_helpers.h", +@@ -425,7 +425,7 @@ if (is_win || is_android || is_chromeos) { + } + } + +-if (is_chromeos || is_mac) { ++if (is_chromeos || is_linux || is_mac) { + test("video_encode_accelerator_unittest") { + deps = [ + "//base", +diff --git a/media/gpu/gpu_video_decode_accelerator_factory_impl.cc b/media/gpu/gpu_video_decode_accelerator_factory_impl.cc +index 0a1a883..add2a8e 100644 +--- a/media/gpu/gpu_video_decode_accelerator_factory_impl.cc ++++ b/media/gpu/gpu_video_decode_accelerator_factory_impl.cc +@@ -14,7 +14,7 @@ + #include "media/gpu/dxva_video_decode_accelerator_win.h" + #elif defined(OS_MACOSX) + #include "media/gpu/vt_video_decode_accelerator_mac.h" +-#elif defined(OS_CHROMEOS) ++#elif defined(OS_CHROMEOS) || defined(OS_LINUX) + #if defined(USE_V4L2_CODEC) + #include "media/gpu/v4l2_device.h" + #include "media/gpu/v4l2_slice_video_decode_accelerator.h" +@@ -79,7 +79,7 @@ + #if defined(OS_WIN) + capabilities.supported_profiles = + DXVAVideoDecodeAccelerator::GetSupportedProfiles(); +-#elif defined(OS_CHROMEOS) ++#elif defined(OS_CHROMEOS) || defined(OS_LINUX) + VideoDecodeAccelerator::SupportedProfiles vda_profiles; + #if defined(USE_V4L2_CODEC) + vda_profiles = V4L2VideoDecodeAccelerator::GetSupportedProfiles(); +@@ -126,11 +126,11 @@ GpuVideoDecodeAcceleratorFactoryImpl::CreateVDA( + #if defined(OS_WIN) + &GpuVideoDecodeAcceleratorFactoryImpl::CreateDXVAVDA, + #endif +-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC) + &GpuVideoDecodeAcceleratorFactoryImpl::CreateV4L2VDA, + &GpuVideoDecodeAcceleratorFactoryImpl::CreateV4L2SVDA, + #endif +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + &GpuVideoDecodeAcceleratorFactoryImpl::CreateVaapiVDA, + #endif + #if defined(OS_MACOSX) +@@ -169,7 +169,7 @@ + } + #endif + +-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC) + std::unique_ptr + GpuVideoDecodeAcceleratorFactoryImpl::CreateV4L2VDA( + const gpu::GpuDriverBugWorkarounds& workarounds, +@@ -199,7 +199,7 @@ + } + #endif + +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + std::unique_ptr + GpuVideoDecodeAcceleratorFactoryImpl::CreateVaapiVDA( + const gpu::GpuDriverBugWorkarounds& workarounds, +diff --git a/media/gpu/gpu_video_decode_accelerator_factory_impl.h b/media/gpu/gpu_video_decode_accelerator_factory_impl.h +index a005a1c..5974972 100644 +--- a/media/gpu/gpu_video_decode_accelerator_factory_impl.h ++++ b/media/gpu/gpu_video_decode_accelerator_factory_impl.h +@@ -93,7 +93,7 @@ + const gpu::GpuDriverBugWorkarounds& workarounds, + const gpu::GpuPreferences& gpu_preferences) const; + #endif +-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC) + std::unique_ptr CreateV4L2VDA( + const gpu::GpuDriverBugWorkarounds& workarounds, + const gpu::GpuPreferences& gpu_preferences) const; +@@ -101,7 +101,7 @@ + const gpu::GpuDriverBugWorkarounds& workarounds, + const gpu::GpuPreferences& gpu_preferences) const; + #endif +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + std::unique_ptr CreateVaapiVDA( + const gpu::GpuDriverBugWorkarounds& workarounds, + const gpu::GpuPreferences& gpu_preferences) const; +diff --git a/media/gpu/ipc/service/BUILD.gn b/media/gpu/ipc/service/BUILD.gn +index 16d6922..78a4b94 100644 +--- a/media/gpu/ipc/service/BUILD.gn ++++ b/media/gpu/ipc/service/BUILD.gn +@@ -37,7 +37,7 @@ source_set("service") { + "//third_party/mesa:mesa_headers", + ] + +- if (is_chromeos && current_cpu != "arm") { ++ if ((is_chromeos || is_linux) && current_cpu != "arm") { + configs += [ "//third_party/libva:libva_config" ] + } + +diff --git a/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc b/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc +index bffc7fb..09dd0ef 100644 +--- a/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc ++++ b/media/gpu/ipc/service/gpu_jpeg_decode_accelerator.cc +@@ -25,7 +25,7 @@ + #include "media/gpu/ipc/common/media_messages.h" + #include "ui/gfx/geometry/size.h" + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + #if defined(ARCH_CPU_X86_FAMILY) + #include "media/gpu/vaapi_jpeg_decode_accelerator.h" + #endif +@@ -381,7 +381,7 @@ + std::unique_ptr GpuJpegDecodeAccelerator::CreateV4L2JDA( + const scoped_refptr& io_task_runner) { + std::unique_ptr decoder; +-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC) + scoped_refptr device = + V4L2Device::Create(V4L2Device::kJpegDecoder); + if (device) +@@ -394,7 +394,7 @@ + std::unique_ptr GpuJpegDecodeAccelerator::CreateVaapiJDA( + const scoped_refptr& io_task_runner) { + std::unique_ptr decoder; +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + decoder.reset(new VaapiJpegDecodeAccelerator(io_task_runner)); + #endif + return decoder; +diff --git a/media/gpu/ipc/service/gpu_video_decode_accelerator.cc b/media/gpu/ipc/service/gpu_video_decode_accelerator.cc +index 44f8a12..014a752 100644 +--- a/media/gpu/ipc/service/gpu_video_decode_accelerator.cc ++++ b/media/gpu/ipc/service/gpu_video_decode_accelerator.cc +@@ -58,7 +58,7 @@ static bool MakeDecoderContextCurrent( return true; } -Index: dev.wily/content/common/gpu/media/vaapi_video_decode_accelerator.cc -=================================================================== ---- dev.wily.orig/content/common/gpu/media/vaapi_video_decode_accelerator.cc -+++ dev.wily/content/common/gpu/media/vaapi_video_decode_accelerator.cc -@@ -269,17 +269,17 @@ bool VaapiVideoDecodeAccelerator::Initia - - base::AutoLock auto_lock(lock_); - DCHECK_EQ(state_, kUninitialized); -- DVLOG(2) << "Initializing VAVDA, profile: " << profile; -+ VLOG(1) << "Initializing VAVDA, profile: " << profile; - - #if defined(USE_X11) - if (gfx::GetGLImplementation() != gfx::kGLImplementationDesktopGL) { -- DVLOG(1) << "HW video decode acceleration not available without " -+ VLOG(1) << "HW video decode acceleration not available without " - "DesktopGL (GLX)."; - return false; - } - #elif defined(USE_OZONE) - if (gfx::GetGLImplementation() != gfx::kGLImplementationEGLGLES2) { -- DVLOG(1) << "HW video decode acceleration not available without " -+ VLOG(1) << "HW video decode acceleration not available without " - << "EGLGLES2."; - return false; - } -@@ -289,7 +289,7 @@ bool VaapiVideoDecodeAccelerator::Initia - VaapiWrapper::kDecode, profile, base::Bind(&ReportToUMA, VAAPI_ERROR)); - - if (!vaapi_wrapper_.get()) { -- DVLOG(1) << "Failed initializing VAAPI for profile " << profile; -+ VLOG(1) << "Failed initializing VAAPI for profile " << profile; - return false; - } - -@@ -302,7 +302,7 @@ bool VaapiVideoDecodeAccelerator::Initia - vp8_accelerator_.reset(new VaapiVP8Accelerator(this, vaapi_wrapper_.get())); - decoder_.reset(new VP8Decoder(vp8_accelerator_.get())); - } else { -- DLOG(ERROR) << "Unsupported profile " << profile; -+ VLOG(1) << "Unsupported profile " << profile; - return false; - } - -Index: dev.wily/content/gpu/gpu_main.cc -=================================================================== ---- dev.wily.orig/content/gpu/gpu_main.cc -+++ dev.wily/content/gpu/gpu_main.cc -@@ -66,7 +66,7 @@ - #include "content/common/sandbox_mac.h" +-#if (defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX) ++#if ((defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX) + static bool BindImage(const base::WeakPtr& stub, + uint32_t client_texture_id, + uint32_t texture_target, +@@ -170,7 +170,7 @@ GpuVideoDecodeAccelerator::GpuVideoDecodeAccelerator( + get_gl_context_cb_ = base::Bind(&GetGLContext, stub_->AsWeakPtr()); + make_context_current_cb_ = + base::Bind(&MakeDecoderContextCurrent, stub_->AsWeakPtr()); +-#if (defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX) ++#if ((defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX) + bind_image_cb_ = base::Bind(&BindImage, stub_->AsWeakPtr()); #endif + get_gles2_decoder_cb_ = base::Bind(&GetGLES2Decoder, stub_->AsWeakPtr()); +diff --git a/media/gpu/ipc/service/gpu_video_encode_accelerator.cc b/media/gpu/ipc/service/gpu_video_encode_accelerator.cc +index 62a8539..6367661 100644 +--- a/media/gpu/ipc/service/gpu_video_encode_accelerator.cc ++++ b/media/gpu/ipc/service/gpu_video_encode_accelerator.cc +@@ -24,7 +24,7 @@ + #include "media/gpu/gpu_video_accelerator_util.h" + #include "media/gpu/ipc/common/media_messages.h" +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + #if defined(USE_V4L2_CODEC) + #include "media/gpu/v4l2_video_encode_accelerator.h" + #endif +@@ -196,10 +196,10 @@ std::vector + GpuVideoEncodeAccelerator::CreateVEAFps( + const gpu::GpuPreferences& gpu_preferences) { + std::vector create_vea_fps; +-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC) + create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateV4L2VEA); + #endif -#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) +#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) - #include "content/common/gpu/media/vaapi_wrapper.h" + if (!gpu_preferences.disable_vaapi_accelerated_video_encode) + create_vea_fps.push_back(&GpuVideoEncodeAccelerator::CreateVaapiVEA); #endif - -@@ -227,7 +227,7 @@ int GpuMain(const MainFunctionParams& pa - GetGpuInfoFromCommandLine(gpu_info, command_line); - gpu_info.in_process_gpu = false; - --#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) -+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) - VaapiWrapper::PreSandboxInitialization(); - #endif - -Index: dev.wily/content/common/gpu/client/command_buffer_proxy_impl.cc -=================================================================== ---- dev.wily.orig/content/common/gpu/client/command_buffer_proxy_impl.cc -+++ dev.wily/content/common/gpu/client/command_buffer_proxy_impl.cc -@@ -561,8 +561,10 @@ bool CommandBufferProxyImpl::ProduceFron - - scoped_ptr - CommandBufferProxyImpl::CreateVideoDecoder() { -+ TRACE_EVENT0("gpu", "CommandBufferProxyImpl::CreateVideoDecoder"); - if (!channel_) - return scoped_ptr(); -+ VLOG(1) << "About to create GpuVideoDecodeAcceleratorHost."; - return scoped_ptr( - new GpuVideoDecodeAcceleratorHost(channel_, this)); +@@ -213,7 +213,7 @@ GpuVideoEncodeAccelerator::CreateVEAFps( + return create_vea_fps; } + +-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC) + // static + std::unique_ptr + GpuVideoEncodeAccelerator::CreateV4L2VEA() { +@@ -225,7 +225,7 @@ GpuVideoEncodeAccelerator::CreateV4L2VEA() { + } + #endif + +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + // static + std::unique_ptr + GpuVideoEncodeAccelerator::CreateVaapiVEA() { +diff --git a/media/gpu/ipc/service/gpu_video_encode_accelerator.h b/media/gpu/ipc/service/gpu_video_encode_accelerator.h +index cfe44d2..29da8b8 100644 +--- a/media/gpu/ipc/service/gpu_video_encode_accelerator.h ++++ b/media/gpu/ipc/service/gpu_video_encode_accelerator.h +@@ -80,10 +80,10 @@ + // platform. + static std::vector CreateVEAFps( + const gpu::GpuPreferences& gpu_preferences); +-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC) + static std::unique_ptr CreateV4L2VEA(); + #endif +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + static std::unique_ptr CreateVaapiVEA(); + #endif + #if defined(OS_ANDROID) && defined(ENABLE_WEBRTC) +diff --git a/media/gpu/jpeg_decode_accelerator_unittest.cc b/media/gpu/jpeg_decode_accelerator_unittest.cc +index 5c68851..796ca54 100644 +--- a/media/gpu/jpeg_decode_accelerator_unittest.cc ++++ b/media/gpu/jpeg_decode_accelerator_unittest.cc +@@ -31,7 +31,7 @@ + #include "third_party/libyuv/include/libyuv.h" + #include "ui/gfx/codec/jpeg_codec.h" + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + #if defined(USE_V4L2_CODEC) + #include "media/gpu/v4l2_device.h" + #include "media/gpu/v4l2_jpeg_decode_accelerator.h" +@@ -135,10 +135,10 @@ JpegClient::JpegClient(const std::vector& test_image_files, + JpegClient::~JpegClient() {} + + void JpegClient::CreateJpegDecoder() { +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + decoder_.reset( + new VaapiJpegDecodeAccelerator(base::ThreadTaskRunnerHandle::Get())); +-#elif defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC) ++#elif (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC) + scoped_refptr device = + V4L2Device::Create(V4L2Device::kJpegDecoder); + if (!device.get()) { +@@ -575,7 +575,7 @@ int main(int argc, char** argv) { + continue; + LOG(FATAL) << "Unexpected switch: " << it->first << ":" << it->second; + } +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + media::VaapiWrapper::PreSandboxInitialization(); + #endif + +diff --git a/media/gpu/video_decode_accelerator_unittest.cc b/media/gpu/video_decode_accelerator_unittest.cc +index f9f2711..936cd6d 100644 +--- a/media/gpu/video_decode_accelerator_unittest.cc ++++ b/media/gpu/video_decode_accelerator_unittest.cc +@@ -61,7 +61,7 @@ + #if defined(OS_WIN) + #include "base/win/windows_version.h" + #include "media/gpu/dxva_video_decode_accelerator_win.h" +-#elif defined(OS_CHROMEOS) ++#elif defined(OS_CHROMEOS) || defined(OS_LINUX) + #if defined(USE_V4L2_CODEC) + #include "media/gpu/v4l2_device.h" + #include "media/gpu/v4l2_slice_video_decode_accelerator.h" +@@ -1732,7 +1732,7 @@ int main(int argc, char** argv) { + ui::OzonePlatform::InitializeForUI(); + #endif + +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + media::VaapiWrapper::PreSandboxInitialization(); + #endif + +diff --git a/media/gpu/video_encode_accelerator_unittest.cc b/media/gpu/video_encode_accelerator_unittest.cc +index b8b4dd9..07ddff5 100644 +--- a/media/gpu/video_encode_accelerator_unittest.cc ++++ b/media/gpu/video_encode_accelerator_unittest.cc +@@ -48,7 +48,7 @@ + #include "media/video/video_encode_accelerator.h" + #include "testing/gtest/include/gtest/gtest.h" + +-#if defined(OS_CHROMEOS) ++#if defined(OS_CHROMEOS) || defined(OS_LINUX) + #if defined(ARCH_CPU_ARMEL) || (defined(USE_OZONE) && defined(USE_V4L2_CODEC)) + #include "media/gpu/v4l2_video_encode_accelerator.h" + #endif +@@ -1063,8 +1063,8 @@ + + std::unique_ptr VEAClient::CreateV4L2VEA() { + std::unique_ptr encoder; +-#if defined(OS_CHROMEOS) && (defined(ARCH_CPU_ARMEL) || \ +- (defined(USE_OZONE) && defined(USE_V4L2_CODEC))) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && (defined(ARCH_CPU_ARMEL) || \ ++ (defined(USE_OZONE) && defined(USE_V4L2_CODEC))) + scoped_refptr device = V4L2Device::Create(V4L2Device::kEncoder); + if (device) + encoder.reset(new V4L2VideoEncodeAccelerator(device)); +@@ -1074,7 +1074,7 @@ + + std::unique_ptr VEAClient::CreateVaapiVEA() { + std::unique_ptr encoder; +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + encoder.reset(new VaapiVideoEncodeAccelerator()); + #endif + return encoder; +@@ -1812,7 +1812,7 @@ int main(int argc, char** argv) { + LOG(FATAL) << "--measure_latency requires --run_at_fps enabled to work."; + } + +-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY) ++#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY) + media::VaapiWrapper::PreSandboxInitialization(); + #endif + +diff --git a/media/media.gyp b/media/media.gyp +index a8a370e..9a92e5f 100644 +--- a/media/media.gyp ++++ b/media/media.gyp +@@ -752,7 +752,7 @@ + ], + }], + # For VaapiVideoEncodeAccelerator. +- ['target_arch != "arm" and chromeos == 1', { ++ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1)', { + 'sources': [ + 'filters/h264_bitstream_buffer.cc', + 'filters/h264_bitstream_buffer.h', +@@ -1330,7 +1330,7 @@ + 'cdm/cdm_adapter_unittest.cc', + ], + }], +- ['target_arch != "arm" and chromeos == 1 and use_x11 == 1', { ++ ['target_arch != "arm" and (chromeos == 1 or desktop_linux == 1) and use_x11 == 1', { + 'sources': [ + 'filters/h264_bitstream_buffer_unittest.cc', + ], +@@ -2098,7 +2098,7 @@ + }, + ], + }], +- ['chromeos==1', { ++ ['chromeos==1 or desktop_linux==1', { + 'targets': [ + { + 'target_name': 'jpeg_decode_accelerator_unittest', +@@ -2125,7 +2125,7 @@ + } + ] + }], +- ['chromeos==1 or OS=="mac"', { ++ ['chromeos==1 or desktop_linux==1 or OS=="mac"', { + 'targets': [ + { + 'target_name': 'video_encode_accelerator_unittest', +@@ -2171,7 +2171,7 @@ + } + ] + }], +- ['chromeos==1 or OS=="win" or OS=="android"', { ++ ['chromeos==1 or desktop_linux==1 or OS=="win" or OS=="android"', { + 'targets': [ + { + # GN: //media/gpu:video_decode_accelerator_unittest +@@ -2264,7 +2264,7 @@ + ], + }], + +- ['chromeos==1 and target_arch != "arm"', { ++ ['(chromeos==1 or desktop_linux==1) and target_arch != "arm"', { + 'targets': [ + { + 'target_name': 'vaapi_jpeg_decoder_unittest', +diff --git a/media/media_gpu.gypi b/media/media_gpu.gypi +index 70c1398..810ac32 100644 +--- a/media/media_gpu.gypi ++++ b/media/media_gpu.gypi +@@ -125,7 +125,7 @@ + 'gpu/android_video_encode_accelerator.h', + ], + }], +- ['use_v4lplugin==1 and chromeos==1', { ++ ['use_v4lplugin==1 and (chromeos==1 or desktop_linux==1)', { + 'direct_dependent_settings': { + 'defines': [ + 'USE_LIBV4L2' +@@ -174,7 +174,7 @@ + }, + ], + }], +- ['chromeos==1', { ++ ['chromeos==1 or desktop_linux==1', { + 'sources': [ + 'gpu/accelerated_video_decoder.h', + 'gpu/h264_decoder.cc', +@@ -191,7 +191,7 @@ + 'gpu/vp9_picture.h', + ], + }], +- ['chromeos==1 and use_v4l2_codec==1', { ++ ['(chromeos==1 or desktop_linux==1) and use_v4l2_codec==1', { + 'direct_dependent_settings': { + 'defines': [ + 'USE_V4L2_CODEC' +@@ -230,7 +230,7 @@ + 'gpu/tegra_v4l2_device.h', + ], + }], +- ['target_arch != "arm" and chromeos == 1', { ++ ['target_arch != "arm" and (chromeos == 1 or desktop_linux==1)', { + 'dependencies': [ + '../media/media.gyp:media', + '../third_party/libyuv/libyuv.gyp:libyuv', +-- +2.9.3 +