#include "media/gpu/chromeos/vda_video_frame_pool.h"
#include "base/functional/bind.h"
#include "base/memory/scoped_refptr.h"
#include "base/synchronization/waitable_event.h"
#include "base/task/sequenced_task_runner.h"
#include "media/gpu/chromeos/gpu_buffer_layout.h"
#include "media/gpu/macros.h"
#include "media/media_buildflags.h"
namespace media {
VdaVideoFramePool::VdaVideoFramePool(
base::WeakPtr<VdaDelegate> vda,
scoped_refptr<base::SequencedTaskRunner> vda_task_runner)
: … { … }
VdaVideoFramePool::~VdaVideoFramePool() { … }
CroStatus::Or<GpuBufferLayout> VdaVideoFramePool::Initialize(
const Fourcc& fourcc,
const gfx::Size& coded_size,
const gfx::Rect& visible_rect,
const gfx::Size& natural_size,
size_t max_num_frames,
bool use_protected,
bool use_linear_buffers) { … }
void VdaVideoFramePool::OnRequestFramesDone(
base::WaitableEvent* done,
CroStatus::Or<GpuBufferLayout>* layout,
CroStatus::Or<GpuBufferLayout> layout_value) { … }
void VdaVideoFramePool::ImportFrameThunk(
scoped_refptr<base::SequencedTaskRunner> task_runner,
std::optional<base::WeakPtr<VdaVideoFramePool>> weak_this,
scoped_refptr<FrameResource> frame) { … }
void VdaVideoFramePool::ImportFrame(scoped_refptr<FrameResource> frame) { … }
scoped_refptr<FrameResource> VdaVideoFramePool::GetFrame() { … }
VideoFrame::StorageType VdaVideoFramePool::GetFrameStorageType() const { … }
bool VdaVideoFramePool::IsExhausted() { … }
void VdaVideoFramePool::NotifyWhenFrameAvailable(base::OnceClosure cb) { … }
void VdaVideoFramePool::ReleaseAllFrames() { … }
std::optional<GpuBufferLayout> VdaVideoFramePool::GetGpuBufferLayout() { … }
void VdaVideoFramePool::CallFrameAvailableCbIfNeeded() { … }
}