Index: content/common/gpu/media/android_video_decode_accelerator.h |
diff --git a/content/common/gpu/media/android_video_decode_accelerator.h b/content/common/gpu/media/android_video_decode_accelerator.h |
index 2480ff6cac0f4a94be04b672be606e6c475b1b9f..16bb5c0f42565a4c21bb985008b2f17959364fcc 100644 |
--- a/content/common/gpu/media/android_video_decode_accelerator.h |
+++ b/content/common/gpu/media/android_video_decode_accelerator.h |
@@ -18,6 +18,7 @@ |
#include "base/timer/timer.h" |
#include "content/common/content_export.h" |
#include "content/common/gpu/media/avda_state_provider.h" |
+#include "content/common/gpu/media/gpu_video_decode_accelerator_helpers.h" |
#include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
#include "gpu/command_buffer/service/gpu_preferences.h" |
#include "media/base/android/media_drm_bridge_cdm_context.h" |
@@ -110,8 +111,8 @@ class CONTENT_EXPORT AndroidVideoDecodeAccelerator |
}; |
AndroidVideoDecodeAccelerator( |
- const base::WeakPtr<gpu::gles2::GLES2Decoder> decoder, |
- const base::Callback<bool(void)>& make_context_current); |
+ const MakeGLContextCurrentCallback& make_context_current_cb, |
+ const GetGLES2DecoderCallback& get_gles2_decoder_cb); |
~AndroidVideoDecodeAccelerator() override; |
@@ -125,7 +126,10 @@ class CONTENT_EXPORT AndroidVideoDecodeAccelerator |
void Flush() override; |
void Reset() override; |
void Destroy() override; |
- bool CanDecodeOnIOThread() override; |
+ bool TryToSetupDecodeOnSeparateThread( |
+ const base::WeakPtr<Client>& decode_client, |
+ const scoped_refptr<base::SingleThreadTaskRunner>& decode_task_runner) |
+ override; |
// AVDAStateProvider implementation: |
const gfx::Size& GetSize() const override; |
@@ -237,7 +241,10 @@ class CONTENT_EXPORT AndroidVideoDecodeAccelerator |
Client* client_; |
// Callback to set the correct gl context. |
- base::Callback<bool(void)> make_context_current_; |
+ MakeGLContextCurrentCallback make_context_current_cb_; |
+ |
+ // Callback to get the GLES2Decoder instance. |
+ GetGLES2DecoderCallback get_gles2_decoder_cb_; |
// Codec type. Used when we configure media codec. |
media::VideoCodec codec_; |
@@ -287,9 +294,6 @@ class CONTENT_EXPORT AndroidVideoDecodeAccelerator |
// NotifyEndOfBitstreamBuffer() before getting output from the bitstream. |
std::list<int32_t> bitstreams_notified_in_advance_; |
- // Owner of the GL context. Used to restore the context state. |
- base::WeakPtr<gpu::gles2::GLES2Decoder> gl_decoder_; |
- |
// Backing strategy that we'll use to connect PictureBuffers to frames. |
scoped_ptr<BackingStrategy> strategy_; |