Index: webrtc/modules/video_coding/protection_bitrate_calculator.cc |
diff --git a/webrtc/modules/video_coding/protection_bitrate_calculator.cc b/webrtc/modules/video_coding/protection_bitrate_calculator.cc |
index c92c3c445ca8834868d7bebf81fdb1813ab84ab9..55853290431a12abee720a6a1fefe327562f6c04 100644 |
--- a/webrtc/modules/video_coding/protection_bitrate_calculator.cc |
+++ b/webrtc/modules/video_coding/protection_bitrate_calculator.cc |
@@ -8,7 +8,7 @@ |
* be found in the AUTHORS file in the root of the source tree. |
*/ |
-#include <webrtc/modules/video_coding/protection_bitrate_calculator.h> |
+#include "webrtc/modules/video_coding/protection_bitrate_calculator.h" |
namespace webrtc { |
@@ -33,7 +33,8 @@ ProtectionBitrateCalculator::ProtectionBitrateCalculator( |
protection_callback_(protection_callback), |
loss_prot_logic_(new media_optimization::VCMLossProtectionLogic( |
clock_->TimeInMilliseconds())), |
- max_payload_size_(1460) {} |
+ max_payload_size_(1460), |
+ last_encoder_target_rate_(0) {} |
ProtectionBitrateCalculator::~ProtectionBitrateCalculator(void) { |
loss_prot_logic_->Release(); |
@@ -93,6 +94,7 @@ uint32_t ProtectionBitrateCalculator::SetTargetRates( |
loss_prot_logic_->UpdateFilteredLossPr(packet_loss_enc); |
if (loss_prot_logic_->SelectedType() == media_optimization::kNone) { |
+ last_encoder_target_rate_ = estimated_bitrate_bps; |
return estimated_bitrate_bps; |
} |
@@ -154,7 +156,15 @@ uint32_t ProtectionBitrateCalculator::SetTargetRates( |
protection_overhead_rate = 0.5; |
// Source coding rate: total rate - protection overhead. |
- return estimated_bitrate_bps * (1.0 - protection_overhead_rate); |
+ CritScope lock(&crit_sect_); |
+ last_encoder_target_rate_ = |
+ estimated_bitrate_bps * (1.0 - protection_overhead_rate); |
+ return last_encoder_target_rate_; |
+} |
+ |
+uint32_t ProtectionBitrateCalculator::GetEncoderTargetRate() const { |
+ CritScope lock(&crit_sect_); |
+ return last_encoder_target_rate_; |
} |
void ProtectionBitrateCalculator::SetProtectionMethod(bool enable_fec, |