| Index: media/filters/gpu_video_decoder.h
|
| diff --git a/media/filters/gpu_video_decoder.h b/media/filters/gpu_video_decoder.h
|
| index 1c86862fc7d5bca439975b1f25f3adb4dd68173d..eb82db67ca53aa76e9f026e6a156368c825c9ad6 100644
|
| --- a/media/filters/gpu_video_decoder.h
|
| +++ b/media/filters/gpu_video_decoder.h
|
| @@ -17,6 +17,7 @@
|
| #include "base/macros.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "media/base/pipeline_status.h"
|
| +#include "media/base/surface_manager.h"
|
| #include "media/base/video_decoder.h"
|
| #include "media/video/video_decode_accelerator.h"
|
|
|
| @@ -45,7 +46,8 @@ class MEDIA_EXPORT GpuVideoDecoder
|
| : public VideoDecoder,
|
| public VideoDecodeAccelerator::Client {
|
| public:
|
| - explicit GpuVideoDecoder(GpuVideoAcceleratorFactories* factories);
|
| + explicit GpuVideoDecoder(GpuVideoAcceleratorFactories* factories,
|
| + const RequestSurfaceCB& request_surface_cb);
|
|
|
| // VideoDecoder implementation.
|
| std::string GetDisplayName() const override;
|
| @@ -54,6 +56,7 @@ class MEDIA_EXPORT GpuVideoDecoder
|
| CdmContext* cdm_context,
|
| const InitCB& init_cb,
|
| const OutputCB& output_cb) override;
|
| + void CompleteInitialization(int cdm_id, int surface_id);
|
| void Decode(const scoped_refptr<DecoderBuffer>& buffer,
|
| const DecodeCB& decode_cb) override;
|
| void Reset(const base::Closure& closure) override;
|
| @@ -167,6 +170,10 @@ class MEDIA_EXPORT GpuVideoDecoder
|
|
|
| VideoDecoderConfig config_;
|
|
|
| + // For requesting a suface to render to. If this is null the VDA will return
|
| + // normal video frames and not render them to a surface.
|
| + RequestSurfaceCB request_surface_cb_;
|
| +
|
| // Shared-memory buffer pool. Since allocating SHM segments requires a
|
| // round-trip to the browser process, we keep allocation out of the
|
| // steady-state of the decoder.
|
|
|