chromium-browser-stable-sla.../enable_vaapi_on_linux.diff

385 lines
17 KiB
Diff

diff --git a/content/common/gpu/media/gpu_jpeg_decode_accelerator.cc b/content/common/gpu/media/gpu_jpeg_decode_accelerator.cc
index de0f587..2d899ad 100644
--- a/content/common/gpu/media/gpu_jpeg_decode_accelerator.cc
+++ b/content/common/gpu/media/gpu_jpeg_decode_accelerator.cc
@@ -20,7 +20,7 @@
#include "media/filters/jpeg_parser.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 "content/common/gpu/media/vaapi_jpeg_decode_accelerator.h"
#endif
@@ -402,7 +402,7 @@ scoped_ptr<media::JpegDecodeAccelerator>
GpuJpegDecodeAccelerator::CreateV4L2JDA(
const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) {
scoped_ptr<media::JpegDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device = V4L2Device::Create(
V4L2Device::kJpegDecoder);
if (device)
@@ -416,7 +416,7 @@ scoped_ptr<media::JpegDecodeAccelerator>
GpuJpegDecodeAccelerator::CreateVaapiJDA(
const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner) {
scoped_ptr<media::JpegDecodeAccelerator> 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.Pass();
diff --git a/content/common/gpu/media/gpu_video_decode_accelerator.cc b/content/common/gpu/media/gpu_video_decode_accelerator.cc
index ed4d179..446d3b9 100644
--- a/content/common/gpu/media/gpu_video_decode_accelerator.cc
+++ b/content/common/gpu/media/gpu_video_decode_accelerator.cc
@@ -33,7 +33,7 @@
#include "content/common/gpu/media/dxva_video_decode_accelerator.h"
#elif defined(OS_MACOSX)
#include "content/common/gpu/media/vt_video_decode_accelerator.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 @@ GpuVideoDecodeAccelerator::GetSupportedProfiles() {
// can be initialized by corresponding VDA successfully.
#if defined(OS_WIN)
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();
@@ -389,7 +389,7 @@ GpuVideoDecodeAccelerator::CreateDXVAVDA() {
scoped_ptr<media::VideoDecodeAccelerator>
GpuVideoDecodeAccelerator::CreateV4L2VDA() {
scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kDecoder);
if (device.get()) {
decoder.reset(new V4L2VideoDecodeAccelerator(
@@ -407,7 +407,7 @@ GpuVideoDecodeAccelerator::CreateV4L2VDA() {
scoped_ptr<media::VideoDecodeAccelerator>
GpuVideoDecodeAccelerator::CreateV4L2SliceVDA() {
scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kDecoder);
if (device.get()) {
decoder.reset(new V4L2SliceVideoDecodeAccelerator(
@@ -438,7 +438,7 @@ void GpuVideoDecodeAccelerator::BindImage(uint32 client_texture_id,
scoped_ptr<media::VideoDecodeAccelerator>
GpuVideoDecodeAccelerator::CreateVaapiVDA() {
scoped_ptr<media::VideoDecodeAccelerator> 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 VaapiVideoDecodeAccelerator(
make_context_current_, base::Bind(&GpuVideoDecodeAccelerator::BindImage,
base::Unretained(this))));
diff --git a/content/common/gpu/media/gpu_video_encode_accelerator.cc b/content/common/gpu/media/gpu_video_encode_accelerator.cc
index ef14060..d6fcf77 100644
--- a/content/common/gpu/media/gpu_video_encode_accelerator.cc
+++ b/content/common/gpu/media/gpu_video_encode_accelerator.cc
@@ -20,7 +20,7 @@
#include "media/base/limits.h"
#include "media/base/video_frame.h"
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
#if defined(USE_V4L2_CODEC)
#include "content/common/gpu/media/v4l2_video_encode_accelerator.h"
#endif
@@ -197,7 +197,7 @@ GpuVideoEncodeAccelerator::CreateVEAFps() {
scoped_ptr<media::VideoEncodeAccelerator>
GpuVideoEncodeAccelerator::CreateV4L2VEA() {
scoped_ptr<media::VideoEncodeAccelerator> encoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kEncoder);
if (device)
encoder.reset(new V4L2VideoEncodeAccelerator(device));
@@ -209,7 +209,7 @@ GpuVideoEncodeAccelerator::CreateV4L2VEA() {
scoped_ptr<media::VideoEncodeAccelerator>
GpuVideoEncodeAccelerator::CreateVaapiVEA() {
scoped_ptr<media::VideoEncodeAccelerator> encoder;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(ARCH_CPU_X86_FAMILY)
const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
if (!cmd_line->HasSwitch(switches::kDisableVaapiAcceleratedVideoEncode))
encoder.reset(new VaapiVideoEncodeAccelerator());
diff --git a/content/common/gpu/media/jpeg_decode_accelerator_unittest.cc b/content/common/gpu/media/jpeg_decode_accelerator_unittest.cc
index fa640b1..09293ef 100644
--- a/content/common/gpu/media/jpeg_decode_accelerator_unittest.cc
+++ b/content/common/gpu/media/jpeg_decode_accelerator_unittest.cc
@@ -23,7 +23,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 "content/common/gpu/media/v4l2_device.h"
#include "content/common/gpu/media/v4l2_jpeg_decode_accelerator.h"
@@ -129,10 +129,10 @@ 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<V4L2Device> device =
V4L2Device::Create(V4L2Device::kJpegDecoder);
if (!device.get()) {
@@ -568,7 +568,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)
content::VaapiWrapper::PreSandboxInitialization();
#endif
diff --git a/content/common/gpu/media/video_decode_accelerator_unittest.cc b/content/common/gpu/media/video_decode_accelerator_unittest.cc
index 9a8b774..f759dbd 100644
--- a/content/common/gpu/media/video_decode_accelerator_unittest.cc
+++ b/content/common/gpu/media/video_decode_accelerator_unittest.cc
@@ -58,7 +58,7 @@
#if defined(OS_WIN)
#include "base/win/windows_version.h"
#include "content/common/gpu/media/dxva_video_decode_accelerator.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"
@@ -532,7 +532,7 @@ GLRenderingVDAClient::CreateDXVAVDA() {
scoped_ptr<media::VideoDecodeAccelerator>
GLRenderingVDAClient::CreateV4L2VDA() {
scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kDecoder);
if (device.get()) {
base::WeakPtr<VideoDecodeAccelerator::Client> weak_client = AsWeakPtr();
@@ -549,7 +549,7 @@ GLRenderingVDAClient::CreateV4L2VDA() {
scoped_ptr<media::VideoDecodeAccelerator>
GLRenderingVDAClient::CreateV4L2SliceVDA() {
scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && defined(USE_V4L2_CODEC)
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kDecoder);
if (device.get()) {
base::WeakPtr<VideoDecodeAccelerator::Client> weak_client = AsWeakPtr();
@@ -566,7 +566,7 @@ GLRenderingVDAClient::CreateV4L2SliceVDA() {
scoped_ptr<media::VideoDecodeAccelerator>
GLRenderingVDAClient::CreateVaapiVDA() {
scoped_ptr<media::VideoDecodeAccelerator> 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 VaapiVideoDecodeAccelerator(
base::Bind(&DoNothingReturnTrue),
base::Bind(&GLRenderingVDAClient::BindImage, base::Unretained(this))));
@@ -1650,7 +1650,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)
content::VaapiWrapper::PreSandboxInitialization();
#endif
diff --git a/content/common/gpu/media/video_encode_accelerator_unittest.cc b/content/common/gpu/media/video_encode_accelerator_unittest.cc
index 1775614..a33b4e5 100644
--- a/content/common/gpu/media/video_encode_accelerator_unittest.cc
+++ b/content/common/gpu/media/video_encode_accelerator_unittest.cc
@@ -40,7 +40,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 "content/common/gpu/media/v4l2_video_encode_accelerator.h"
#endif
@@ -1044,7 +1044,7 @@ scoped_ptr<media::VideoEncodeAccelerator> VEAClient::CreateFakeVEA() {
scoped_ptr<media::VideoEncodeAccelerator> VEAClient::CreateV4L2VEA() {
scoped_ptr<media::VideoEncodeAccelerator> encoder;
-#if defined(OS_CHROMEOS) && (defined(ARCH_CPU_ARMEL) || \
+#if (defined(OS_CHROMEOS) || defined(OS_LINUX)) && (defined(ARCH_CPU_ARMEL) || \
(defined(USE_OZONE) && defined(USE_V4L2_CODEC)))
scoped_refptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kEncoder);
if (device)
@@ -1055,7 +1055,7 @@ scoped_ptr<media::VideoEncodeAccelerator> VEAClient::CreateV4L2VEA() {
scoped_ptr<media::VideoEncodeAccelerator> VEAClient::CreateVaapiVEA() {
scoped_ptr<media::VideoEncodeAccelerator> 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.Pass();
@@ -1761,7 +1761,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)
content::VaapiWrapper::PreSandboxInitialization();
#endif
diff --git a/content/content_common.gypi b/content/content_common.gypi
index f9236da..ad1654d 100644
--- a/content/content_common.gypi
+++ b/content/content_common.gypi
@@ -821,7 +821,7 @@
'public/common/webrtc_ip_handling_policy.h',
],
}],
- ['use_v4lplugin==1 and chromeos==1', {
+ ['use_v4lplugin==1 and (chromeos==1 or desktop_linux==1)', {
'defines': [
'USE_LIBV4L2'
],
@@ -865,7 +865,7 @@
},
],
}],
- ['chromeos==1', {
+ ['(chromeos==1 or desktop_linux==1)', {
'sources': [
'common/gpu/media/accelerated_video_decoder.h',
'common/gpu/media/h264_decoder.cc',
@@ -882,7 +882,7 @@
'common/gpu/media/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'
@@ -915,13 +915,13 @@
'<(DEPTH)/third_party/khronos',
],
}],
- ['target_arch == "arm" and chromeos == 1', {
+ ['target_arch == "arm" and (chromeos == 1 or desktop_linux == 1)', {
'sources': [
'common/gpu/media/tegra_v4l2_device.cc',
'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',
diff --git a/content/content_gpu.gypi b/content/content_gpu.gypi
index 5516ed4..ff2f410 100644
--- a/content/content_gpu.gypi
+++ b/content/content_gpu.gypi
@@ -38,7 +38,7 @@
],
},
}],
- ['target_arch!="arm" and chromeos == 1', {
+ ['target_arch!="arm" and (chromeos == 1 or desktop_linux == 1)', {
'include_dirs': [
'<(DEPTH)/third_party/libva',
],
diff --git a/content/content_tests.gypi b/content/content_tests.gypi
index 929915b..dc7b77e 100644
--- a/content/content_tests.gypi
+++ b/content/content_tests.gypi
@@ -1652,7 +1652,7 @@
},
],
}],
- ['chromeos==1 or OS=="win" or OS=="android"', {
+ ['(chromeos==1 or desktop_linux==1) or OS=="win" or OS=="android"', {
'targets': [
{
'target_name': 'video_decode_accelerator_unittest',
@@ -1721,7 +1721,7 @@
'../ui/gfx/x/gfx_x11.gyp:gfx_x11',
],
}],
- ['use_ozone==1 and chromeos==1', {
+ ['use_ozone==1 and (chromeos==1 or desktop_linux == 1)', {
'dependencies': [
'../ui/display/display.gyp:display', # Used by rendering_helper.cc
'../ui/ozone/ozone.gyp:ozone', # Used by rendering_helper.cc
@@ -1733,7 +1733,7 @@
},
]
}],
- ['chromeos==1 and target_arch != "arm"', {
+ ['(chromeos==1 or desktop_linux==1) and target_arch != "arm"', {
'targets': [
{
'target_name': 'vaapi_jpeg_decoder_unittest',
@@ -1765,7 +1765,7 @@
}
]
}],
- ['chromeos==1', {
+ ['chromeos==1 or desktop_linux==1', {
'targets': [
{
'target_name': 'video_encode_accelerator_unittest',
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
index c449382..05ce87a 100644
--- a/content/public/common/content_switches.cc
+++ b/content/public/common/content_switches.cc
@@ -931,7 +931,9 @@ const char kDisableWebAudio[] = "disable-webaudio";
#if defined(OS_CHROMEOS)
// Disables panel fitting (used for mirror mode).
const char kDisablePanelFitting[] = "disable-panel-fitting";
+#endif
+#if defined(OS_CHROMEOS) || defined(OS_LINUX)
// Disables VA-API accelerated video encode.
const char kDisableVaapiAcceleratedVideoEncode[] =
"disable-vaapi-accelerated-video-encode";
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h
index 9bd5dbd..2341f47 100644
--- a/content/public/common/content_switches.h
+++ b/content/public/common/content_switches.h
@@ -275,6 +275,9 @@ CONTENT_EXPORT extern const char kDisableWebAudio[];
#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
diff --git a/media/media.gyp b/media/media.gyp
index b56a23b..b643096 100644
--- a/media/media.gyp
+++ b/media/media.gyp
@@ -764,7 +764,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',
@@ -1398,7 +1398,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',
],