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

Side by Side Diff: webrtc/video/vie_encoder.cc

Issue 2613713002: delete redundant members in ViEEncoder (Closed)
Patch Set: fix nit Created 3 years, 11 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/video/vie_encoder.h ('k') | no next file » | 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 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 max_data_payload_length_(0), 263 max_data_payload_length_(0),
264 nack_enabled_(false), 264 nack_enabled_(false),
265 last_observed_bitrate_bps_(0), 265 last_observed_bitrate_bps_(0),
266 encoder_paused_and_dropped_frame_(false), 266 encoder_paused_and_dropped_frame_(false),
267 has_received_sli_(false), 267 has_received_sli_(false),
268 picture_id_sli_(0), 268 picture_id_sli_(0),
269 has_received_rpsi_(false), 269 has_received_rpsi_(false),
270 picture_id_rpsi_(0), 270 picture_id_rpsi_(0),
271 clock_(Clock::GetRealTimeClock()), 271 clock_(Clock::GetRealTimeClock()),
272 scale_counter_(kScaleReasonSize, 0), 272 scale_counter_(kScaleReasonSize, 0),
273 last_frame_width_(0),
274 last_frame_height_(0),
275 last_captured_timestamp_(0), 273 last_captured_timestamp_(0),
276 delta_ntp_internal_ms_(clock_->CurrentNtpInMilliseconds() - 274 delta_ntp_internal_ms_(clock_->CurrentNtpInMilliseconds() -
277 clock_->TimeInMilliseconds()), 275 clock_->TimeInMilliseconds()),
278 last_frame_log_ms_(clock_->TimeInMilliseconds()), 276 last_frame_log_ms_(clock_->TimeInMilliseconds()),
279 captured_frame_count_(0), 277 captured_frame_count_(0),
280 dropped_frame_count_(0), 278 dropped_frame_count_(0),
281 bitrate_observer_(nullptr), 279 bitrate_observer_(nullptr),
282 encoder_queue_("EncoderQueue") { 280 encoder_queue_("EncoderQueue") {
283 encoder_queue_.PostTask([this] { 281 encoder_queue_.PostTask([this] {
284 RTC_DCHECK_RUN_ON(&encoder_queue_); 282 RTC_DCHECK_RUN_ON(&encoder_queue_);
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 if (pending_encoder_reconfiguration_) { 548 if (pending_encoder_reconfiguration_) {
551 ReconfigureEncoder(); 549 ReconfigureEncoder();
552 } 550 }
553 551
554 if (EncoderPaused()) { 552 if (EncoderPaused()) {
555 TraceFrameDropStart(); 553 TraceFrameDropStart();
556 return; 554 return;
557 } 555 }
558 TraceFrameDropEnd(); 556 TraceFrameDropEnd();
559 557
560 last_frame_height_ = video_frame.height();
561 last_frame_width_ = video_frame.width();
562
563 TRACE_EVENT_ASYNC_STEP0("webrtc", "Video", video_frame.render_time_ms(), 558 TRACE_EVENT_ASYNC_STEP0("webrtc", "Video", video_frame.render_time_ms(),
564 "Encode"); 559 "Encode");
565 560
566 overuse_detector_.FrameCaptured(video_frame, time_when_posted_in_ms); 561 overuse_detector_.FrameCaptured(video_frame, time_when_posted_in_ms);
567 562
568 if (codec_type_ == webrtc::kVideoCodecVP8) { 563 if (codec_type_ == webrtc::kVideoCodecVP8) {
569 webrtc::CodecSpecificInfo codec_specific_info; 564 webrtc::CodecSpecificInfo codec_specific_info;
570 codec_specific_info.codecType = webrtc::kVideoCodecVP8; 565 codec_specific_info.codecType = webrtc::kVideoCodecVP8;
571 566
572 codec_specific_info.codecSpecific.VP8.hasReceivedRPSI = has_received_rpsi_; 567 codec_specific_info.codecSpecific.VP8.hasReceivedRPSI = has_received_rpsi_;
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
696 stats_proxy_->OnSuspendChange(video_is_suspended); 691 stats_proxy_->OnSuspendChange(video_is_suspended);
697 } 692 }
698 } 693 }
699 694
700 void ViEEncoder::ScaleDown(ScaleReason reason) { 695 void ViEEncoder::ScaleDown(ScaleReason reason) {
701 RTC_DCHECK_RUN_ON(&encoder_queue_); 696 RTC_DCHECK_RUN_ON(&encoder_queue_);
702 if (!scaling_enabled_) 697 if (!scaling_enabled_)
703 return; 698 return;
704 // Request lower resolution if the current resolution is lower than last time 699 // Request lower resolution if the current resolution is lower than last time
705 // we asked for the resolution to be lowered. 700 // we asked for the resolution to be lowered.
706 int current_pixel_count = last_frame_height_ * last_frame_width_; 701 int current_pixel_count =
702 last_frame_info_ ? last_frame_info_->pixel_count() : 0;
707 if (max_pixel_count_ && current_pixel_count >= *max_pixel_count_) 703 if (max_pixel_count_ && current_pixel_count >= *max_pixel_count_)
708 return; 704 return;
709 switch (reason) { 705 switch (reason) {
710 case kQuality: 706 case kQuality:
711 stats_proxy_->OnQualityRestrictedResolutionChanged( 707 stats_proxy_->OnQualityRestrictedResolutionChanged(
712 scale_counter_[reason] + 1); 708 scale_counter_[reason] + 1);
713 break; 709 break;
714 case kCpu: 710 case kCpu:
715 if (scale_counter_[reason] >= kMaxCpuDowngrades) 711 if (scale_counter_[reason] >= kMaxCpuDowngrades)
716 return; 712 return;
717 // Update stats accordingly. 713 // Update stats accordingly.
718 stats_proxy_->OnCpuRestrictedResolutionChanged(true); 714 stats_proxy_->OnCpuRestrictedResolutionChanged(true);
719 break; 715 break;
720 } 716 }
721 max_pixel_count_ = rtc::Optional<int>(current_pixel_count); 717 max_pixel_count_ = rtc::Optional<int>(current_pixel_count);
722 max_pixel_count_step_up_ = rtc::Optional<int>(); 718 max_pixel_count_step_up_ = rtc::Optional<int>();
723 ++scale_counter_[reason]; 719 ++scale_counter_[reason];
724 source_proxy_->RequestResolutionLowerThan(current_pixel_count); 720 source_proxy_->RequestResolutionLowerThan(current_pixel_count);
725 LOG(LS_INFO) << "Scaling down resolution."; 721 LOG(LS_INFO) << "Scaling down resolution.";
726 for (size_t i = 0; i < kScaleReasonSize; ++i) { 722 for (size_t i = 0; i < kScaleReasonSize; ++i) {
727 LOG(LS_INFO) << "Scaled " << scale_counter_[i] 723 LOG(LS_INFO) << "Scaled " << scale_counter_[i]
728 << " times for reason: " << (i ? "quality" : "cpu"); 724 << " times for reason: " << (i ? "cpu" : "quality");
729 } 725 }
730 } 726 }
731 727
732 void ViEEncoder::ScaleUp(ScaleReason reason) { 728 void ViEEncoder::ScaleUp(ScaleReason reason) {
733 RTC_DCHECK_RUN_ON(&encoder_queue_); 729 RTC_DCHECK_RUN_ON(&encoder_queue_);
734 if (scale_counter_[reason] == 0 || !scaling_enabled_) 730 if (scale_counter_[reason] == 0 || !scaling_enabled_)
735 return; 731 return;
736 // Only scale if resolution is higher than last time 732 // Only scale if resolution is higher than last time
737 // we requested higher resolution. 733 // we requested higher resolution.
738 int current_pixel_count = last_frame_height_ * last_frame_width_; 734 int current_pixel_count =
735 last_frame_info_ ? last_frame_info_->pixel_count() : 0;
739 if (current_pixel_count <= max_pixel_count_step_up_.value_or(0)) 736 if (current_pixel_count <= max_pixel_count_step_up_.value_or(0))
740 return; 737 return;
741 switch (reason) { 738 switch (reason) {
742 case kQuality: 739 case kQuality:
743 stats_proxy_->OnQualityRestrictedResolutionChanged( 740 stats_proxy_->OnQualityRestrictedResolutionChanged(
744 scale_counter_[reason] - 1); 741 scale_counter_[reason] - 1);
745 break; 742 break;
746 case kCpu: 743 case kCpu:
747 // Update stats accordingly. 744 // Update stats accordingly.
748 stats_proxy_->OnCpuRestrictedResolutionChanged(scale_counter_[reason] > 745 stats_proxy_->OnCpuRestrictedResolutionChanged(scale_counter_[reason] >
749 1); 746 1);
750 break; 747 break;
751 } 748 }
752 max_pixel_count_ = rtc::Optional<int>(); 749 max_pixel_count_ = rtc::Optional<int>();
753 max_pixel_count_step_up_ = rtc::Optional<int>(current_pixel_count); 750 max_pixel_count_step_up_ = rtc::Optional<int>(current_pixel_count);
754 --scale_counter_[reason]; 751 --scale_counter_[reason];
755 source_proxy_->RequestHigherResolutionThan(current_pixel_count); 752 source_proxy_->RequestHigherResolutionThan(current_pixel_count);
756 LOG(LS_INFO) << "Scaling up resolution."; 753 LOG(LS_INFO) << "Scaling up resolution.";
757 for (size_t i = 0; i < kScaleReasonSize; ++i) { 754 for (size_t i = 0; i < kScaleReasonSize; ++i) {
758 LOG(LS_INFO) << "Scaled " << scale_counter_[i] 755 LOG(LS_INFO) << "Scaled " << scale_counter_[i]
759 << " times for reason: " << (i ? "cpu" : "quality"); 756 << " times for reason: " << (i ? "cpu" : "quality");
760 } 757 }
761 } 758 }
762 759
763 } // namespace webrtc 760 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video/vie_encoder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698