summaryrefslogtreecommitdiffstats
path: root/chrome/gpu/gpu_video_decoder.h
diff options
context:
space:
mode:
authorhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-03 18:57:24 +0000
committerhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-03 18:57:24 +0000
commit1cfb7420fb7ea2fa5a6360bbee5424918e84a027 (patch)
tree6ca1fd441d8675a06370fc54ac06bcbeb099b5fa /chrome/gpu/gpu_video_decoder.h
parent6b723128f5c6b090b87949875dcc4e55304a4461 (diff)
downloadchromium_src-1cfb7420fb7ea2fa5a6360bbee5424918e84a027.zip
chromium_src-1cfb7420fb7ea2fa5a6360bbee5424918e84a027.tar.gz
chromium_src-1cfb7420fb7ea2fa5a6360bbee5424918e84a027.tar.bz2
Complete initializing a GPU video decoder in a GLES2 context
In this patch a ggl::Context is connected to the GpuVideoDecoderHost in the renderer process. In the GPU process the GpuVideoDecoder is connected to a gles2::GLES2Decoder. These changes will be used in the future to switch context before issuing video decode commands. This is also needed by the GPU process to translate a client texture ID to a service texture ID in the GPU video decoder. BUG=53714 TEST=none Review URL: http://codereview.chromium.org/3266008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58518 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/gpu/gpu_video_decoder.h')
-rw-r--r--chrome/gpu/gpu_video_decoder.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/chrome/gpu/gpu_video_decoder.h b/chrome/gpu/gpu_video_decoder.h
index 977cd02..d47085a 100644
--- a/chrome/gpu/gpu_video_decoder.h
+++ b/chrome/gpu/gpu_video_decoder.h
@@ -13,14 +13,20 @@
#include "media/video/video_decode_engine.h"
#include "ipc/ipc_channel.h"
-class GpuChannel;
-
using media::VideoCodecConfig;
using media::VideoCodecInfo;
using media::VideoStreamInfo;
using media::VideoFrame;
using media::Buffer;
+namespace gpu {
+namespace gles2 {
+class GLES2Decoder;
+} // namespace gles2
+} // namespace gpu
+
+class GpuChannel;
+
class GpuVideoDecoder
: public IPC::Channel::Listener,
public base::RefCountedThreadSafe<GpuVideoDecoder>,
@@ -44,7 +50,8 @@ class GpuVideoDecoder
GpuVideoDecoder(const GpuVideoDecoderInfoParam* param,
GpuChannel* channel_,
- base::ProcessHandle handle);
+ base::ProcessHandle handle,
+ gpu::gles2::GLES2Decoder* decoder);
virtual ~GpuVideoDecoder() {}
private:
@@ -66,6 +73,11 @@ class GpuVideoDecoder
GpuChannel* channel_;
base::ProcessHandle renderer_handle_;
+ // The GLES2 decoder has the context associated with this decoder. This object
+ // is used to switch GLES2 context and translate client texture ID to service
+ // ID.
+ gpu::gles2::GLES2Decoder* gles2_decoder_;
+
scoped_ptr<base::SharedMemory> input_transfer_buffer_;
scoped_ptr<base::SharedMemory> output_transfer_buffer_;