Index: content/common/gpu/media/dxva_video_decode_accelerator_win.h |
diff --git a/content/common/gpu/media/dxva_video_decode_accelerator_win.h b/content/common/gpu/media/dxva_video_decode_accelerator_win.h |
index 0158e74ed8f92bb9df925b574937473f8473e064..dabe1183c282eda11a99f652795740b45e4fccc5 100644 |
--- a/content/common/gpu/media/dxva_video_decode_accelerator_win.h |
+++ b/content/common/gpu/media/dxva_video_decode_accelerator_win.h |
@@ -30,6 +30,7 @@ |
#include "base/threading/thread.h" |
#include "base/win/scoped_comptr.h" |
#include "content/common/content_export.h" |
+#include "content/common/gpu/media/gpu_video_decode_accelerator_helpers.h" |
#include "media/filters/h264_parser.h" |
#include "media/video/video_decode_accelerator.h" |
@@ -101,8 +102,8 @@ class CONTENT_EXPORT DXVAVideoDecodeAccelerator |
// Does not take ownership of |client| which must outlive |*this|. |
DXVAVideoDecodeAccelerator( |
- const base::Callback<bool(void)>& make_context_current, |
- gfx::GLContext* gl_context, |
+ const GetGLContextCallback& get_gl_context_cb, |
+ const MakeGLContextCurrentCallback& make_context_current_cb, |
bool enable_accelerated_vpx_decode); |
~DXVAVideoDecodeAccelerator() override; |
@@ -115,7 +116,10 @@ class CONTENT_EXPORT DXVAVideoDecodeAccelerator |
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; |
GLenum GetSurfaceInternalFormat() const override; |
static media::VideoDecodeAccelerator::SupportedProfiles |
@@ -406,8 +410,10 @@ class CONTENT_EXPORT DXVAVideoDecodeAccelerator |
typedef std::list<base::win::ScopedComPtr<IMFSample>> PendingInputs; |
PendingInputs pending_input_buffers_; |
+ // Callback to get current GLContext. |
+ GetGLContextCallback get_gl_context_cb_; |
// Callback to set the correct gl context. |
- base::Callback<bool(void)> make_context_current_; |
+ MakeGLContextCurrentCallback make_context_current_cb_; |
// Which codec we are decoding with hardware acceleration. |
media::VideoCodec codec_; |
@@ -447,9 +453,6 @@ class CONTENT_EXPORT DXVAVideoDecodeAccelerator |
// be initialized. Defaults to true. |
bool dx11_video_format_converter_media_type_needs_init_; |
- // The GLContext to be used by the decoder. |
- scoped_refptr<gfx::GLContext> gl_context_; |
- |
// Set to true if we are sharing ANGLE's device. |
bool using_angle_device_; |