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

Side by Side Diff: webrtc/modules/video_coding/codecs/test/videoprocessor.cc

Issue 2906053002: Update I420Buffer to new VideoFrameBuffer interface (Closed)
Patch Set: Make const versions of Get functions Created 3 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) 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 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 int VideoProcessorImpl::NumberSpatialResizes() { 239 int VideoProcessorImpl::NumberSpatialResizes() {
240 return num_spatial_resizes_; 240 return num_spatial_resizes_;
241 } 241 }
242 242
243 bool VideoProcessorImpl::ProcessFrame(int frame_number) { 243 bool VideoProcessorImpl::ProcessFrame(int frame_number) {
244 RTC_DCHECK_GE(frame_number, 0); 244 RTC_DCHECK_GE(frame_number, 0);
245 RTC_DCHECK_LE(frame_number, frame_infos_.size()) 245 RTC_DCHECK_LE(frame_number, frame_infos_.size())
246 << "Must process frames without gaps."; 246 << "Must process frames without gaps.";
247 RTC_DCHECK(initialized_) << "Attempting to use uninitialized VideoProcessor"; 247 RTC_DCHECK(initialized_) << "Attempting to use uninitialized VideoProcessor";
248 248
249 rtc::scoped_refptr<VideoFrameBuffer> buffer( 249 rtc::scoped_refptr<I420BufferInterface> buffer(
250 analysis_frame_reader_->ReadFrame()); 250 analysis_frame_reader_->ReadFrame());
251 251
252 if (!buffer) { 252 if (!buffer) {
253 // Last frame has been reached. 253 // Last frame has been reached.
254 return false; 254 return false;
255 } 255 }
256 256
257 if (source_frame_writer_) { 257 if (source_frame_writer_) {
258 size_t length = 258 size_t length =
259 CalcBufferSize(VideoType::kI420, buffer->width(), buffer->height()); 259 CalcBufferSize(VideoType::kI420, buffer->width(), buffer->height());
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 // Check if codec size is different from the original size, and if so, 458 // Check if codec size is different from the original size, and if so,
459 // scale back to original size. This is needed for the PSNR and SSIM 459 // scale back to original size. This is needed for the PSNR and SSIM
460 // calculations. 460 // calculations.
461 size_t extracted_length; 461 size_t extracted_length;
462 rtc::Buffer extracted_buffer; 462 rtc::Buffer extracted_buffer;
463 if (image.width() != config_.codec_settings->width || 463 if (image.width() != config_.codec_settings->width ||
464 image.height() != config_.codec_settings->height) { 464 image.height() != config_.codec_settings->height) {
465 rtc::scoped_refptr<I420Buffer> scaled_buffer(I420Buffer::Create( 465 rtc::scoped_refptr<I420Buffer> scaled_buffer(I420Buffer::Create(
466 config_.codec_settings->width, config_.codec_settings->height)); 466 config_.codec_settings->width, config_.codec_settings->height));
467 // Should be the same aspect ratio, no cropping needed. 467 // Should be the same aspect ratio, no cropping needed.
468 if (image.video_frame_buffer()->native_handle()) { 468 scaled_buffer->ScaleFrom(*image.video_frame_buffer()->ToI420());
469 scaled_buffer->ScaleFrom(
470 *image.video_frame_buffer()->NativeToI420Buffer());
471 } else {
472 scaled_buffer->ScaleFrom(*image.video_frame_buffer());
473 }
474 469
475 size_t length = CalcBufferSize(VideoType::kI420, scaled_buffer->width(), 470 size_t length = CalcBufferSize(VideoType::kI420, scaled_buffer->width(),
476 scaled_buffer->height()); 471 scaled_buffer->height());
477 extracted_buffer.SetSize(length); 472 extracted_buffer.SetSize(length);
478 extracted_length = 473 extracted_length =
479 ExtractBuffer(scaled_buffer, length, extracted_buffer.data()); 474 ExtractBuffer(scaled_buffer, length, extracted_buffer.data());
480 } else { 475 } else {
481 // No resize. 476 // No resize.
482 size_t length = 477 size_t length =
483 CalcBufferSize(VideoType::kI420, image.width(), image.height()); 478 CalcBufferSize(VideoType::kI420, image.width(), image.height());
484 extracted_buffer.SetSize(length); 479 extracted_buffer.SetSize(length);
485 if (image.video_frame_buffer()->native_handle()) { 480 extracted_length = ExtractBuffer(image.video_frame_buffer()->ToI420(),
486 extracted_length = 481 length, extracted_buffer.data());
487 ExtractBuffer(image.video_frame_buffer()->NativeToI420Buffer(),
488 length, extracted_buffer.data());
489 } else {
490 extracted_length = ExtractBuffer(image.video_frame_buffer(), length,
491 extracted_buffer.data());
492 }
493 } 482 }
494 483
495 RTC_DCHECK_EQ(extracted_length, analysis_frame_writer_->FrameLength()); 484 RTC_DCHECK_EQ(extracted_length, analysis_frame_writer_->FrameLength());
496 RTC_CHECK(analysis_frame_writer_->WriteFrame(extracted_buffer.data())); 485 RTC_CHECK(analysis_frame_writer_->WriteFrame(extracted_buffer.data()));
497 if (decoded_frame_writer_) { 486 if (decoded_frame_writer_) {
498 RTC_DCHECK_EQ(extracted_length, decoded_frame_writer_->FrameLength()); 487 RTC_DCHECK_EQ(extracted_length, decoded_frame_writer_->FrameLength());
499 RTC_CHECK(decoded_frame_writer_->WriteFrame(extracted_buffer.data())); 488 RTC_CHECK(decoded_frame_writer_->WriteFrame(extracted_buffer.data()));
500 } 489 }
501 490
502 last_decoded_frame_buffer_ = std::move(extracted_buffer); 491 last_decoded_frame_buffer_ = std::move(extracted_buffer);
503 } 492 }
504 493
505 } // namespace test 494 } // namespace test
506 } // namespace webrtc 495 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/media/base/videocapturer.cc ('k') | webrtc/modules/video_coding/codecs/vp8/test/vp8_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698