diff options
author | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-15 17:09:18 +0000 |
---|---|---|
committer | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-15 17:09:18 +0000 |
commit | ce2d72c6918e9707ef3dc9987369241108ed239f (patch) | |
tree | e6cd9b58cebe325676fae66b65921282c652b2ab /content/renderer/gpu/command_buffer_proxy.h | |
parent | e849792e6b65f2d495934633cc918dccfacdda5a (diff) | |
download | chromium_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.h | 8 |
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_; |