summaryrefslogtreecommitdiffstats
path: root/chromium/media/gpu/ipc/service/vda_video_decoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/gpu/ipc/service/vda_video_decoder.h')
-rw-r--r--chromium/media/gpu/ipc/service/vda_video_decoder.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/chromium/media/gpu/ipc/service/vda_video_decoder.h b/chromium/media/gpu/ipc/service/vda_video_decoder.h
index e9e9b5d6038..39c6478968b 100644
--- a/chromium/media/gpu/ipc/service/vda_video_decoder.h
+++ b/chromium/media/gpu/ipc/service/vda_video_decoder.h
@@ -47,7 +47,7 @@ class VdaVideoDecoder : public VideoDecoder,
using CreateCommandBufferHelperCB =
base::OnceCallback<scoped_refptr<CommandBufferHelper>()>;
using CreateAndInitializeVdaCB =
- base::OnceCallback<std::unique_ptr<VideoDecodeAccelerator>(
+ base::RepeatingCallback<std::unique_ptr<VideoDecodeAccelerator>(
scoped_refptr<CommandBufferHelper>,
VideoDecodeAccelerator::Client*,
MediaLog*,
@@ -138,6 +138,7 @@ class VdaVideoDecoder : public VideoDecoder,
// Tasks and thread hopping.
void DestroyOnGpuThread();
void InitializeOnGpuThread();
+ void ReinitializeOnGpuThread();
void InitializeDone(bool status);
void DecodeOnGpuThread(scoped_refptr<DecoderBuffer> buffer,
int32_t bitstream_id);
@@ -197,8 +198,10 @@ class VdaVideoDecoder : public VideoDecoder,
// Only written on the GPU thread during initialization, which is mutually
// exclusive with reads on the parent thread.
std::unique_ptr<VideoDecodeAccelerator> vda_;
+ scoped_refptr<CommandBufferHelper> command_buffer_helper_;
bool vda_initialized_ = false;
bool decode_on_parent_thread_ = false;
+ bool reinitializing_ = false;
//
// Weak pointers, prefixed by bound thread.