summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorsail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-08 22:37:27 +0000
committersail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-08 22:37:27 +0000
commit4326fe52ca81a709b944bbad8b7342b1da2a1d5e (patch)
tree42504115b1cd1943b31286fd2bf0ff3857cbd28c /content
parent10385fed87bf2ddfac12398d90bcafd3aea8f88b (diff)
downloadchromium_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.cc49
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(