| Index: content/common/gpu/media/exynos_video_decode_accelerator.h
|
| diff --git a/content/common/gpu/media/exynos_video_decode_accelerator.h b/content/common/gpu/media/exynos_video_decode_accelerator.h
|
| index 77471402ff0d61f259f228cc3d12403c332076e8..09264b94056e2df25ac66ac84066194517f2b81e 100644
|
| --- a/content/common/gpu/media/exynos_video_decode_accelerator.h
|
| +++ b/content/common/gpu/media/exynos_video_decode_accelerator.h
|
| @@ -16,8 +16,8 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/threading/thread.h"
|
| #include "content/common/content_export.h"
|
| +#include "content/common/gpu/media/video_decode_accelerator_impl.h"
|
| #include "media/base/video_decoder_config.h"
|
| -#include "media/video/video_decode_accelerator.h"
|
| #include "ui/gfx/size.h"
|
| #include "ui/gl/gl_bindings.h"
|
|
|
| @@ -54,14 +54,15 @@ class H264Parser;
|
| // decoder_thread_, so there are no synchronization issues.
|
| // ... well, there are, but it's a matter of getting messages posted in the
|
| // right order, not fiddling with locks.
|
| -class CONTENT_EXPORT ExynosVideoDecodeAccelerator :
|
| - public media::VideoDecodeAccelerator {
|
| +class CONTENT_EXPORT ExynosVideoDecodeAccelerator
|
| + : public VideoDecodeAcceleratorImpl {
|
| public:
|
| ExynosVideoDecodeAccelerator(
|
| EGLDisplay egl_display,
|
| EGLContext egl_context,
|
| Client* client,
|
| - const base::Callback<bool(void)>& make_context_current);
|
| + const base::Callback<bool(void)>& make_context_current,
|
| + const scoped_refptr<base::MessageLoopProxy>& io_message_loop_proxy);
|
| virtual ~ExynosVideoDecodeAccelerator();
|
|
|
| // media::VideoDecodeAccelerator implementation.
|
| @@ -75,6 +76,9 @@ class CONTENT_EXPORT ExynosVideoDecodeAccelerator :
|
| virtual void Reset() OVERRIDE;
|
| virtual void Destroy() OVERRIDE;
|
|
|
| + // VideoDecodeAcceleratorImpl implementation.
|
| + virtual bool CanDecodeOnIOThread() OVERRIDE;
|
| +
|
| // Do any necessary initialization before the sandbox is enabled.
|
| static void PreSandboxInitialization();
|
|
|
| @@ -178,7 +182,7 @@ class CONTENT_EXPORT ExynosVideoDecodeAccelerator :
|
| // Enqueue a BitstreamBuffer to decode. This will enqueue a buffer to the
|
| // decoder_input_queue_, then queue a DecodeBufferTask() to actually decode
|
| // the buffer.
|
| - void DecodeTask(scoped_ptr<BitstreamBufferRef> bitstream_record);
|
| + void DecodeTask(const media::BitstreamBuffer& bitstream_buffer);
|
|
|
| // Decode from the buffers queued in decoder_input_queue_. Calls
|
| // DecodeBufferInitial() or DecodeBufferContinue() as appropriate.
|
| @@ -311,6 +315,9 @@ class CONTENT_EXPORT ExynosVideoDecodeAccelerator :
|
| // Our original calling message loop for the child thread.
|
| scoped_refptr<base::MessageLoopProxy> child_message_loop_proxy_;
|
|
|
| + // Message loop of the IO thread.
|
| + scoped_refptr<base::MessageLoopProxy> io_message_loop_proxy_;
|
| +
|
| // WeakPtr<> pointing to |this| for use in posting tasks from the decoder or
|
| // device worker threads back to the child thread. Because the worker threads
|
| // are members of this class, any task running on those threads is guaranteed
|
|
|