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 5f37ddf9844b3fdecf6ca4f2bc50c448527fe5ee..9bceba8e40764cd01222e62044ebe3ab6cefef1c 100644 |
--- a/content/common/gpu/media/dxva_video_decode_accelerator_win.h |
+++ b/content/common/gpu/media/dxva_video_decode_accelerator_win.h |
@@ -29,6 +29,7 @@ |
#include "base/threading/thread.h" |
#include "base/win/scoped_comptr.h" |
#include "content/common/content_export.h" |
+#include "content/public/common/gpu_video_decode_accelerator_helpers.h" |
#include "media/video/video_decode_accelerator.h" |
interface IMFSample; |
@@ -60,9 +61,9 @@ class CONTENT_EXPORT DXVAVideoDecodeAccelerator |
}; |
// Does not take ownership of |client| which must outlive |*this|. |
- explicit DXVAVideoDecodeAccelerator( |
- const base::Callback<bool(void)>& make_context_current, |
- gfx::GLContext* gl_context); |
+ DXVAVideoDecodeAccelerator( |
+ const gpu_vda_helpers::GetGLContextCb& get_gl_context_cb, |
+ const gpu_vda_helpers::MakeGLContextCurrentCb& make_context_current_cb); |
~DXVAVideoDecodeAccelerator() override; |
// media::VideoDecodeAccelerator implementation. |
@@ -74,7 +75,10 @@ class CONTENT_EXPORT DXVAVideoDecodeAccelerator |
void Flush() override; |
void Reset() override; |
void Destroy() override; |
- bool CanDecodeOnIOThread() override; |
+ bool TryInitializeDecodeOnSeparateThread( |
+ const base::WeakPtr<Client>& decode_client, |
+ const scoped_refptr<base::SingleThreadTaskRunner>& decode_task_runner) |
+ override; |
GLenum GetSurfaceInternalFormat() const override; |
static media::VideoDecodeAccelerator::SupportedProfiles |
@@ -342,8 +346,10 @@ class CONTENT_EXPORT DXVAVideoDecodeAccelerator |
typedef std::list<base::win::ScopedComPtr<IMFSample>> PendingInputs; |
PendingInputs pending_input_buffers_; |
+ // Callback to get current GLContext. |
+ gpu_vda_helpers::GetGLContextCb get_gl_context_cb_; |
// Callback to set the correct gl context. |
- base::Callback<bool(void)> make_context_current_; |
+ gpu_vda_helpers::MakeGLContextCurrentCb make_context_current_cb_; |
// Which codec we are decoding with hardware acceleration. |
media::VideoCodec codec_; |
@@ -383,9 +389,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_; |