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

Side by Side Diff: webrtc/common_video/video_frame_buffer.cc

Issue 2005733003: Refactor VideoDenoiser to work with I420Buffer, not VideoFrame. (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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 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 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 void* I420Buffer::native_handle() const { 180 void* I420Buffer::native_handle() const {
181 return nullptr; 181 return nullptr;
182 } 182 }
183 183
184 rtc::scoped_refptr<VideoFrameBuffer> I420Buffer::NativeToI420Buffer() { 184 rtc::scoped_refptr<VideoFrameBuffer> I420Buffer::NativeToI420Buffer() {
185 RTC_NOTREACHED(); 185 RTC_NOTREACHED();
186 return nullptr; 186 return nullptr;
187 } 187 }
188 188
189 rtc::scoped_refptr<I420Buffer> I420Buffer::Copy( 189 rtc::scoped_refptr<I420Buffer> I420Buffer::Copy(
190 const rtc::scoped_refptr<VideoFrameBuffer>& buffer) { 190 const rtc::scoped_refptr<VideoFrameBuffer>& source) {
191 int width = buffer->width(); 191 int width = source->width();
192 int height = buffer->height(); 192 int height = source->height();
193 rtc::scoped_refptr<I420Buffer> copy = 193 rtc::scoped_refptr<I420Buffer> target =
194 new rtc::RefCountedObject<I420Buffer>(width, height); 194 new rtc::RefCountedObject<I420Buffer>(width, height);
195 RTC_CHECK(libyuv::I420Copy(buffer->DataY(), buffer->StrideY(), 195 RTC_CHECK(libyuv::I420Copy(source->DataY(), source->StrideY(),
196 buffer->DataU(), buffer->StrideU(), 196 source->DataU(), source->StrideU(),
197 buffer->DataV(), buffer->StrideV(), 197 source->DataV(), source->StrideV(),
198 copy->MutableDataY(), copy->StrideY(), 198 target->MutableDataY(), target->StrideY(),
199 copy->MutableDataU(), copy->StrideU(), 199 target->MutableDataU(), target->StrideU(),
200 copy->MutableDataV(), copy->StrideV(), 200 target->MutableDataV(), target->StrideV(),
201 width, height) == 0); 201 width, height) == 0);
202 202
203 return copy; 203 return target;
204 } 204 }
205 205
206 void I420Buffer::SetToBlack() { 206 void I420Buffer::SetToBlack() {
207 RTC_CHECK(libyuv::I420Rect(MutableDataY(), StrideY(), 207 RTC_CHECK(libyuv::I420Rect(MutableDataY(), StrideY(),
208 MutableDataU(), StrideU(), 208 MutableDataU(), StrideU(),
209 MutableDataV(), StrideV(), 209 MutableDataV(), StrideV(),
210 0, 0, width(), height(), 210 0, 0, width(), height(),
211 0, 128, 128) == 0); 211 0, 128, 128) == 0);
212 } 212 }
213 213
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 CropAndScaleFrom( 258 CropAndScaleFrom(
259 src, 259 src,
260 (src->width() - crop_width) / 2, (src->height() - crop_height) / 2, 260 (src->width() - crop_width) / 2, (src->height() - crop_height) / 2,
261 crop_width, crop_height); 261 crop_width, crop_height);
262 } 262 }
263 263
264 void I420Buffer::ScaleFrom(const rtc::scoped_refptr<VideoFrameBuffer>& src) { 264 void I420Buffer::ScaleFrom(const rtc::scoped_refptr<VideoFrameBuffer>& src) {
265 CropAndScaleFrom(src, 0, 0, src->width(), src->height()); 265 CropAndScaleFrom(src, 0, 0, src->width(), src->height());
266 } 266 }
267 267
268 rtc::scoped_refptr<I420Buffer> I420Buffer::CopyKeepStride(
269 const rtc::scoped_refptr<VideoFrameBuffer>& source) {
270 int width = source->width();
271 int height = source->height();
272 int stride_y = source->StrideY();
273 int stride_u = source->StrideU();
274 int stride_v = source->StrideV();
275 rtc::scoped_refptr<I420Buffer> target =
276 new rtc::RefCountedObject<I420Buffer>(
277 width, height, stride_y, stride_u, stride_v);
278 RTC_CHECK(libyuv::I420Copy(source->DataY(), stride_y,
279 source->DataU(), stride_u,
280 source->DataV(), stride_v,
281 target->MutableDataY(), stride_y,
282 target->MutableDataU(), stride_u,
283 target->MutableDataV(), stride_v,
284 width, height) == 0);
285
286 return target;
287 }
288
268 NativeHandleBuffer::NativeHandleBuffer(void* native_handle, 289 NativeHandleBuffer::NativeHandleBuffer(void* native_handle,
269 int width, 290 int width,
270 int height) 291 int height)
271 : native_handle_(native_handle), width_(width), height_(height) { 292 : native_handle_(native_handle), width_(width), height_(height) {
272 RTC_DCHECK(native_handle != nullptr); 293 RTC_DCHECK(native_handle != nullptr);
273 RTC_DCHECK_GT(width, 0); 294 RTC_DCHECK_GT(width, 0);
274 RTC_DCHECK_GT(height, 0); 295 RTC_DCHECK_GT(height, 0);
275 } 296 }
276 297
277 int NativeHandleBuffer::width() const { 298 int NativeHandleBuffer::width() const {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 void* WrappedI420Buffer::native_handle() const { 388 void* WrappedI420Buffer::native_handle() const {
368 return nullptr; 389 return nullptr;
369 } 390 }
370 391
371 rtc::scoped_refptr<VideoFrameBuffer> WrappedI420Buffer::NativeToI420Buffer() { 392 rtc::scoped_refptr<VideoFrameBuffer> WrappedI420Buffer::NativeToI420Buffer() {
372 RTC_NOTREACHED(); 393 RTC_NOTREACHED();
373 return nullptr; 394 return nullptr;
374 } 395 }
375 396
376 } // namespace webrtc 397 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698