diff options
author | sail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-08 22:37:27 +0000 |
---|---|---|
committer | sail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-08 22:37:27 +0000 |
commit | 4326fe52ca81a709b944bbad8b7342b1da2a1d5e (patch) | |
tree | 42504115b1cd1943b31286fd2bf0ff3857cbd28c /content | |
parent | 10385fed87bf2ddfac12398d90bcafd3aea8f88b (diff) | |
download | chromium_src-4326fe52ca81a709b944bbad8b7342b1da2a1d5e.zip chromium_src-4326fe52ca81a709b944bbad8b7342b1da2a1d5e.tar.gz chromium_src-4326fe52ca81a709b944bbad8b7342b1da2a1d5e.tar.bz2 |
Revert 141302 - hook up new MacVideoDecodeAccelerator
This CL hooks up the new MacVideoDecodeAccelerator so that it can be instantiated by the HTML5 and pepper code. Currently only the pepper code uses it.
I also updated the pepper video_decode example app to be able to draw the GL_TEXTURE_RECTANGLE_ARB textures that the Mac decoder generates.
BUG=127414
TEST=
Review URL: https://chromiumcodereview.appspot.com/10411042
TBR=sail@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10534077
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141305 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r-- | content/common/gpu/media/gpu_video_decode_accelerator.cc | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/content/common/gpu/media/gpu_video_decode_accelerator.cc b/content/common/gpu/media/gpu_video_decode_accelerator.cc index 08afe38..9c67bbf 100644 --- a/content/common/gpu/media/gpu_video_decode_accelerator.cc +++ b/content/common/gpu/media/gpu_video_decode_accelerator.cc @@ -10,26 +10,30 @@ #include "base/logging.h" #include "base/stl_util.h" +#if defined(OS_WIN) +#include "base/win/windows_version.h" +#endif // OS_WIN + #include "content/common/gpu/gpu_channel.h" #include "content/common/gpu/gpu_command_buffer_stub.h" #include "content/common/gpu/gpu_messages.h" #include "gpu/command_buffer/common/command_buffer.h" -#include "gpu/command_buffer/service/texture_manager.h" #include "ipc/ipc_message_macros.h" #include "ipc/ipc_message_utils.h" -#include "ui/gfx/size.h" -#include "ui/gl/gl_context.h" -#include "ui/gl/gl_surface_egl.h" +#if (defined(OS_CHROMEOS) && defined(ARCH_CPU_ARMEL)) || defined(OS_WIN) #if defined(OS_WIN) -#include "base/win/windows_version.h" #include "content/common/gpu/media/dxva_video_decode_accelerator.h" -#elif defined(OS_CHROMEOS) && defined(ARCH_CPU_ARMEL) +#else // OS_WIN #include "content/common/gpu/media/omx_video_decode_accelerator.h" -#elif defined(OS_MACOSX) -#include "content/common/gpu/media/mac_video_decode_accelerator.h" +#endif // OS_WIN +#include "ui/gl/gl_context.h" +#include "ui/gl/gl_surface_egl.h" #endif +#include "gpu/command_buffer/service/texture_manager.h" +#include "ui/gfx/size.h" + using gpu::gles2::TextureManager; GpuVideoDecodeAccelerator::GpuVideoDecodeAccelerator( @@ -121,6 +125,8 @@ void GpuVideoDecodeAccelerator::Initialize( DCHECK(init_done_msg); init_done_msg_ = init_done_msg; +#if (defined(OS_CHROMEOS) && defined(ARCH_CPU_ARMEL)) || defined(OS_WIN) + DCHECK(stub_ && stub_->decoder()); #if defined(OS_WIN) if (base::win::GetVersion() < base::win::VERSION_WIN7) { NOTIMPLEMENTED() << "HW video decode acceleration not available."; @@ -128,29 +134,22 @@ void GpuVideoDecodeAccelerator::Initialize( return; } DLOG(INFO) << "Initializing DXVA HW decoder for windows."; - scoped_refptr<DXVAVideoDecodeAccelerator> video_decoder( - new DXVAVideoDecodeAccelerator(this)); - video_decode_accelerator_ = video_decoder; -#elif defined(OS_CHROMEOS) && defined(ARCH_CPU_ARMEL) - scoped_refptr<OmxVideoDecodeAccelerator> video_decoder( - new OmxVideoDecodeAccelerator(this)); + DXVAVideoDecodeAccelerator* video_decoder = + new DXVAVideoDecodeAccelerator(this); +#else // OS_WIN + OmxVideoDecodeAccelerator* video_decoder = + new OmxVideoDecodeAccelerator(this); video_decoder->SetEglState( gfx::GLSurfaceEGL::GetHardwareDisplay(), stub_->decoder()->GetGLContext()->GetHandle()); -#elif defined(OS_MACOSX) - scoped_refptr<MacVideoDecodeAccelerator> video_decoder( - new MacVideoDecodeAccelerator(this)); - video_decoder->SetCGLContext(static_cast<CGLContextObj>( - stub_->decoder()->GetGLContext()->GetHandle())); +#endif // OS_WIN video_decode_accelerator_ = video_decoder; -#else - NOTIMPLEMENTED() << "HW video decode acceleration not available."; - NotifyError(media::VideoDecodeAccelerator::PLATFORM_FAILURE); - return; -#endif - if (!video_decode_accelerator_->Initialize(profile)) NotifyError(media::VideoDecodeAccelerator::PLATFORM_FAILURE); +#else // Update RenderViewImpl::createMediaPlayer when adding clauses. + NOTIMPLEMENTED() << "HW video decode acceleration not available."; + NotifyError(media::VideoDecodeAccelerator::PLATFORM_FAILURE); +#endif // defined(OS_CHROMEOS) && defined(ARCH_CPU_ARMEL) } void GpuVideoDecodeAccelerator::OnDecode( |