QualityScaler: rename classes and methods from "QP" to "Qp".

Bug: none
Change-Id: Iea6d69149912a6804e2a54262e89114f10a49394
Reviewed-on: https://webrtc-review.googlesource.com/71482
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22970}
This commit is contained in:
Åsa Persson 2018-04-20 15:19:11 +02:00 committed by Commit Bot
parent 6719017d19
commit 04d5f1d2e5
4 changed files with 30 additions and 30 deletions

View File

@ -37,10 +37,10 @@ static const int kMinFramesNeededToScale = 2 * 30;
} // namespace } // namespace
class QualityScaler::CheckQPTask : public rtc::QueuedTask { class QualityScaler::CheckQpTask : public rtc::QueuedTask {
public: public:
explicit CheckQPTask(QualityScaler* scaler) : scaler_(scaler) { explicit CheckQpTask(QualityScaler* scaler) : scaler_(scaler) {
RTC_LOG(LS_INFO) << "Created CheckQPTask. Scheduling on queue..."; RTC_LOG(LS_INFO) << "Created CheckQpTask. Scheduling on queue...";
rtc::TaskQueue::Current()->PostDelayedTask( rtc::TaskQueue::Current()->PostDelayedTask(
std::unique_ptr<rtc::QueuedTask>(this), scaler_->GetSamplingPeriodMs()); std::unique_ptr<rtc::QueuedTask>(this), scaler_->GetSamplingPeriodMs());
} }
@ -55,7 +55,7 @@ class QualityScaler::CheckQPTask : public rtc::QueuedTask {
RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_); RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
if (stop_) if (stop_)
return true; // TaskQueue will free this task. return true; // TaskQueue will free this task.
scaler_->CheckQP(); scaler_->CheckQp();
rtc::TaskQueue::Current()->PostDelayedTask( rtc::TaskQueue::Current()->PostDelayedTask(
std::unique_ptr<rtc::QueuedTask>(this), scaler_->GetSamplingPeriodMs()); std::unique_ptr<rtc::QueuedTask>(this), scaler_->GetSamplingPeriodMs());
return false; // Retain the task in order to reuse it. return false; // Retain the task in order to reuse it.
@ -84,7 +84,7 @@ QualityScaler::QualityScaler(AdaptationObserverInterface* observer,
framedrop_percent_(5 * 30) { framedrop_percent_(5 * 30) {
RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_); RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
RTC_DCHECK(observer_ != nullptr); RTC_DCHECK(observer_ != nullptr);
check_qp_task_ = new CheckQPTask(this); check_qp_task_ = new CheckQpTask(this);
RTC_LOG(LS_INFO) << "QP thresholds: low: " << thresholds_.low RTC_LOG(LS_INFO) << "QP thresholds: low: " << thresholds_.low
<< ", high: " << thresholds_.high; << ", high: " << thresholds_.high;
} }
@ -105,13 +105,13 @@ void QualityScaler::ReportDroppedFrame() {
framedrop_percent_.AddSample(100); framedrop_percent_.AddSample(100);
} }
void QualityScaler::ReportQP(int qp) { void QualityScaler::ReportQp(int qp) {
RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_); RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
framedrop_percent_.AddSample(0); framedrop_percent_.AddSample(0);
average_qp_.AddSample(qp); average_qp_.AddSample(qp);
} }
void QualityScaler::CheckQP() { void QualityScaler::CheckQp() {
RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_); RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
// Should be set through InitEncode -> Should be set by now. // Should be set through InitEncode -> Should be set by now.
RTC_DCHECK_GE(thresholds_.low, 0); RTC_DCHECK_GE(thresholds_.low, 0);
@ -125,7 +125,7 @@ void QualityScaler::CheckQP() {
const rtc::Optional<int> drop_rate = framedrop_percent_.GetAverage(); const rtc::Optional<int> drop_rate = framedrop_percent_.GetAverage();
if (drop_rate && *drop_rate >= kFramedropPercentThreshold) { if (drop_rate && *drop_rate >= kFramedropPercentThreshold) {
RTC_LOG(LS_INFO) << "Reporting high QP, framedrop percent " << *drop_rate; RTC_LOG(LS_INFO) << "Reporting high QP, framedrop percent " << *drop_rate;
ReportQPHigh(); ReportQpHigh();
return; return;
} }
@ -134,24 +134,24 @@ void QualityScaler::CheckQP() {
if (avg_qp) { if (avg_qp) {
RTC_LOG(LS_INFO) << "Checking average QP " << *avg_qp; RTC_LOG(LS_INFO) << "Checking average QP " << *avg_qp;
if (*avg_qp > thresholds_.high) { if (*avg_qp > thresholds_.high) {
ReportQPHigh(); ReportQpHigh();
return; return;
} }
if (*avg_qp <= thresholds_.low) { if (*avg_qp <= thresholds_.low) {
// QP has been low. We want to try a higher resolution. // QP has been low. We want to try a higher resolution.
ReportQPLow(); ReportQpLow();
return; return;
} }
} }
} }
void QualityScaler::ReportQPLow() { void QualityScaler::ReportQpLow() {
RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_); RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
ClearSamples(); ClearSamples();
observer_->AdaptUp(AdaptationObserverInterface::AdaptReason::kQuality); observer_->AdaptUp(AdaptationObserverInterface::AdaptReason::kQuality);
} }
void QualityScaler::ReportQPHigh() { void QualityScaler::ReportQpHigh() {
RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_); RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
ClearSamples(); ClearSamples();
observer_->AdaptDown(AdaptationObserverInterface::AdaptReason::kQuality); observer_->AdaptDown(AdaptationObserverInterface::AdaptReason::kQuality);

View File

@ -52,7 +52,7 @@ class QualityScaler {
// Should be called each time the encoder drops a frame. // Should be called each time the encoder drops a frame.
void ReportDroppedFrame(); void ReportDroppedFrame();
// Inform the QualityScaler of the last seen QP. // Inform the QualityScaler of the last seen QP.
void ReportQP(int qp); void ReportQp(int qp);
// The following members declared protected for testing purposes. // The following members declared protected for testing purposes.
protected: protected:
@ -61,14 +61,14 @@ class QualityScaler {
int64_t sampling_period_ms); int64_t sampling_period_ms);
private: private:
class CheckQPTask; class CheckQpTask;
void CheckQP(); void CheckQp();
void ClearSamples(); void ClearSamples();
void ReportQPLow(); void ReportQpLow();
void ReportQPHigh(); void ReportQpHigh();
int64_t GetSamplingPeriodMs() const; int64_t GetSamplingPeriodMs() const;
CheckQPTask* check_qp_task_ RTC_GUARDED_BY(&task_checker_); CheckQpTask* check_qp_task_ RTC_GUARDED_BY(&task_checker_);
AdaptationObserverInterface* const observer_ RTC_GUARDED_BY(&task_checker_); AdaptationObserverInterface* const observer_ RTC_GUARDED_BY(&task_checker_);
rtc::SequencedTaskChecker task_checker_; rtc::SequencedTaskChecker task_checker_;

View File

@ -90,19 +90,19 @@ class QualityScalerTest : public ::testing::Test {
for (int i = 0; i < kFramerate * 5; ++i) { for (int i = 0; i < kFramerate * 5; ++i) {
switch (scale_direction) { switch (scale_direction) {
case kKeepScaleAboveLowQp: case kKeepScaleAboveLowQp:
qs_->ReportQP(kLowQp + 1); qs_->ReportQp(kLowQp + 1);
break; break;
case kScaleUp: case kScaleUp:
qs_->ReportQP(kLowQp); qs_->ReportQp(kLowQp);
break; break;
case kScaleDown: case kScaleDown:
qs_->ReportDroppedFrame(); qs_->ReportDroppedFrame();
break; break;
case kKeepScaleAtHighQp: case kKeepScaleAtHighQp:
qs_->ReportQP(kHighQp); qs_->ReportQp(kHighQp);
break; break;
case kScaleDownAboveHighQp: case kScaleDownAboveHighQp:
qs_->ReportQP(kHighQp + 1); qs_->ReportQp(kHighQp + 1);
break; break;
} }
} }
@ -139,7 +139,7 @@ TEST_F(QualityScalerTest, DownscalesAfterTwoThirdsFramedrop) {
for (int i = 0; i < kFramerate * 5; ++i) { for (int i = 0; i < kFramerate * 5; ++i) {
qs_->ReportDroppedFrame(); qs_->ReportDroppedFrame();
qs_->ReportDroppedFrame(); qs_->ReportDroppedFrame();
qs_->ReportQP(kHighQp); qs_->ReportQp(kHighQp);
} }
}); });
EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs));
@ -151,7 +151,7 @@ TEST_F(QualityScalerTest, DoesNotDownscaleAfterHalfFramedrop) {
DO_SYNC(q_, { DO_SYNC(q_, {
for (int i = 0; i < kFramerate * 5; ++i) { for (int i = 0; i < kFramerate * 5; ++i) {
qs_->ReportDroppedFrame(); qs_->ReportDroppedFrame();
qs_->ReportQP(kHighQp); qs_->ReportQp(kHighQp);
} }
}); });
EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs)); EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs));
@ -188,13 +188,13 @@ TEST_F(QualityScalerTest, DoesNotScaleUntilEnoughFramesObserved) {
DO_SYNC(q_, { DO_SYNC(q_, {
// Not enough frames to make a decision. // Not enough frames to make a decision.
for (int i = 0; i < kMinFramesNeededToScale - 1; ++i) { for (int i = 0; i < kMinFramesNeededToScale - 1; ++i) {
qs_->ReportQP(kLowQp); qs_->ReportQp(kLowQp);
} }
}); });
EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs)); EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs));
DO_SYNC(q_, { DO_SYNC(q_, {
// Send 1 more. Enough frames observed, should result in an adapt request. // Send 1 more. Enough frames observed, should result in an adapt request.
qs_->ReportQP(kLowQp); qs_->ReportQp(kLowQp);
}); });
EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs));
EXPECT_EQ(0, observer_->adapt_down_events_); EXPECT_EQ(0, observer_->adapt_down_events_);
@ -203,7 +203,7 @@ TEST_F(QualityScalerTest, DoesNotScaleUntilEnoughFramesObserved) {
// Samples should be cleared after an adapt request. // Samples should be cleared after an adapt request.
DO_SYNC(q_, { DO_SYNC(q_, {
// Not enough frames to make a decision. // Not enough frames to make a decision.
qs_->ReportQP(kLowQp); qs_->ReportQp(kLowQp);
}); });
EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs)); EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs));
EXPECT_EQ(0, observer_->adapt_down_events_); EXPECT_EQ(0, observer_->adapt_down_events_);
@ -213,7 +213,7 @@ TEST_F(QualityScalerTest, DoesNotScaleUntilEnoughFramesObserved) {
TEST_F(QualityScalerTest, ScalesDownAndBackUpWithMinFramesNeeded) { TEST_F(QualityScalerTest, ScalesDownAndBackUpWithMinFramesNeeded) {
DO_SYNC(q_, { DO_SYNC(q_, {
for (int i = 0; i < kMinFramesNeededToScale; ++i) { for (int i = 0; i < kMinFramesNeededToScale; ++i) {
qs_->ReportQP(kHighQp + 1); qs_->ReportQp(kHighQp + 1);
} }
}); });
EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs));
@ -222,7 +222,7 @@ TEST_F(QualityScalerTest, ScalesDownAndBackUpWithMinFramesNeeded) {
// Samples cleared. // Samples cleared.
DO_SYNC(q_, { DO_SYNC(q_, {
for (int i = 0; i < kMinFramesNeededToScale; ++i) { for (int i = 0; i < kMinFramesNeededToScale; ++i) {
qs_->ReportQP(kLowQp); qs_->ReportQp(kLowQp);
} }
}); });
EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs)); EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs));

View File

@ -891,7 +891,7 @@ EncodedImageCallback::Result VideoStreamEncoder::OnEncodedImage(
overuse_detector_->FrameSent(timestamp, time_sent_us, capture_time_us, overuse_detector_->FrameSent(timestamp, time_sent_us, capture_time_us,
encode_duration_us); encode_duration_us);
if (quality_scaler_ && qp >= 0) if (quality_scaler_ && qp >= 0)
quality_scaler_->ReportQP(qp); quality_scaler_->ReportQp(qp);
}); });
return result; return result;