diff --git a/test/fake_encoder.cc b/test/fake_encoder.cc index 64b4a4e9ff..2959559910 100644 --- a/test/fake_encoder.cc +++ b/test/fake_encoder.cc @@ -69,7 +69,7 @@ void FakeEncoder::SetMaxBitrate(int max_kbps) { RTC_DCHECK_GE(max_kbps, -1); // max_kbps == -1 disables it. rtc::CritScope cs(&crit_sect_); max_target_bitrate_kbps_ = max_kbps; - SetRates(current_rate_settings_); + SetRatesLocked(current_rate_settings_); } void FakeEncoder::SetQp(int qp) { @@ -243,6 +243,10 @@ int32_t FakeEncoder::Release() { void FakeEncoder::SetRates(const RateControlParameters& parameters) { rtc::CritScope cs(&crit_sect_); + SetRatesLocked(parameters); +} + +void FakeEncoder::SetRatesLocked(const RateControlParameters& parameters) { current_rate_settings_ = parameters; int allocated_bitrate_kbps = parameters.bitrate.get_sum_kbps(); diff --git a/test/fake_encoder.h b/test/fake_encoder.h index 39838d16f1..ade0e35560 100644 --- a/test/fake_encoder.h +++ b/test/fake_encoder.h @@ -40,21 +40,23 @@ class FakeEncoder : public VideoEncoder { virtual ~FakeEncoder() = default; // Sets max bitrate. Not thread-safe, call before registering the encoder. - void SetMaxBitrate(int max_kbps); - void SetQp(int qp); + void SetMaxBitrate(int max_kbps) RTC_LOCKS_EXCLUDED(crit_sect_); + void SetQp(int qp) RTC_LOCKS_EXCLUDED(crit_sect_); void SetFecControllerOverride( FecControllerOverride* fec_controller_override) override; - int32_t InitEncode(const VideoCodec* config, - const Settings& settings) override; + int32_t InitEncode(const VideoCodec* config, const Settings& settings) + RTC_LOCKS_EXCLUDED(crit_sect_) override; int32_t Encode(const VideoFrame& input_image, - const std::vector* frame_types) override; - int32_t RegisterEncodeCompleteCallback( - EncodedImageCallback* callback) override; + const std::vector* frame_types) + RTC_LOCKS_EXCLUDED(crit_sect_) override; + int32_t RegisterEncodeCompleteCallback(EncodedImageCallback* callback) + RTC_LOCKS_EXCLUDED(crit_sect_) override; int32_t Release() override; - void SetRates(const RateControlParameters& parameters) override; - int GetConfiguredInputFramerate() const; + void SetRates(const RateControlParameters& parameters) + RTC_LOCKS_EXCLUDED(crit_sect_) override; + int GetConfiguredInputFramerate() const RTC_LOCKS_EXCLUDED(crit_sect_); EncoderInfo GetEncoderInfo() const override; static const char* kImplementationName; @@ -79,7 +81,7 @@ class FakeEncoder : public VideoEncoder { uint8_t num_simulcast_streams, const VideoBitrateAllocation& target_bitrate, SimulcastStream simulcast_streams[kMaxSimulcastStreams], - int framerate); + int framerate) RTC_LOCKS_EXCLUDED(crit_sect_); // Called before the frame is passed to callback_->OnEncodedImage, to let // subclasses fill out codec_specific, possibly modify encodedImage. @@ -88,6 +90,9 @@ class FakeEncoder : public VideoEncoder { EncodedImage* encoded_image, CodecSpecificInfo* codec_specific); + void SetRatesLocked(const RateControlParameters& parameters) + RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); + FrameInfo last_frame_info_ RTC_GUARDED_BY(crit_sect_); Clock* const clock_;