Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: webrtc/common_video/libyuv/webrtc_libyuv.cc

Issue 2020593002: Refactor scaling. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Trivial rebase. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/common_video/libyuv/scaler_unittest.cc ('k') | webrtc/common_video/video_frame.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 return -1; 123 return -1;
124 } 124 }
125 if (PrintPlane(frame.video_frame_buffer()->DataV(), 125 if (PrintPlane(frame.video_frame_buffer()->DataV(),
126 chroma_width, chroma_height, 126 chroma_width, chroma_height,
127 frame.video_frame_buffer()->StrideV(), file) < 0) { 127 frame.video_frame_buffer()->StrideV(), file) < 0) {
128 return -1; 128 return -1;
129 } 129 }
130 return 0; 130 return 0;
131 } 131 }
132 132
133 int ExtractBuffer(const VideoFrame& input_frame, size_t size, uint8_t* buffer) { 133 int ExtractBuffer(const rtc::scoped_refptr<VideoFrameBuffer>& input_frame,
134 size_t size,
135 uint8_t* buffer) {
134 assert(buffer); 136 assert(buffer);
135 if (input_frame.IsZeroSize()) 137 if (!input_frame)
136 return -1; 138 return -1;
137 size_t length = 139 int width = input_frame->width();
138 CalcBufferSize(kI420, input_frame.width(), input_frame.height()); 140 int height = input_frame->height();
141 size_t length = CalcBufferSize(kI420, width, height);
139 if (size < length) { 142 if (size < length) {
140 return -1; 143 return -1;
141 } 144 }
142 145
143 int width = input_frame.video_frame_buffer()->width();
144 int height = input_frame.video_frame_buffer()->height();
145 int chroma_width = (width + 1) / 2; 146 int chroma_width = (width + 1) / 2;
146 int chroma_height = (height + 1) / 2; 147 int chroma_height = (height + 1) / 2;
147 148
148 libyuv::I420Copy(input_frame.video_frame_buffer()->DataY(), 149 libyuv::I420Copy(input_frame->DataY(),
149 input_frame.video_frame_buffer()->StrideY(), 150 input_frame->StrideY(),
150 input_frame.video_frame_buffer()->DataU(), 151 input_frame->DataU(),
151 input_frame.video_frame_buffer()->StrideU(), 152 input_frame->StrideU(),
152 input_frame.video_frame_buffer()->DataV(), 153 input_frame->DataV(),
153 input_frame.video_frame_buffer()->StrideV(), 154 input_frame->StrideV(),
154 buffer, width, 155 buffer, width,
155 buffer + width*height, chroma_width, 156 buffer + width*height, chroma_width,
156 buffer + width*height + chroma_width*chroma_height, 157 buffer + width*height + chroma_width*chroma_height,
157 chroma_width, 158 chroma_width,
158 width, height); 159 width, height);
159 160
160 return static_cast<int>(length); 161 return static_cast<int>(length);
161 } 162 }
162 163
164 int ExtractBuffer(const VideoFrame& input_frame, size_t size, uint8_t* buffer) {
165 return ExtractBuffer(input_frame.video_frame_buffer(), size, buffer);
166 }
163 167
164 int ConvertNV12ToRGB565(const uint8_t* src_frame, 168 int ConvertNV12ToRGB565(const uint8_t* src_frame,
165 uint8_t* dst_frame, 169 uint8_t* dst_frame,
166 int width, int height) { 170 int width, int height) {
167 int abs_height = (height < 0) ? -height : height; 171 int abs_height = (height < 0) ? -height : height;
168 const uint8_t* yplane = src_frame; 172 const uint8_t* yplane = src_frame;
169 const uint8_t* uvInterlaced = src_frame + (width * abs_height); 173 const uint8_t* uvInterlaced = src_frame + (width * abs_height);
170 174
171 return libyuv::NV12ToRGB565(yplane, width, 175 return libyuv::NV12ToRGB565(yplane, width,
172 uvInterlaced, (width + 1) >> 1, 176 uvInterlaced, (width + 1) >> 1,
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 ref_frame->video_frame_buffer()->StrideV(), 335 ref_frame->video_frame_buffer()->StrideV(),
332 test_frame->video_frame_buffer()->DataY(), 336 test_frame->video_frame_buffer()->DataY(),
333 test_frame->video_frame_buffer()->StrideY(), 337 test_frame->video_frame_buffer()->StrideY(),
334 test_frame->video_frame_buffer()->DataU(), 338 test_frame->video_frame_buffer()->DataU(),
335 test_frame->video_frame_buffer()->StrideU(), 339 test_frame->video_frame_buffer()->StrideU(),
336 test_frame->video_frame_buffer()->DataV(), 340 test_frame->video_frame_buffer()->DataV(),
337 test_frame->video_frame_buffer()->StrideV(), 341 test_frame->video_frame_buffer()->StrideV(),
338 test_frame->width(), test_frame->height()); 342 test_frame->width(), test_frame->height());
339 } 343 }
340 } // namespace webrtc 344 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/common_video/libyuv/scaler_unittest.cc ('k') | webrtc/common_video/video_frame.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698