Delete wrapper API ConvertToI420 for YUV conversion to I420
Directly use the libyuv API for YUV conversion to I420 Bug: None Change-Id: Iea6e8fa8f7179c800ea850305170002398cb00dc Reviewed-on: https://webrtc-review.googlesource.com/17260 Commit-Queue: Niels Moller <nisse@webrtc.org> Reviewed-by: Åsa Persson <asapersson@webrtc.org> Reviewed-by: Alex Glaznev <glaznev@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20681}
This commit is contained in:
committed by
Commit Bot
parent
fe73d6ab87
commit
12e555b715
@ -15,6 +15,7 @@
|
||||
|
||||
#include "api/video/i420_buffer.h"
|
||||
#include "common_video/libyuv/include/webrtc_libyuv.h"
|
||||
#include "libyuv.h" // NOLINT
|
||||
|
||||
namespace {
|
||||
const size_t kI420HeaderSize = 4;
|
||||
@ -204,8 +205,16 @@ int I420Decoder::Decode(const EncodedImage& inputImage,
|
||||
I420Buffer::Create(_width, _height);
|
||||
|
||||
// Converting from raw buffer I420Buffer.
|
||||
int ret = ConvertToI420(VideoType::kI420, buffer, 0, 0, _width, _height, 0,
|
||||
kVideoRotation_0, frame_buffer.get());
|
||||
int y_stride = 16 * ((_width + 15) / 16);
|
||||
int uv_stride = 16 * ((_width + 31) / 32);
|
||||
int y_size = y_stride * height;
|
||||
int u_size = uv_stride * frame_buffer->ChromaHeight();
|
||||
int ret = libyuv::I420Copy(
|
||||
buffer, y_stride, buffer + y_size, uv_stride, buffer + y_size + u_size,
|
||||
uv_stride, frame_buffer.get()->MutableDataY(),
|
||||
frame_buffer.get()->StrideY(), frame_buffer.get()->MutableDataU(),
|
||||
frame_buffer.get()->StrideU(), frame_buffer.get()->MutableDataV(),
|
||||
frame_buffer.get()->StrideV(), _width, _height);
|
||||
if (ret < 0) {
|
||||
return WEBRTC_VIDEO_CODEC_MEMORY;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user