| Index: webrtc/common_video/libyuv/include/webrtc_libyuv.h
|
| diff --git a/webrtc/common_video/libyuv/include/webrtc_libyuv.h b/webrtc/common_video/libyuv/include/webrtc_libyuv.h
|
| index ec3720e442bc9621fb9e7cdb6696c964073051f7..6c7fab19c4fd8936d4f9d0eaf6965e61a3186dbd 100644
|
| --- a/webrtc/common_video/libyuv/include/webrtc_libyuv.h
|
| +++ b/webrtc/common_video/libyuv/include/webrtc_libyuv.h
|
| @@ -16,6 +16,7 @@
|
| #define WEBRTC_COMMON_VIDEO_LIBYUV_INCLUDE_WEBRTC_LIBYUV_H_
|
|
|
| #include <stdio.h>
|
| +#include <vector>
|
|
|
| #include "webrtc/common_types.h" // RawVideoTypes.
|
| #include "webrtc/common_video/rotation.h"
|
| @@ -123,6 +124,22 @@ double I420PSNR(const VideoFrame* ref_frame, const VideoFrame* test_frame);
|
| // Compute SSIM for an I420 frame (all planes).
|
| double I420SSIM(const VideoFrame* ref_frame, const VideoFrame* test_frame);
|
|
|
| +// Helper class for directly converting and scaling NV12 to I420. The Y-plane
|
| +// will be scaled directly to the I420 destination, which makes this faster
|
| +// than separate NV12->I420 + I420->I420 scaling.
|
| +class NV12ToI420Scaler {
|
| + public:
|
| + void 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);
|
| + private:
|
| + std::vector<uint8_t> tmp_uv_planes_;
|
| +};
|
| +
|
| } // namespace webrtc
|
|
|
| #endif // WEBRTC_COMMON_VIDEO_LIBYUV_INCLUDE_WEBRTC_LIBYUV_H_
|
|
|