summaryrefslogtreecommitdiffstats
path: root/content/renderer/gpu/command_buffer_proxy.h
diff options
context:
space:
mode:
authorfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-15 17:09:18 +0000
committerfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-15 17:09:18 +0000
commitce2d72c6918e9707ef3dc9987369241108ed239f (patch)
treee6cd9b58cebe325676fae66b65921282c652b2ab /content/renderer/gpu/command_buffer_proxy.h
parente849792e6b65f2d495934633cc918dccfacdda5a (diff)
downloadchromium_src-ce2d72c6918e9707ef3dc9987369241108ed239f.zip
chromium_src-ce2d72c6918e9707ef3dc9987369241108ed239f.tar.gz
chromium_src-ce2d72c6918e9707ef3dc9987369241108ed239f.tar.bz2
Enable fire-and-forget Destroy of HW video decoder, and misc other improvements.
- Instead of requiring the client to wait for NotifyDestroyDone we do the asynchronous OMX teardown dance on the client's behalf. - Prettify/simplify error handling in OVDA for easier matching of errors to OMX_Core.h and to remove redundant information. - Enable previously-DISABLED_ early-teardown unittests! - Remove passing VideoDecoder_Dev object in PPP_VideoDecoder_Dev calls, because it was unnecssary, and because the ~VideoDecoder_Dev dtor is now not a no-op so we don't want to call it spuriously. - Remove accidentally re-added gpu_video_service_host.cc (originally removed in 92251, accidentally reintroduced by a bad rebase in 92383). BUG=none TEST=ovdatest passes (incl. early-teardown tests) and gles2 works (including reload and EOS handling, no crashes) Review URL: http://codereview.chromium.org/7361010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92704 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/gpu/command_buffer_proxy.h')
-rw-r--r--content/renderer/gpu/command_buffer_proxy.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/content/renderer/gpu/command_buffer_proxy.h b/content/renderer/gpu/command_buffer_proxy.h
index 9879169..aba15c9 100644
--- a/content/renderer/gpu/command_buffer_proxy.h
+++ b/content/renderer/gpu/command_buffer_proxy.h
@@ -83,14 +83,12 @@ class CommandBufferProxy : public gpu::CommandBuffer,
void SetNotifyRepaintTask(Task* task);
// Sends an IPC message to create a GpuVideoDecodeAccelerator. Creates and
- // returns a pointer to a GpuVideoDecodeAcceleratorHost. CommandBufferProxy
- // owns the GpuVideoDecodeAcceleratorHost and does not transfer ownership to
- // the caller of this method.
+ // returns a pointer to a GpuVideoDecodeAcceleratorHost.
// Returns NULL on failure to create the GpuVideoDecodeAcceleratorHost.
// Note that the GpuVideoDecodeAccelerator may still fail to be created in
// the GPU process, even if this returns non-NULL. In this case the client is
// notified of an error later.
- GpuVideoDecodeAcceleratorHost* CreateVideoDecoder(
+ scoped_refptr<GpuVideoDecodeAcceleratorHost> CreateVideoDecoder(
const std::vector<uint32>& configs,
gpu::CommandBufferHelper* cmd_buffer_helper,
media::VideoDecodeAccelerator::Client* client);
@@ -126,7 +124,7 @@ class CommandBufferProxy : public gpu::CommandBuffer,
// The video decoder host corresponding to the stub's video decoder in the GPU
// process, if one exists.
- scoped_ptr<GpuVideoDecodeAcceleratorHost> video_decoder_host_;
+ scoped_refptr<GpuVideoDecodeAcceleratorHost> video_decoder_host_;
// The last cached state received from the service.
State last_state_;