#include "media/gpu/chromeos/image_processor_backend.h"
#include <memory>
#include <ostream>
#include <sstream>
#include "base/functional/bind.h"
#include "base/strings/stringprintf.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/task_traits.h"
#include "media/gpu/chromeos/video_frame_resource.h"
#include "media/gpu/macros.h"
namespace media {
namespace {
template <class T>
std::string VectorToString(const std::vector<T>& vec) { … }
void FrameResourceToFrameReadyCB(ImageProcessorBackend::FrameReadyCB callback,
scoped_refptr<FrameResource> frame) { … }
}
ImageProcessorBackend::PortConfig::PortConfig(const PortConfig&) = default;
ImageProcessorBackend::PortConfig::PortConfig(
Fourcc fourcc,
const gfx::Size& size,
const std::vector<ColorPlaneLayout>& planes,
const gfx::Rect& visible_rect,
VideoFrame::StorageType storage_type)
: … { … }
ImageProcessorBackend::PortConfig::~PortConfig() = default;
std::string ImageProcessorBackend::PortConfig::ToString() const { … }
ImageProcessorBackend::ImageProcessorBackend(
const PortConfig& input_config,
const PortConfig& output_config,
OutputMode output_mode,
ErrorCB error_cb,
scoped_refptr<base::SequencedTaskRunner> backend_task_runner)
: … { … }
ImageProcessorBackend::~ImageProcessorBackend() = default;
void ImageProcessorBackend::Destroy() { … }
void ImageProcessorBackend::Process(scoped_refptr<VideoFrame> input_frame,
scoped_refptr<VideoFrame> output_frame,
FrameReadyCB cb) { … }
void ImageProcessorBackend::ProcessLegacyFrame(
scoped_refptr<FrameResource> frame,
LegacyFrameResourceReadyCB cb) { … }
void ImageProcessorBackend::Reset() { … }
bool ImageProcessorBackend::needs_linear_output_buffers() const { … }
bool ImageProcessorBackend::supports_incoherent_buffers() const { … }
}
namespace std {
void default_delete<media::ImageProcessorBackend>::operator()(
media::ImageProcessorBackend* ptr) const { … }
}