Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(952)

Unified Diff: content/common/gpu/media/gpu_video_decode_accelerator.h

Issue 1784193003: content gpu refactor: get rid of gpu related content switches. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix the compile problem on windows Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/common/gpu/media/gpu_video_decode_accelerator.h
diff --git a/content/common/gpu/media/gpu_video_decode_accelerator.h b/content/common/gpu/media/gpu_video_decode_accelerator.h
index ac9b1181de19d10abd28aabc265056f0314b88cc..541271f3451562180f9f9b45e92c96de68f46799 100644
--- a/content/common/gpu/media/gpu_video_decode_accelerator.h
+++ b/content/common/gpu/media/gpu_video_decode_accelerator.h
@@ -23,6 +23,10 @@
#include "media/video/video_decode_accelerator.h"
#include "ui/gfx/geometry/size.h"
+namespace gpu {
+struct GpuPreferences;
+} // namespace gpu
+
namespace content {
class GpuVideoDecodeAccelerator
@@ -42,7 +46,8 @@ class GpuVideoDecodeAccelerator
// Static query for the capabilities, which includes the supported profiles.
// This query calls the appropriate platform-specific version. The returned
// capabilities will not contain duplicate supported profile entries.
- static gpu::VideoDecodeAcceleratorCapabilities GetCapabilities();
+ static gpu::VideoDecodeAcceleratorCapabilities GetCapabilities(
+ const gpu::GpuPreferences& gpu_preferences);
// IPC::Listener implementation.
bool OnMessageReceived(const IPC::Message& message) override;
@@ -72,18 +77,30 @@ class GpuVideoDecodeAccelerator
bool Initialize(const media::VideoDecodeAccelerator::Config& config);
private:
- typedef scoped_ptr<media::VideoDecodeAccelerator>(
+ typedef scoped_ptr<media::VideoDecodeAccelerator> (
GpuVideoDecodeAccelerator::*CreateVDAFp)();
class MessageFilter;
+#if defined(OS_WIN)
scoped_ptr<media::VideoDecodeAccelerator> CreateDXVAVDA();
+#endif
+#if defined(OS_CHROMEOS) && defined(USE_V4L2_CODEC)
scoped_ptr<media::VideoDecodeAccelerator> CreateV4L2VDA();
scoped_ptr<media::VideoDecodeAccelerator> CreateV4L2SliceVDA();
+#endif
+#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
scoped_ptr<media::VideoDecodeAccelerator> CreateVaapiVDA();
+#endif
+#if defined(OS_MACOSX)
scoped_ptr<media::VideoDecodeAccelerator> CreateVTVDA();
+#endif
+#if !defined(OS_CHROMEOS) && defined(USE_OZONE)
scoped_ptr<media::VideoDecodeAccelerator> CreateOzoneVDA();
+#endif
+#if defined(OS_ANDROID)
scoped_ptr<media::VideoDecodeAccelerator> CreateAndroidVDA();
+#endif
// We only allow self-delete, from OnWillDestroyStub(), after cleanup there.
~GpuVideoDecodeAccelerator() override;
@@ -104,10 +121,12 @@ class GpuVideoDecodeAccelerator
// Sets the texture to cleared.
void SetTextureCleared(const media::Picture& picture);
+#if (defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)) || defined(OS_MACOSX)
// Helper to bind |image| to the texture specified by |client_texture_id|.
void BindImage(uint32_t client_texture_id,
uint32_t texture_target,
scoped_refptr<gl::GLImage> image);
+#endif
// Helper function to call NotifyError in the |child_task_runner_| thread.
void CallOrPostNotifyError(media::VideoDecodeAccelerator::Error error);

Powered by Google App Engine
This is Rietveld 408576698