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

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

Issue 832383004: Revert of Support multiple video decoders and encoders (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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.cc
diff --git a/content/common/gpu/media/gpu_video_decode_accelerator.cc b/content/common/gpu/media/gpu_video_decode_accelerator.cc
index dfb348bf61a4a42cce5c19fdee1f71acddf496bc..3d3a437751177dc61f38356e8e6d6ac9faf5911d 100644
--- a/content/common/gpu/media/gpu_video_decode_accelerator.cc
+++ b/content/common/gpu/media/gpu_video_decode_accelerator.cc
@@ -28,15 +28,12 @@
#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)
-#if defined(USE_OZONE) || defined(ARCH_CPU_ARMEL)
+#elif defined(OS_CHROMEOS) && defined(ARCH_CPU_ARMEL) && defined(USE_X11)
#include "content/common/gpu/media/v4l2_video_decode_accelerator.h"
#include "content/common/gpu/media/v4l2_video_device.h"
-#endif // defined(USE_OZONE) || defined(ARCH_CPU_ARMEL)
-#if defined(ARCH_CPU_X86_FAMILY)
+#elif defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
#include "content/common/gpu/media/vaapi_video_decode_accelerator.h"
#include "ui/gl/gl_implementation.h"
-#endif // defined(ARCH_CPU_X86_FAMILY)
#elif defined(USE_OZONE)
#include "media/ozone/media_ozone_platform.h"
#elif defined(OS_ANDROID)
@@ -247,111 +244,66 @@
}
#endif
- std::vector<GpuVideoDecodeAccelerator::CreateVDAFp>
- create_vda_fps = CreateVDAFps();
-
- for (size_t i = 0; i < create_vda_fps.size(); ++i) {
- video_decode_accelerator_ = (this->*create_vda_fps[i])();
- if (!video_decode_accelerator_ ||
- !video_decode_accelerator_->Initialize(profile, this))
- continue;
-
- if (video_decode_accelerator_->CanDecodeOnIOThread()) {
- filter_ = new MessageFilter(this, host_route_id_);
- stub_->channel()->AddFilter(filter_.get());
- }
- SendCreateDecoderReply(init_done_msg, true);
- return;
- }
- video_decode_accelerator_.reset();
+#if defined(OS_WIN)
+ if (base::win::GetVersion() < base::win::VERSION_WIN7) {
+ NOTIMPLEMENTED() << "HW video decode acceleration not available.";
+ SendCreateDecoderReply(init_done_msg, false);
+ return;
+ }
+ DVLOG(0) << "Initializing DXVA HW decoder for windows.";
+ video_decode_accelerator_.reset(
+ new DXVAVideoDecodeAccelerator(make_context_current_));
+#elif defined(OS_MACOSX)
+ video_decode_accelerator_.reset(new VTVideoDecodeAccelerator(
+ static_cast<CGLContextObj>(
+ stub_->decoder()->GetGLContext()->GetHandle()),
+ make_context_current_));
+#elif defined(OS_CHROMEOS) && defined(ARCH_CPU_ARMEL) && defined(USE_X11)
+ scoped_ptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kDecoder);
+ if (!device.get()) {
+ SendCreateDecoderReply(init_done_msg, false);
+ return;
+ }
+ video_decode_accelerator_.reset(new V4L2VideoDecodeAccelerator(
+ gfx::GLSurfaceEGL::GetHardwareDisplay(),
+ stub_->decoder()->GetGLContext()->GetHandle(),
+ weak_factory_for_io_.GetWeakPtr(),
+ make_context_current_,
+ device.Pass(),
+ io_message_loop_));
+#elif defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
+ video_decode_accelerator_.reset(
+ new VaapiVideoDecodeAccelerator(make_context_current_));
+#elif defined(USE_OZONE)
+ media::MediaOzonePlatform* platform =
+ media::MediaOzonePlatform::GetInstance();
+ video_decode_accelerator_.reset(platform->CreateVideoDecodeAccelerator(
+ make_context_current_));
+ if (!video_decode_accelerator_) {
+ SendCreateDecoderReply(init_done_msg, false);
+ return;
+ }
+#elif defined(OS_ANDROID)
+ video_decode_accelerator_.reset(new AndroidVideoDecodeAccelerator(
+ stub_->decoder()->AsWeakPtr(),
+ make_context_current_));
+#else
NOTIMPLEMENTED() << "HW video decode acceleration not available.";
SendCreateDecoderReply(init_done_msg, false);
-}
-
-std::vector<GpuVideoDecodeAccelerator::CreateVDAFp>
-GpuVideoDecodeAccelerator::CreateVDAFps() {
- std::vector<GpuVideoDecodeAccelerator::CreateVDAFp> create_vda_fps;
- create_vda_fps.push_back(&GpuVideoDecodeAccelerator::CreateDXVAVDA);
- create_vda_fps.push_back(&GpuVideoDecodeAccelerator::CreateV4L2VDA);
- create_vda_fps.push_back(&GpuVideoDecodeAccelerator::CreateVaapiVDA);
- create_vda_fps.push_back(&GpuVideoDecodeAccelerator::CreateVTVDA);
- create_vda_fps.push_back(&GpuVideoDecodeAccelerator::CreateOzoneVDA);
- create_vda_fps.push_back(&GpuVideoDecodeAccelerator::CreateAndroidVDA);
- return create_vda_fps;
-}
-
-scoped_ptr<media::VideoDecodeAccelerator>
-GpuVideoDecodeAccelerator::CreateDXVAVDA() {
- scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_WIN)
- if (base::win::GetVersion() >= base::win::VERSION_WIN7) {
- DVLOG(0) << "Initializing DXVA HW decoder for windows.";
- decoder.reset(new DXVAVideoDecodeAccelerator(make_context_current_));
- } else {
- NOTIMPLEMENTED() << "HW video decode acceleration not available.";
- }
+ return;
#endif
- return decoder.Pass();
-}
-
-scoped_ptr<media::VideoDecodeAccelerator>
-GpuVideoDecodeAccelerator::CreateV4L2VDA() {
- scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && (defined(USE_OZONE) || defined(ARCH_CPU_ARMEL))
- scoped_ptr<V4L2Device> device = V4L2Device::Create(V4L2Device::kDecoder);
- if (device.get()) {
- decoder.reset(new V4L2VideoDecodeAccelerator(
- gfx::GLSurfaceEGL::GetHardwareDisplay(),
- stub_->decoder()->GetGLContext()->GetHandle(),
- weak_factory_for_io_.GetWeakPtr(),
- make_context_current_,
- device.Pass(),
- io_message_loop_));
- }
-#endif
- return decoder.Pass();
-}
-
-scoped_ptr<media::VideoDecodeAccelerator>
-GpuVideoDecodeAccelerator::CreateVaapiVDA() {
- scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_CHROMEOS) && defined(ARCH_CPU_X86_FAMILY)
- decoder.reset(new VaapiVideoDecodeAccelerator(make_context_current_));
-#endif
- return decoder.Pass();
-}
-
-scoped_ptr<media::VideoDecodeAccelerator>
-GpuVideoDecodeAccelerator::CreateVTVDA() {
- scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_MACOSX)
- decoder.reset(new VTVideoDecodeAccelerator(
- static_cast<CGLContextObj>(stub_->decoder()->GetGLContext()->GetHandle()),
- make_context_current_));
-#endif
- return decoder.Pass();
-}
-
-scoped_ptr<media::VideoDecodeAccelerator>
-GpuVideoDecodeAccelerator::CreateOzoneVDA() {
- scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if !defined(OS_CHROMEOS) && defined(USE_OZONE)
- media::MediaOzonePlatform* platform =
- media::MediaOzonePlatform::GetInstance();
- decoder.reset(platform->CreateVideoDecodeAccelerator(make_context_current_));
-#endif
- return decoder.Pass();
-}
-
-scoped_ptr<media::VideoDecodeAccelerator>
-GpuVideoDecodeAccelerator::CreateAndroidVDA() {
- scoped_ptr<media::VideoDecodeAccelerator> decoder;
-#if defined(OS_ANDROID)
- decoder.reset(new AndroidVideoDecodeAccelerator(
- stub_->decoder()->AsWeakPtr(),
- make_context_current_));
-#endif
- return decoder.Pass();
+
+ if (video_decode_accelerator_->CanDecodeOnIOThread()) {
+ filter_ = new MessageFilter(this, host_route_id_);
+ stub_->channel()->AddFilter(filter_.get());
+ }
+
+ if (!video_decode_accelerator_->Initialize(profile, this)) {
+ SendCreateDecoderReply(init_done_msg, false);
+ return;
+ }
+
+ SendCreateDecoderReply(init_done_msg, true);
}
// Runs on IO thread if video_decode_accelerator_->CanDecodeOnIOThread() is
« no previous file with comments | « content/common/gpu/media/gpu_video_decode_accelerator.h ('k') | content/common/gpu/media/gpu_video_encode_accelerator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698