// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_GPU_CHROMEOS_VDA_VIDEO_FRAME_POOL_H_ #define MEDIA_GPU_CHROMEOS_VDA_VIDEO_FRAME_POOL_H_ #include <optional> #include "base/containers/queue.h" #include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/task/sequenced_task_runner.h" #include "media/gpu/chromeos/chromeos_status.h" #include "media/gpu/chromeos/dmabuf_video_frame_pool.h" #include "media/gpu/chromeos/fourcc.h" #include "media/gpu/chromeos/frame_resource.h" namespace base { class WaitableEvent; } namespace media { class GpuBufferLayout; // This class is used by VdVideoDecodeAccelerator, which adapts // VideoDecodeAccelerator to VideoDecoder interface. // The mission is to allocate and manage DMA-buf FrameResource by delegating the // requests of buffer allocation to a VideoDecodeAccelerator instance, and // provide FrameResource to the VideoDecoder instance. // The communication with VdVideoDecodeAccelerator, which inherits // VdaDelegate, is executed on |vda_task_runner_|, and the communication with // VideoDecoder instance is on |parent_task_runner_|. class VdaVideoFramePool : public DmabufVideoFramePool { … }; } // namespace media #endif // MEDIA_GPU_CHROMEOS_VDA_VIDEO_FRAME_POOL_H_