#include "components/viz/service/frame_sinks/gmb_video_frame_pool_context_provider_impl.h"
#include <memory>
#include <utility>
#include "base/functional/callback.h"
#include "base/synchronization/waitable_event.h"
#include "base/task/bind_post_task.h"
#include "base/task/sequenced_task_runner.h"
#include "components/viz/service/display_embedder/in_process_gpu_memory_buffer_manager.h"
#include "components/viz/service/gl/gpu_service_impl.h"
#include "gpu/command_buffer/client/client_shared_image.h"
#include "gpu/command_buffer/service/scheduler_sequence.h"
#include "gpu/command_buffer/service/shared_context_state.h"
#include "gpu/command_buffer/service/shared_image/shared_image_format_service_utils.h"
#include "gpu/command_buffer/service/shared_image_interface_in_process.h"
#include "gpu/ipc/common/gpu_client_ids.h"
#include "gpu/ipc/service/gpu_memory_buffer_factory.h"
namespace viz {
class GmbVideoFramePoolContext
: public media::RenderableGpuMemoryBufferVideoFramePool::Context,
public gpu::SharedContextState::ContextLostObserver { … };
GmbVideoFramePoolContextProviderImpl::GmbVideoFramePoolContextProviderImpl(
GpuServiceImpl* gpu_service,
InProcessGpuMemoryBufferManager* gpu_memory_buffer_manager,
gpu::GpuMemoryBufferFactory* gpu_memory_buffer_factory)
: … { … }
GmbVideoFramePoolContextProviderImpl::~GmbVideoFramePoolContextProviderImpl() =
default;
std::unique_ptr<media::RenderableGpuMemoryBufferVideoFramePool::Context>
GmbVideoFramePoolContextProviderImpl::CreateContext(
base::OnceClosure on_context_lost) { … }
}