#include "common_video/libyuv/include/webrtc_libyuv.h"
#include <cstdint>
#include "api/video/i420_buffer.h"
#include "common_video/include/video_frame_buffer.h"
#include "rtc_base/checks.h"
#include "third_party/libyuv/include/libyuv.h"
namespace webrtc {
size_t CalcBufferSize(VideoType type, int width, int height) { … }
int ExtractBuffer(const rtc::scoped_refptr<I420BufferInterface>& input_frame,
size_t size,
uint8_t* buffer) { … }
int ExtractBuffer(const VideoFrame& input_frame, size_t size, uint8_t* buffer) { … }
int ConvertVideoType(VideoType video_type) { … }
int ConvertFromI420(const VideoFrame& src_frame,
VideoType dst_video_type,
int dst_sample_size,
uint8_t* dst_frame) { … }
rtc::scoped_refptr<I420ABufferInterface> ScaleI420ABuffer(
const I420ABufferInterface& buffer,
int target_width,
int target_height) { … }
rtc::scoped_refptr<I420BufferInterface> ScaleVideoFrameBuffer(
const I420BufferInterface& source,
int dst_width,
int dst_height) { … }
double I420SSE(const I420BufferInterface& ref_buffer,
const I420BufferInterface& test_buffer) { … }
double I420APSNR(const I420ABufferInterface& ref_buffer,
const I420ABufferInterface& test_buffer) { … }
double I420APSNR(const VideoFrame* ref_frame, const VideoFrame* test_frame) { … }
double I420PSNR(const I420BufferInterface& ref_buffer,
const I420BufferInterface& test_buffer) { … }
double I420PSNR(const VideoFrame* ref_frame, const VideoFrame* test_frame) { … }
double I420WeightedPSNR(const I420BufferInterface& ref_buffer,
const I420BufferInterface& test_buffer) { … }
double I420ASSIM(const I420ABufferInterface& ref_buffer,
const I420ABufferInterface& test_buffer) { … }
double I420ASSIM(const VideoFrame* ref_frame, const VideoFrame* test_frame) { … }
double I420SSIM(const I420BufferInterface& ref_buffer,
const I420BufferInterface& test_buffer) { … }
double I420SSIM(const VideoFrame* ref_frame, const VideoFrame* test_frame) { … }
void NV12Scale(uint8_t* tmp_buffer,
const uint8_t* src_y,
int src_stride_y,
const uint8_t* src_uv,
int src_stride_uv,
int src_width,
int src_height,
uint8_t* dst_y,
int dst_stride_y,
uint8_t* dst_uv,
int dst_stride_uv,
int dst_width,
int dst_height) { … }
NV12ToI420Scaler::NV12ToI420Scaler() = default;
NV12ToI420Scaler::~NV12ToI420Scaler() = default;
void NV12ToI420Scaler::NV12ToI420Scale(const uint8_t* src_y,
int src_stride_y,
const uint8_t* src_uv,
int src_stride_uv,
int src_width,
int src_height,
uint8_t* dst_y,
int dst_stride_y,
uint8_t* dst_u,
int dst_stride_u,
uint8_t* dst_v,
int dst_stride_v,
int dst_width,
int dst_height) { … }
}