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:
parent
6719017d19
commit
04d5f1d2e5
@ -37,10 +37,10 @@ static const int kMinFramesNeededToScale = 2 * 30;
|
||||
|
||||
} // namespace
|
||||
|
||||
class QualityScaler::CheckQPTask : public rtc::QueuedTask {
|
||||
class QualityScaler::CheckQpTask : public rtc::QueuedTask {
|
||||
public:
|
||||
explicit CheckQPTask(QualityScaler* scaler) : scaler_(scaler) {
|
||||
RTC_LOG(LS_INFO) << "Created CheckQPTask. Scheduling on queue...";
|
||||
explicit CheckQpTask(QualityScaler* scaler) : scaler_(scaler) {
|
||||
RTC_LOG(LS_INFO) << "Created CheckQpTask. Scheduling on queue...";
|
||||
rtc::TaskQueue::Current()->PostDelayedTask(
|
||||
std::unique_ptr<rtc::QueuedTask>(this), scaler_->GetSamplingPeriodMs());
|
||||
}
|
||||
@ -55,7 +55,7 @@ class QualityScaler::CheckQPTask : public rtc::QueuedTask {
|
||||
RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
|
||||
if (stop_)
|
||||
return true; // TaskQueue will free this task.
|
||||
scaler_->CheckQP();
|
||||
scaler_->CheckQp();
|
||||
rtc::TaskQueue::Current()->PostDelayedTask(
|
||||
std::unique_ptr<rtc::QueuedTask>(this), scaler_->GetSamplingPeriodMs());
|
||||
return false; // Retain the task in order to reuse it.
|
||||
@ -84,7 +84,7 @@ QualityScaler::QualityScaler(AdaptationObserverInterface* observer,
|
||||
framedrop_percent_(5 * 30) {
|
||||
RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
|
||||
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
|
||||
<< ", high: " << thresholds_.high;
|
||||
}
|
||||
@ -105,13 +105,13 @@ void QualityScaler::ReportDroppedFrame() {
|
||||
framedrop_percent_.AddSample(100);
|
||||
}
|
||||
|
||||
void QualityScaler::ReportQP(int qp) {
|
||||
void QualityScaler::ReportQp(int qp) {
|
||||
RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
|
||||
framedrop_percent_.AddSample(0);
|
||||
average_qp_.AddSample(qp);
|
||||
}
|
||||
|
||||
void QualityScaler::CheckQP() {
|
||||
void QualityScaler::CheckQp() {
|
||||
RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
|
||||
// Should be set through InitEncode -> Should be set by now.
|
||||
RTC_DCHECK_GE(thresholds_.low, 0);
|
||||
@ -125,7 +125,7 @@ void QualityScaler::CheckQP() {
|
||||
const rtc::Optional<int> drop_rate = framedrop_percent_.GetAverage();
|
||||
if (drop_rate && *drop_rate >= kFramedropPercentThreshold) {
|
||||
RTC_LOG(LS_INFO) << "Reporting high QP, framedrop percent " << *drop_rate;
|
||||
ReportQPHigh();
|
||||
ReportQpHigh();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -134,24 +134,24 @@ void QualityScaler::CheckQP() {
|
||||
if (avg_qp) {
|
||||
RTC_LOG(LS_INFO) << "Checking average QP " << *avg_qp;
|
||||
if (*avg_qp > thresholds_.high) {
|
||||
ReportQPHigh();
|
||||
ReportQpHigh();
|
||||
return;
|
||||
}
|
||||
if (*avg_qp <= thresholds_.low) {
|
||||
// QP has been low. We want to try a higher resolution.
|
||||
ReportQPLow();
|
||||
ReportQpLow();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void QualityScaler::ReportQPLow() {
|
||||
void QualityScaler::ReportQpLow() {
|
||||
RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
|
||||
ClearSamples();
|
||||
observer_->AdaptUp(AdaptationObserverInterface::AdaptReason::kQuality);
|
||||
}
|
||||
|
||||
void QualityScaler::ReportQPHigh() {
|
||||
void QualityScaler::ReportQpHigh() {
|
||||
RTC_DCHECK_CALLED_SEQUENTIALLY(&task_checker_);
|
||||
ClearSamples();
|
||||
observer_->AdaptDown(AdaptationObserverInterface::AdaptReason::kQuality);
|
||||
|
||||
@ -52,7 +52,7 @@ class QualityScaler {
|
||||
// Should be called each time the encoder drops a frame.
|
||||
void ReportDroppedFrame();
|
||||
// Inform the QualityScaler of the last seen QP.
|
||||
void ReportQP(int qp);
|
||||
void ReportQp(int qp);
|
||||
|
||||
// The following members declared protected for testing purposes.
|
||||
protected:
|
||||
@ -61,14 +61,14 @@ class QualityScaler {
|
||||
int64_t sampling_period_ms);
|
||||
|
||||
private:
|
||||
class CheckQPTask;
|
||||
void CheckQP();
|
||||
class CheckQpTask;
|
||||
void CheckQp();
|
||||
void ClearSamples();
|
||||
void ReportQPLow();
|
||||
void ReportQPHigh();
|
||||
void ReportQpLow();
|
||||
void ReportQpHigh();
|
||||
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_);
|
||||
rtc::SequencedTaskChecker task_checker_;
|
||||
|
||||
|
||||
@ -90,19 +90,19 @@ class QualityScalerTest : public ::testing::Test {
|
||||
for (int i = 0; i < kFramerate * 5; ++i) {
|
||||
switch (scale_direction) {
|
||||
case kKeepScaleAboveLowQp:
|
||||
qs_->ReportQP(kLowQp + 1);
|
||||
qs_->ReportQp(kLowQp + 1);
|
||||
break;
|
||||
case kScaleUp:
|
||||
qs_->ReportQP(kLowQp);
|
||||
qs_->ReportQp(kLowQp);
|
||||
break;
|
||||
case kScaleDown:
|
||||
qs_->ReportDroppedFrame();
|
||||
break;
|
||||
case kKeepScaleAtHighQp:
|
||||
qs_->ReportQP(kHighQp);
|
||||
qs_->ReportQp(kHighQp);
|
||||
break;
|
||||
case kScaleDownAboveHighQp:
|
||||
qs_->ReportQP(kHighQp + 1);
|
||||
qs_->ReportQp(kHighQp + 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -139,7 +139,7 @@ TEST_F(QualityScalerTest, DownscalesAfterTwoThirdsFramedrop) {
|
||||
for (int i = 0; i < kFramerate * 5; ++i) {
|
||||
qs_->ReportDroppedFrame();
|
||||
qs_->ReportDroppedFrame();
|
||||
qs_->ReportQP(kHighQp);
|
||||
qs_->ReportQp(kHighQp);
|
||||
}
|
||||
});
|
||||
EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs));
|
||||
@ -151,7 +151,7 @@ TEST_F(QualityScalerTest, DoesNotDownscaleAfterHalfFramedrop) {
|
||||
DO_SYNC(q_, {
|
||||
for (int i = 0; i < kFramerate * 5; ++i) {
|
||||
qs_->ReportDroppedFrame();
|
||||
qs_->ReportQP(kHighQp);
|
||||
qs_->ReportQp(kHighQp);
|
||||
}
|
||||
});
|
||||
EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs));
|
||||
@ -188,13 +188,13 @@ TEST_F(QualityScalerTest, DoesNotScaleUntilEnoughFramesObserved) {
|
||||
DO_SYNC(q_, {
|
||||
// Not enough frames to make a decision.
|
||||
for (int i = 0; i < kMinFramesNeededToScale - 1; ++i) {
|
||||
qs_->ReportQP(kLowQp);
|
||||
qs_->ReportQp(kLowQp);
|
||||
}
|
||||
});
|
||||
EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs));
|
||||
DO_SYNC(q_, {
|
||||
// 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_EQ(0, observer_->adapt_down_events_);
|
||||
@ -203,7 +203,7 @@ TEST_F(QualityScalerTest, DoesNotScaleUntilEnoughFramesObserved) {
|
||||
// Samples should be cleared after an adapt request.
|
||||
DO_SYNC(q_, {
|
||||
// Not enough frames to make a decision.
|
||||
qs_->ReportQP(kLowQp);
|
||||
qs_->ReportQp(kLowQp);
|
||||
});
|
||||
EXPECT_FALSE(observer_->event.Wait(kDefaultTimeoutMs));
|
||||
EXPECT_EQ(0, observer_->adapt_down_events_);
|
||||
@ -213,7 +213,7 @@ TEST_F(QualityScalerTest, DoesNotScaleUntilEnoughFramesObserved) {
|
||||
TEST_F(QualityScalerTest, ScalesDownAndBackUpWithMinFramesNeeded) {
|
||||
DO_SYNC(q_, {
|
||||
for (int i = 0; i < kMinFramesNeededToScale; ++i) {
|
||||
qs_->ReportQP(kHighQp + 1);
|
||||
qs_->ReportQp(kHighQp + 1);
|
||||
}
|
||||
});
|
||||
EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs));
|
||||
@ -222,7 +222,7 @@ TEST_F(QualityScalerTest, ScalesDownAndBackUpWithMinFramesNeeded) {
|
||||
// Samples cleared.
|
||||
DO_SYNC(q_, {
|
||||
for (int i = 0; i < kMinFramesNeededToScale; ++i) {
|
||||
qs_->ReportQP(kLowQp);
|
||||
qs_->ReportQp(kLowQp);
|
||||
}
|
||||
});
|
||||
EXPECT_TRUE(observer_->event.Wait(kDefaultTimeoutMs));
|
||||
|
||||
@ -891,7 +891,7 @@ EncodedImageCallback::Result VideoStreamEncoder::OnEncodedImage(
|
||||
overuse_detector_->FrameSent(timestamp, time_sent_us, capture_time_us,
|
||||
encode_duration_us);
|
||||
if (quality_scaler_ && qp >= 0)
|
||||
quality_scaler_->ReportQP(qp);
|
||||
quality_scaler_->ReportQp(qp);
|
||||
});
|
||||
|
||||
return result;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user