Delete EncodedFrameObserver::OnEncodeTiming.
This callback was used only by the PrintSamplesToFile feature of video_quality_test, which looks like it has been broken for some time (due to mixup of capture time and ntp time). Bug: webrtc:8504 Change-Id: I7d2b55405caeffda582ae0d6fb0e7dfdfce4c5a9 Reviewed-on: https://webrtc-review.googlesource.com/31420 Commit-Queue: Stefan Holmer <stefan@webrtc.org> Reviewed-by: Erik Språng <sprang@webrtc.org> Reviewed-by: Stefan Holmer <stefan@webrtc.org> Cr-Commit-Position: refs/heads/master@{#21211}
This commit is contained in:
parent
0a37547033
commit
6b642f730c
@ -49,7 +49,6 @@ struct EncodedFrame {
|
|||||||
class EncodedFrameObserver {
|
class EncodedFrameObserver {
|
||||||
public:
|
public:
|
||||||
virtual void EncodedFrameCallback(const EncodedFrame& encoded_frame) = 0;
|
virtual void EncodedFrameCallback(const EncodedFrame& encoded_frame) = 0;
|
||||||
virtual void OnEncodeTiming(int64_t capture_ntp_ms, int encode_duration_ms) {}
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual ~EncodedFrameObserver() {}
|
virtual ~EncodedFrameObserver() {}
|
||||||
|
|||||||
@ -29,7 +29,6 @@ class MockVideoStreamEncoder : public VideoStreamEncoder {
|
|||||||
VideoSendStream::Config::EncoderSettings("fake", 0,
|
VideoSendStream::Config::EncoderSettings("fake", 0,
|
||||||
nullptr),
|
nullptr),
|
||||||
nullptr,
|
nullptr,
|
||||||
nullptr,
|
|
||||||
std::unique_ptr<OveruseFrameDetector>()) {}
|
std::unique_ptr<OveruseFrameDetector>()) {}
|
||||||
~MockVideoStreamEncoder() { Stop(); }
|
~MockVideoStreamEncoder() { Stop(); }
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,6 @@
|
|||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include "api/video/video_frame.h"
|
#include "api/video/video_frame.h"
|
||||||
#include "common_video/include/frame_callback.h"
|
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
#include "rtc_base/numerics/exp_filter.h"
|
#include "rtc_base/numerics/exp_filter.h"
|
||||||
@ -71,13 +70,11 @@ const auto kScaleReasonCpu = AdaptationObserverInterface::AdaptReason::kCpu;
|
|||||||
// captured frames).
|
// captured frames).
|
||||||
class SendProcessingUsage : public OveruseFrameDetector::ProcessingUsage {
|
class SendProcessingUsage : public OveruseFrameDetector::ProcessingUsage {
|
||||||
public:
|
public:
|
||||||
explicit SendProcessingUsage(const CpuOveruseOptions& options,
|
explicit SendProcessingUsage(const CpuOveruseOptions& options)
|
||||||
EncodedFrameObserver* encoder_timing)
|
|
||||||
: kWeightFactorFrameDiff(0.998f),
|
: kWeightFactorFrameDiff(0.998f),
|
||||||
kWeightFactorProcessing(0.995f),
|
kWeightFactorProcessing(0.995f),
|
||||||
kInitialSampleDiffMs(40.0f),
|
kInitialSampleDiffMs(40.0f),
|
||||||
options_(options),
|
options_(options),
|
||||||
encoder_timing_(encoder_timing),
|
|
||||||
count_(0),
|
count_(0),
|
||||||
last_processed_capture_time_us_(-1),
|
last_processed_capture_time_us_(-1),
|
||||||
max_sample_diff_ms_(kDefaultSampleDiffMs * kMaxSampleDiffMarginFactor),
|
max_sample_diff_ms_(kDefaultSampleDiffMs * kMaxSampleDiffMarginFactor),
|
||||||
@ -142,12 +139,7 @@ class SendProcessingUsage : public OveruseFrameDetector::ProcessingUsage {
|
|||||||
if (timing.last_send_us != -1) {
|
if (timing.last_send_us != -1) {
|
||||||
encode_duration_us.emplace(
|
encode_duration_us.emplace(
|
||||||
static_cast<int>(timing.last_send_us - timing.capture_us));
|
static_cast<int>(timing.last_send_us - timing.capture_us));
|
||||||
if (encoder_timing_) {
|
|
||||||
// TODO(nisse): Update encoder_timing_ to also use us units.
|
|
||||||
encoder_timing_->OnEncodeTiming(
|
|
||||||
timing.capture_time_us / rtc::kNumMicrosecsPerMillisec,
|
|
||||||
*encode_duration_us / rtc::kNumMicrosecsPerMillisec);
|
|
||||||
}
|
|
||||||
if (last_processed_capture_time_us_ != -1) {
|
if (last_processed_capture_time_us_ != -1) {
|
||||||
int64_t diff_us = timing.capture_us - last_processed_capture_time_us_;
|
int64_t diff_us = timing.capture_us - last_processed_capture_time_us_;
|
||||||
AddSample(1e-3 * (*encode_duration_us), 1e-3 * diff_us);
|
AddSample(1e-3 * (*encode_duration_us), 1e-3 * diff_us);
|
||||||
@ -211,7 +203,6 @@ class SendProcessingUsage : public OveruseFrameDetector::ProcessingUsage {
|
|||||||
const float kInitialSampleDiffMs;
|
const float kInitialSampleDiffMs;
|
||||||
|
|
||||||
const CpuOveruseOptions options_;
|
const CpuOveruseOptions options_;
|
||||||
EncodedFrameObserver* const encoder_timing_;
|
|
||||||
std::list<FrameTiming> frame_timing_;
|
std::list<FrameTiming> frame_timing_;
|
||||||
uint64_t count_;
|
uint64_t count_;
|
||||||
int64_t last_processed_capture_time_us_;
|
int64_t last_processed_capture_time_us_;
|
||||||
@ -224,11 +215,10 @@ class SendProcessingUsage : public OveruseFrameDetector::ProcessingUsage {
|
|||||||
class OverdoseInjector : public SendProcessingUsage {
|
class OverdoseInjector : public SendProcessingUsage {
|
||||||
public:
|
public:
|
||||||
OverdoseInjector(const CpuOveruseOptions& options,
|
OverdoseInjector(const CpuOveruseOptions& options,
|
||||||
EncodedFrameObserver* encoder_timing,
|
|
||||||
int64_t normal_period_ms,
|
int64_t normal_period_ms,
|
||||||
int64_t overuse_period_ms,
|
int64_t overuse_period_ms,
|
||||||
int64_t underuse_period_ms)
|
int64_t underuse_period_ms)
|
||||||
: SendProcessingUsage(options, encoder_timing),
|
: SendProcessingUsage(options),
|
||||||
normal_period_ms_(normal_period_ms),
|
normal_period_ms_(normal_period_ms),
|
||||||
overuse_period_ms_(overuse_period_ms),
|
overuse_period_ms_(overuse_period_ms),
|
||||||
underuse_period_ms_(underuse_period_ms),
|
underuse_period_ms_(underuse_period_ms),
|
||||||
@ -350,8 +340,7 @@ CpuOveruseOptions::CpuOveruseOptions()
|
|||||||
|
|
||||||
std::unique_ptr<OveruseFrameDetector::ProcessingUsage>
|
std::unique_ptr<OveruseFrameDetector::ProcessingUsage>
|
||||||
OveruseFrameDetector::CreateProcessingUsage(
|
OveruseFrameDetector::CreateProcessingUsage(
|
||||||
const CpuOveruseOptions& options,
|
const CpuOveruseOptions& options) {
|
||||||
EncodedFrameObserver* encoder_timing) {
|
|
||||||
std::unique_ptr<ProcessingUsage> instance;
|
std::unique_ptr<ProcessingUsage> instance;
|
||||||
std::string toggling_interval =
|
std::string toggling_interval =
|
||||||
field_trial::FindFullName("WebRTC-ForceSimulatedOveruseIntervalMs");
|
field_trial::FindFullName("WebRTC-ForceSimulatedOveruseIntervalMs");
|
||||||
@ -364,7 +353,7 @@ OveruseFrameDetector::CreateProcessingUsage(
|
|||||||
if (normal_period_ms > 0 && overuse_period_ms > 0 &&
|
if (normal_period_ms > 0 && overuse_period_ms > 0 &&
|
||||||
underuse_period_ms > 0) {
|
underuse_period_ms > 0) {
|
||||||
instance = rtc::MakeUnique<OverdoseInjector>(
|
instance = rtc::MakeUnique<OverdoseInjector>(
|
||||||
options, encoder_timing, normal_period_ms, overuse_period_ms,
|
options, normal_period_ms, overuse_period_ms,
|
||||||
underuse_period_ms);
|
underuse_period_ms);
|
||||||
} else {
|
} else {
|
||||||
RTC_LOG(LS_WARNING)
|
RTC_LOG(LS_WARNING)
|
||||||
@ -380,7 +369,7 @@ OveruseFrameDetector::CreateProcessingUsage(
|
|||||||
|
|
||||||
if (!instance) {
|
if (!instance) {
|
||||||
// No valid overuse simulation parameters set, use normal usage class.
|
// No valid overuse simulation parameters set, use normal usage class.
|
||||||
instance = rtc::MakeUnique<SendProcessingUsage>(options, encoder_timing);
|
instance = rtc::MakeUnique<SendProcessingUsage>(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
return instance;
|
return instance;
|
||||||
@ -419,7 +408,6 @@ class OveruseFrameDetector::CheckOveruseTask : public rtc::QueuedTask {
|
|||||||
OveruseFrameDetector::OveruseFrameDetector(
|
OveruseFrameDetector::OveruseFrameDetector(
|
||||||
const CpuOveruseOptions& options,
|
const CpuOveruseOptions& options,
|
||||||
AdaptationObserverInterface* observer,
|
AdaptationObserverInterface* observer,
|
||||||
EncodedFrameObserver* encoder_timing,
|
|
||||||
CpuOveruseMetricsObserver* metrics_observer)
|
CpuOveruseMetricsObserver* metrics_observer)
|
||||||
: check_overuse_task_(nullptr),
|
: check_overuse_task_(nullptr),
|
||||||
options_(options),
|
options_(options),
|
||||||
@ -436,7 +424,7 @@ OveruseFrameDetector::OveruseFrameDetector(
|
|||||||
last_rampup_time_ms_(-1),
|
last_rampup_time_ms_(-1),
|
||||||
in_quick_rampup_(false),
|
in_quick_rampup_(false),
|
||||||
current_rampup_delay_ms_(kStandardRampUpDelayMs),
|
current_rampup_delay_ms_(kStandardRampUpDelayMs),
|
||||||
usage_(CreateProcessingUsage(options, encoder_timing)) {
|
usage_(CreateProcessingUsage(options)) {
|
||||||
task_checker_.Detach();
|
task_checker_.Detach();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,6 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
class EncodedFrameObserver;
|
|
||||||
class VideoFrame;
|
class VideoFrame;
|
||||||
|
|
||||||
struct CpuOveruseOptions {
|
struct CpuOveruseOptions {
|
||||||
@ -66,7 +65,6 @@ class OveruseFrameDetector {
|
|||||||
public:
|
public:
|
||||||
OveruseFrameDetector(const CpuOveruseOptions& options,
|
OveruseFrameDetector(const CpuOveruseOptions& options,
|
||||||
AdaptationObserverInterface* overuse_observer,
|
AdaptationObserverInterface* overuse_observer,
|
||||||
EncodedFrameObserver* encoder_timing_,
|
|
||||||
CpuOveruseMetricsObserver* metrics_observer);
|
CpuOveruseMetricsObserver* metrics_observer);
|
||||||
virtual ~OveruseFrameDetector();
|
virtual ~OveruseFrameDetector();
|
||||||
|
|
||||||
@ -122,8 +120,7 @@ class OveruseFrameDetector {
|
|||||||
void ResetAll(int num_pixels);
|
void ResetAll(int num_pixels);
|
||||||
|
|
||||||
static std::unique_ptr<ProcessingUsage> CreateProcessingUsage(
|
static std::unique_ptr<ProcessingUsage> CreateProcessingUsage(
|
||||||
const CpuOveruseOptions& options,
|
const CpuOveruseOptions& options);
|
||||||
EncodedFrameObserver* encoder_timing);
|
|
||||||
|
|
||||||
rtc::SequencedTaskChecker task_checker_;
|
rtc::SequencedTaskChecker task_checker_;
|
||||||
// Owned by the task queue from where StartCheckForOveruse is called.
|
// Owned by the task queue from where StartCheckForOveruse is called.
|
||||||
|
|||||||
@ -57,11 +57,9 @@ class OveruseFrameDetectorUnderTest : public OveruseFrameDetector {
|
|||||||
public:
|
public:
|
||||||
OveruseFrameDetectorUnderTest(const CpuOveruseOptions& options,
|
OveruseFrameDetectorUnderTest(const CpuOveruseOptions& options,
|
||||||
AdaptationObserverInterface* overuse_observer,
|
AdaptationObserverInterface* overuse_observer,
|
||||||
EncodedFrameObserver* encoder_timing,
|
|
||||||
CpuOveruseMetricsObserver* metrics_observer)
|
CpuOveruseMetricsObserver* metrics_observer)
|
||||||
: OveruseFrameDetector(options,
|
: OveruseFrameDetector(options,
|
||||||
overuse_observer,
|
overuse_observer,
|
||||||
encoder_timing,
|
|
||||||
metrics_observer) {}
|
metrics_observer) {}
|
||||||
~OveruseFrameDetectorUnderTest() {}
|
~OveruseFrameDetectorUnderTest() {}
|
||||||
|
|
||||||
@ -79,7 +77,7 @@ class OveruseFrameDetectorTest : public ::testing::Test,
|
|||||||
|
|
||||||
void ReinitializeOveruseDetector() {
|
void ReinitializeOveruseDetector() {
|
||||||
overuse_detector_.reset(new OveruseFrameDetectorUnderTest(
|
overuse_detector_.reset(new OveruseFrameDetectorUnderTest(
|
||||||
options_, observer_.get(), nullptr, this));
|
options_, observer_.get(), this));
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnEncodedFrameTimeMeasured(int encode_time_ms,
|
void OnEncodedFrameTimeMeasured(int encode_time_ms,
|
||||||
@ -182,7 +180,7 @@ TEST_F(OveruseFrameDetectorTest, OveruseAndRecover) {
|
|||||||
|
|
||||||
TEST_F(OveruseFrameDetectorTest, OveruseAndRecoverWithNoObserver) {
|
TEST_F(OveruseFrameDetectorTest, OveruseAndRecoverWithNoObserver) {
|
||||||
overuse_detector_.reset(new OveruseFrameDetectorUnderTest(
|
overuse_detector_.reset(new OveruseFrameDetectorUnderTest(
|
||||||
options_, nullptr, nullptr, this));
|
options_, nullptr, this));
|
||||||
EXPECT_CALL(*(observer_.get()), AdaptDown(reason_)).Times(0);
|
EXPECT_CALL(*(observer_.get()), AdaptDown(reason_)).Times(0);
|
||||||
TriggerOveruse(options_.high_threshold_consecutive_count);
|
TriggerOveruse(options_.high_threshold_consecutive_count);
|
||||||
EXPECT_CALL(*(observer_.get()), AdaptUp(reason_)).Times(0);
|
EXPECT_CALL(*(observer_.get()), AdaptUp(reason_)).Times(0);
|
||||||
@ -202,7 +200,7 @@ TEST_F(OveruseFrameDetectorTest, TriggerUnderuseWithMinProcessCount) {
|
|||||||
options_.min_process_count = 1;
|
options_.min_process_count = 1;
|
||||||
CpuOveruseObserverImpl overuse_observer;
|
CpuOveruseObserverImpl overuse_observer;
|
||||||
overuse_detector_.reset(new OveruseFrameDetectorUnderTest(
|
overuse_detector_.reset(new OveruseFrameDetectorUnderTest(
|
||||||
options_, &overuse_observer, nullptr, this));
|
options_, &overuse_observer, this));
|
||||||
InsertAndSendFramesWithInterval(
|
InsertAndSendFramesWithInterval(
|
||||||
1200, kFrameIntervalUs, kWidth, kHeight, kProcessTimeUs);
|
1200, kFrameIntervalUs, kWidth, kHeight, kProcessTimeUs);
|
||||||
overuse_detector_->CheckForOveruse();
|
overuse_detector_->CheckForOveruse();
|
||||||
|
|||||||
@ -318,11 +318,6 @@ class VideoAnalyzer : public PacketReceiver,
|
|||||||
return receiver_->DeliverPacket(media_type, std::move(packet), packet_time);
|
return receiver_->DeliverPacket(media_type, std::move(packet), packet_time);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MeasuredEncodeTiming(int64_t ntp_time_ms, int encode_time_ms) {
|
|
||||||
rtc::CritScope crit(&comparison_lock_);
|
|
||||||
samples_encode_time_ms_[ntp_time_ms] = encode_time_ms;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PreEncodeOnFrame(const VideoFrame& video_frame) {
|
void PreEncodeOnFrame(const VideoFrame& video_frame) {
|
||||||
rtc::CritScope lock(&crit_);
|
rtc::CritScope lock(&crit_);
|
||||||
if (!first_encoded_timestamp_) {
|
if (!first_encoded_timestamp_) {
|
||||||
@ -592,9 +587,6 @@ class VideoAnalyzer : public PacketReceiver,
|
|||||||
public:
|
public:
|
||||||
explicit OnEncodeTimingProxy(VideoAnalyzer* parent) : parent_(parent) {}
|
explicit OnEncodeTimingProxy(VideoAnalyzer* parent) : parent_(parent) {}
|
||||||
|
|
||||||
void OnEncodeTiming(int64_t ntp_time_ms, int encode_time_ms) override {
|
|
||||||
parent_->MeasuredEncodeTiming(ntp_time_ms, encode_time_ms);
|
|
||||||
}
|
|
||||||
void EncodedFrameCallback(const EncodedFrame& frame) override {
|
void EncodedFrameCallback(const EncodedFrame& frame) override {
|
||||||
parent_->PostEncodeFrameCallback(frame);
|
parent_->PostEncodeFrameCallback(frame);
|
||||||
}
|
}
|
||||||
@ -946,27 +938,12 @@ class VideoAnalyzer : public PacketReceiver,
|
|||||||
"psnr "
|
"psnr "
|
||||||
"ssim "
|
"ssim "
|
||||||
"encode_time_ms\n");
|
"encode_time_ms\n");
|
||||||
int missing_encode_time_samples = 0;
|
|
||||||
for (const Sample& sample : samples_) {
|
for (const Sample& sample : samples_) {
|
||||||
auto it = samples_encode_time_ms_.find(sample.input_time_ms);
|
|
||||||
int encode_time_ms;
|
|
||||||
if (it != samples_encode_time_ms_.end()) {
|
|
||||||
encode_time_ms = it->second;
|
|
||||||
} else {
|
|
||||||
++missing_encode_time_samples;
|
|
||||||
encode_time_ms = -1;
|
|
||||||
}
|
|
||||||
fprintf(out, "%d %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRIuS
|
fprintf(out, "%d %" PRId64 " %" PRId64 " %" PRId64 " %" PRId64 " %" PRIuS
|
||||||
" %lf %lf %d\n",
|
" %lf %lf\n",
|
||||||
sample.dropped, sample.input_time_ms, sample.send_time_ms,
|
sample.dropped, sample.input_time_ms, sample.send_time_ms,
|
||||||
sample.recv_time_ms, sample.render_time_ms,
|
sample.recv_time_ms, sample.render_time_ms,
|
||||||
sample.encoded_frame_size, sample.psnr, sample.ssim,
|
sample.encoded_frame_size, sample.psnr, sample.ssim);
|
||||||
encode_time_ms);
|
|
||||||
}
|
|
||||||
if (missing_encode_time_samples) {
|
|
||||||
fprintf(stderr,
|
|
||||||
"Warning: Missing encode_time_ms samples for %d frame(s).\n",
|
|
||||||
missing_encode_time_samples);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1061,8 +1038,6 @@ class VideoAnalyzer : public PacketReceiver,
|
|||||||
PreEncodeProxy pre_encode_proxy_;
|
PreEncodeProxy pre_encode_proxy_;
|
||||||
OnEncodeTimingProxy encode_timing_proxy_;
|
OnEncodeTimingProxy encode_timing_proxy_;
|
||||||
std::vector<Sample> samples_ RTC_GUARDED_BY(comparison_lock_);
|
std::vector<Sample> samples_ RTC_GUARDED_BY(comparison_lock_);
|
||||||
std::map<int64_t, int> samples_encode_time_ms_
|
|
||||||
RTC_GUARDED_BY(comparison_lock_);
|
|
||||||
test::Statistics sender_time_ RTC_GUARDED_BY(comparison_lock_);
|
test::Statistics sender_time_ RTC_GUARDED_BY(comparison_lock_);
|
||||||
test::Statistics receiver_time_ RTC_GUARDED_BY(comparison_lock_);
|
test::Statistics receiver_time_ RTC_GUARDED_BY(comparison_lock_);
|
||||||
test::Statistics psnr_ RTC_GUARDED_BY(comparison_lock_);
|
test::Statistics psnr_ RTC_GUARDED_BY(comparison_lock_);
|
||||||
|
|||||||
@ -567,7 +567,6 @@ VideoSendStream::VideoSendStream(
|
|||||||
new VideoStreamEncoder(num_cpu_cores, &stats_proxy_,
|
new VideoStreamEncoder(num_cpu_cores, &stats_proxy_,
|
||||||
config_.encoder_settings,
|
config_.encoder_settings,
|
||||||
config_.pre_encode_callback,
|
config_.pre_encode_callback,
|
||||||
config_.post_encode_callback,
|
|
||||||
std::unique_ptr<OveruseFrameDetector>()));
|
std::unique_ptr<OveruseFrameDetector>()));
|
||||||
worker_queue_->PostTask(std::unique_ptr<rtc::QueuedTask>(new ConstructionTask(
|
worker_queue_->PostTask(std::unique_ptr<rtc::QueuedTask>(new ConstructionTask(
|
||||||
&send_stream_, &thread_sync_event_, &stats_proxy_,
|
&send_stream_, &thread_sync_event_, &stats_proxy_,
|
||||||
|
|||||||
@ -388,7 +388,6 @@ VideoStreamEncoder::VideoStreamEncoder(
|
|||||||
SendStatisticsProxy* stats_proxy,
|
SendStatisticsProxy* stats_proxy,
|
||||||
const VideoSendStream::Config::EncoderSettings& settings,
|
const VideoSendStream::Config::EncoderSettings& settings,
|
||||||
rtc::VideoSinkInterface<VideoFrame>* pre_encode_callback,
|
rtc::VideoSinkInterface<VideoFrame>* pre_encode_callback,
|
||||||
EncodedFrameObserver* encoder_timing,
|
|
||||||
std::unique_ptr<OveruseFrameDetector> overuse_detector)
|
std::unique_ptr<OveruseFrameDetector> overuse_detector)
|
||||||
: shutdown_event_(true /* manual_reset */, false),
|
: shutdown_event_(true /* manual_reset */, false),
|
||||||
number_of_cores_(number_of_cores),
|
number_of_cores_(number_of_cores),
|
||||||
@ -404,7 +403,6 @@ VideoStreamEncoder::VideoStreamEncoder(
|
|||||||
: new OveruseFrameDetector(
|
: new OveruseFrameDetector(
|
||||||
GetCpuOveruseOptions(settings.full_overuse_time),
|
GetCpuOveruseOptions(settings.full_overuse_time),
|
||||||
this,
|
this,
|
||||||
encoder_timing,
|
|
||||||
stats_proxy)),
|
stats_proxy)),
|
||||||
stats_proxy_(stats_proxy),
|
stats_proxy_(stats_proxy),
|
||||||
pre_encode_callback_(pre_encode_callback),
|
pre_encode_callback_(pre_encode_callback),
|
||||||
|
|||||||
@ -75,7 +75,6 @@ class VideoStreamEncoder : public rtc::VideoSinkInterface<VideoFrame>,
|
|||||||
SendStatisticsProxy* stats_proxy,
|
SendStatisticsProxy* stats_proxy,
|
||||||
const VideoSendStream::Config::EncoderSettings& settings,
|
const VideoSendStream::Config::EncoderSettings& settings,
|
||||||
rtc::VideoSinkInterface<VideoFrame>* pre_encode_callback,
|
rtc::VideoSinkInterface<VideoFrame>* pre_encode_callback,
|
||||||
EncodedFrameObserver* encoder_timing,
|
|
||||||
std::unique_ptr<OveruseFrameDetector> overuse_detector);
|
std::unique_ptr<OveruseFrameDetector> overuse_detector);
|
||||||
~VideoStreamEncoder();
|
~VideoStreamEncoder();
|
||||||
|
|
||||||
|
|||||||
@ -67,11 +67,9 @@ class CpuOveruseDetectorProxy : public OveruseFrameDetector {
|
|||||||
public:
|
public:
|
||||||
CpuOveruseDetectorProxy(const CpuOveruseOptions& options,
|
CpuOveruseDetectorProxy(const CpuOveruseOptions& options,
|
||||||
AdaptationObserverInterface* overuse_observer,
|
AdaptationObserverInterface* overuse_observer,
|
||||||
EncodedFrameObserver* encoder_timing_,
|
|
||||||
CpuOveruseMetricsObserver* metrics_observer)
|
CpuOveruseMetricsObserver* metrics_observer)
|
||||||
: OveruseFrameDetector(options,
|
: OveruseFrameDetector(options,
|
||||||
overuse_observer,
|
overuse_observer,
|
||||||
encoder_timing_,
|
|
||||||
metrics_observer),
|
metrics_observer),
|
||||||
last_target_framerate_fps_(-1) {}
|
last_target_framerate_fps_(-1) {}
|
||||||
virtual ~CpuOveruseDetectorProxy() {}
|
virtual ~CpuOveruseDetectorProxy() {}
|
||||||
@ -101,12 +99,10 @@ class VideoStreamEncoderUnderTest : public VideoStreamEncoder {
|
|||||||
stats_proxy,
|
stats_proxy,
|
||||||
settings,
|
settings,
|
||||||
nullptr /* pre_encode_callback */,
|
nullptr /* pre_encode_callback */,
|
||||||
nullptr /* encoder_timing */,
|
|
||||||
std::unique_ptr<OveruseFrameDetector>(
|
std::unique_ptr<OveruseFrameDetector>(
|
||||||
overuse_detector_proxy_ = new CpuOveruseDetectorProxy(
|
overuse_detector_proxy_ = new CpuOveruseDetectorProxy(
|
||||||
GetCpuOveruseOptions(settings.full_overuse_time),
|
GetCpuOveruseOptions(settings.full_overuse_time),
|
||||||
this,
|
this,
|
||||||
nullptr,
|
|
||||||
stats_proxy))) {}
|
stats_proxy))) {}
|
||||||
|
|
||||||
void PostTaskAndWait(bool down, AdaptReason reason) {
|
void PostTaskAndWait(bool down, AdaptReason reason) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user