Revert 5259 "Callback for send bitrate estimates"
CL is causing flakiness in RampUpTest.WithoutPacing.
> Callback for send bitrate estimates
>
> BUG=2235
> R=mflodman@webrtc.org, pbos@webrtc.org, stefan@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/4459004
R=mflodman@webrtc.org, pbos@webrtc.org
TBR=mflodman
Review URL: https://webrtc-codereview.appspot.com/5579005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5261 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/common_types.h b/webrtc/common_types.h
index 49f3a76..55ba552 100644
--- a/webrtc/common_types.h
+++ b/webrtc/common_types.h
@@ -285,11 +285,14 @@
// Rate statistics for a stream
struct BitrateStatistics {
- BitrateStatistics() : bitrate_bps(0), packet_rate(0), timestamp_ms(0) {}
+ BitrateStatistics()
+ : bitrate_(0),
+ packet_rate(0),
+ now(0) {}
- uint32_t bitrate_bps; // Bitrate in bits per second.
- uint32_t packet_rate; // Packet rate in packets per second.
- uint64_t timestamp_ms; // Ntp timestamp in ms at time of rate estimation.
+ uint32_t bitrate_;
+ uint32_t packet_rate;
+ uint64_t now;
};
// Callback, used to notify an observer whenever new rates have been estimated.
diff --git a/webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h b/webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h
index 67dad0d..19bc470 100644
--- a/webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h
+++ b/webrtc/modules/rtp_rtcp/interface/rtp_rtcp.h
@@ -301,13 +301,6 @@
uint32_t* nackRate) const = 0;
/*
- * Called on any new send bitrate estimate.
- */
- virtual void RegisterVideoBitrateObserver(
- BitrateStatisticsObserver* observer) = 0;
- virtual BitrateStatisticsObserver* GetVideoBitrateObserver() const = 0;
-
- /*
* Used by the codec module to deliver a video or audio frame for
* packetization.
*
diff --git a/webrtc/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h b/webrtc/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
index 42c7b4e..8edb548 100644
--- a/webrtc/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
+++ b/webrtc/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
@@ -100,8 +100,6 @@
bool());
MOCK_CONST_METHOD4(BitrateSent,
void(uint32_t* totalRate, uint32_t* videoRate, uint32_t* fecRate, uint32_t* nackRate));
- MOCK_METHOD1(RegisterVideoBitrateObserver, void(BitrateStatisticsObserver*));
- MOCK_CONST_METHOD0(GetVideoBitrateObserver, BitrateStatisticsObserver*(void));
MOCK_CONST_METHOD1(EstimatedReceiveBandwidth,
int(uint32_t* available_bandwidth));
MOCK_METHOD8(SendOutgoingData,
diff --git a/webrtc/modules/rtp_rtcp/source/bitrate.cc b/webrtc/modules/rtp_rtcp/source/bitrate.cc
index 42e331b..d8145d1 100644
--- a/webrtc/modules/rtp_rtcp/source/bitrate.cc
+++ b/webrtc/modules/rtp_rtcp/source/bitrate.cc
@@ -15,7 +15,7 @@
namespace webrtc {
-Bitrate::Bitrate(Clock* clock, Observer* observer)
+Bitrate::Bitrate(Clock* clock)
: clock_(clock),
crit_(CriticalSectionWrapper::CreateCriticalSection()),
packet_rate_(0),
@@ -23,15 +23,12 @@
bitrate_next_idx_(0),
time_last_rate_update_(0),
bytes_count_(0),
- packet_count_(0),
- observer_(observer) {
+ packet_count_(0) {
memset(packet_rate_array_, 0, sizeof(packet_rate_array_));
memset(bitrate_diff_ms_, 0, sizeof(bitrate_diff_ms_));
memset(bitrate_array_, 0, sizeof(bitrate_array_));
}
-Bitrate::~Bitrate() {}
-
void Bitrate::Update(const int32_t bytes) {
CriticalSectionScoped cs(crit_.get());
bytes_count_ += bytes;
@@ -74,7 +71,7 @@
void Bitrate::Process() {
// Triggered by timer.
CriticalSectionScoped cs(crit_.get());
- int64_t now = clock_->CurrentNtpInMilliseconds();
+ int64_t now = clock_->TimeInMilliseconds();
int64_t diff_ms = now - time_last_rate_update_;
if (diff_ms < 100) {
@@ -108,14 +105,6 @@
packet_count_ = 0;
packet_rate_ = static_cast<uint32_t>(sum_packetrateMS / sum_diffMS);
bitrate_ = static_cast<uint32_t>(sum_bitrateMS / sum_diffMS);
-
- if (observer_) {
- BitrateStatistics stats;
- stats.bitrate_bps = bitrate_;
- stats.packet_rate = packet_rate_;
- stats.timestamp_ms = now;
- observer_->BitrateUpdated(stats);
- }
}
} // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/bitrate.h b/webrtc/modules/rtp_rtcp/source/bitrate.h
index 36fa1d3..17a099a 100644
--- a/webrtc/modules/rtp_rtcp/source/bitrate.h
+++ b/webrtc/modules/rtp_rtcp/source/bitrate.h
@@ -27,9 +27,7 @@
class Bitrate {
public:
- class Observer;
- Bitrate(Clock* clock, Observer* observer);
- virtual ~Bitrate();
+ explicit Bitrate(Clock* clock);
// Calculates rates.
void Process();
@@ -48,14 +46,6 @@
int64_t time_last_rate_update() const;
- class Observer {
- public:
- Observer() {}
- virtual ~Observer() {}
-
- virtual void BitrateUpdated(const BitrateStatistics& stats) = 0;
- };
-
protected:
Clock* clock_;
@@ -70,7 +60,6 @@
int64_t time_last_rate_update_;
uint32_t bytes_count_;
uint32_t packet_count_;
- Observer* const observer_;
};
} // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/receive_statistics_impl.cc b/webrtc/modules/rtp_rtcp/source/receive_statistics_impl.cc
index 3ed44b8..cf18990 100644
--- a/webrtc/modules/rtp_rtcp/source/receive_statistics_impl.cc
+++ b/webrtc/modules/rtp_rtcp/source/receive_statistics_impl.cc
@@ -27,7 +27,7 @@
StreamStatisticianImpl::StreamStatisticianImpl(Clock* clock)
: clock_(clock),
crit_sect_(CriticalSectionWrapper::CreateCriticalSection()),
- incoming_bitrate_(clock, NULL),
+ incoming_bitrate_(clock),
ssrc_(0),
max_reordering_threshold_(kDefaultMaxReorderingThreshold),
jitter_q4_(0),
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
index e9deb3d..acc2c26 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
@@ -1559,7 +1559,7 @@
return;
}
if (total_rate != NULL)
- *total_rate = rtp_sender_.BitrateSent();
+ *total_rate = rtp_sender_.BitrateLast();
if (video_rate != NULL)
*video_rate = rtp_sender_.VideoBitrateSent();
if (fec_rate != NULL)
@@ -1568,31 +1568,6 @@
*nack_rate = rtp_sender_.NackOverheadRate();
}
-void ModuleRtpRtcpImpl::RegisterVideoBitrateObserver(
- BitrateStatisticsObserver* observer) {
- {
- CriticalSectionScoped cs(critical_section_module_ptrs_.get());
- if (!child_modules_.empty()) {
- for (std::list<ModuleRtpRtcpImpl*>::const_iterator it =
- child_modules_.begin();
- it != child_modules_.end();
- ++it) {
- RtpRtcp* module = *it;
- if (module)
- module->RegisterVideoBitrateObserver(observer);
- ++it;
- }
- return;
- }
- }
-
- rtp_sender_.RegisterBitrateObserver(observer);
-}
-
-BitrateStatisticsObserver* ModuleRtpRtcpImpl::GetVideoBitrateObserver() const {
- return rtp_sender_.GetBitrateObserver();
-}
-
// Bad state of RTP receiver request a keyframe.
void ModuleRtpRtcpImpl::OnRequestIntraFrame() {
RequestKeyFrame();
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h
index 075770d..7e0425f 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h
@@ -349,11 +349,6 @@
uint32_t* fec_rate,
uint32_t* nackRate) const OVERRIDE;
- virtual void RegisterVideoBitrateObserver(BitrateStatisticsObserver* observer)
- OVERRIDE;
-
- virtual BitrateStatisticsObserver* GetVideoBitrateObserver() const OVERRIDE;
-
virtual uint32_t SendTimeOfSendReport(const uint32_t send_report);
virtual bool SendTimeOfXrRrReport(uint32_t mid_ntp, int64_t* time_ms) const;
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
index fd32032..20ebd44 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.cc
@@ -39,56 +39,30 @@
} // namespace
-RTPSender::RTPSender(const int32_t id,
- const bool audio,
- Clock* clock,
- Transport* transport,
- RtpAudioFeedback* audio_feedback,
- PacedSender* paced_sender)
- : clock_(clock),
- bitrate_sent_(clock, this),
- id_(id),
- audio_configured_(audio),
- audio_(NULL),
- video_(NULL),
- paced_sender_(paced_sender),
+RTPSender::RTPSender(const int32_t id, const bool audio, Clock *clock,
+ Transport *transport, RtpAudioFeedback *audio_feedback,
+ PacedSender *paced_sender)
+ : Bitrate(clock), id_(id), audio_configured_(audio), audio_(NULL),
+ video_(NULL), paced_sender_(paced_sender),
send_critsect_(CriticalSectionWrapper::CreateCriticalSection()),
- transport_(transport),
- sending_media_(true), // Default to sending media.
- max_payload_length_(IP_PACKET_SIZE - 28), // Default is IP-v4/UDP.
- target_send_bitrate_(0),
- packet_over_head_(28),
- payload_type_(-1),
- payload_type_map_(),
- rtp_header_extension_map_(),
- transmission_time_offset_(0),
- absolute_send_time_(0),
+ transport_(transport), sending_media_(true), // Default to sending media.
+ max_payload_length_(IP_PACKET_SIZE - 28), // Default is IP-v4/UDP.
+ target_send_bitrate_(0), packet_over_head_(28), payload_type_(-1),
+ payload_type_map_(), rtp_header_extension_map_(),
+ transmission_time_offset_(0), absolute_send_time_(0),
// NACK.
- nack_byte_count_times_(),
- nack_byte_count_(),
- nack_bitrate_(clock, NULL),
+ nack_byte_count_times_(), nack_byte_count_(), nack_bitrate_(clock),
packet_history_(clock),
// Statistics
statistics_crit_(CriticalSectionWrapper::CreateCriticalSection()),
- frame_count_observer_(NULL),
- rtp_stats_callback_(NULL),
- bitrate_callback_(NULL),
+ frame_count_observer_(NULL), rtp_stats_callback_(NULL),
// RTP variables
start_time_stamp_forced_(false),
- start_time_stamp_(0),
- ssrc_db_(*SSRCDatabase::GetSSRCDatabase()),
- remote_ssrc_(0),
- sequence_number_forced_(false),
- ssrc_forced_(false),
- timestamp_(0),
- capture_time_ms_(0),
- last_timestamp_time_ms_(0),
- last_packet_marker_bit_(false),
- num_csrcs_(0),
- csrcs_(),
- include_csrcs_(true),
- rtx_(kRtxOff),
- payload_type_rtx_(-1) {
+ start_time_stamp_(0), ssrc_db_(*SSRCDatabase::GetSSRCDatabase()),
+ remote_ssrc_(0), sequence_number_forced_(false), ssrc_forced_(false),
+ timestamp_(0), capture_time_ms_(0), last_timestamp_time_ms_(0),
+ last_packet_marker_bit_(false), num_csrcs_(0), csrcs_(),
+ include_csrcs_(true), rtx_(kRtxOff), payload_type_rtx_(-1) {
memset(nack_byte_count_times_, 0, sizeof(nack_byte_count_times_));
memset(nack_byte_count_, 0, sizeof(nack_byte_count_));
memset(csrcs_, 0, sizeof(csrcs_));
@@ -134,7 +108,7 @@
}
uint16_t RTPSender::ActualSendBitrateKbit() const {
- return (uint16_t)(bitrate_sent_.BitrateNow() / 1000);
+ return (uint16_t)(Bitrate::BitrateNow() / 1000);
}
uint32_t RTPSender::VideoBitrateSent() const {
@@ -471,7 +445,7 @@
int64_t capture_time_ms) {
// Current bitrate since last estimate(1 second) averaged with the
// estimate since then, to get the most up to date bitrate.
- uint32_t current_bitrate = bitrate_sent_.BitrateNow();
+ uint32_t current_bitrate = BitrateNow();
int bitrate_diff = target_send_bitrate_ * 1000 - current_bitrate;
if (bitrate_diff <= 0) {
return true;
@@ -853,7 +827,7 @@
ssrc = ssrc_;
}
- bitrate_sent_.Update(size);
+ Bitrate::Update(size);
++counters->packets;
if (IsFecPacket(buffer, header)) {
++counters->fec_packets;
@@ -974,7 +948,7 @@
void RTPSender::ProcessBitrate() {
CriticalSectionScoped cs(send_critsect_);
- bitrate_sent_.Process();
+ Bitrate::Process();
nack_bitrate_.Process();
if (audio_configured_) {
return;
@@ -1614,24 +1588,4 @@
return rtp_stats_callback_;
}
-void RTPSender::RegisterBitrateObserver(BitrateStatisticsObserver* observer) {
- CriticalSectionScoped cs(statistics_crit_.get());
- if (observer != NULL)
- assert(bitrate_callback_ == NULL);
- bitrate_callback_ = observer;
-}
-
-BitrateStatisticsObserver* RTPSender::GetBitrateObserver() const {
- CriticalSectionScoped cs(statistics_crit_.get());
- return bitrate_callback_;
-}
-
-uint32_t RTPSender::BitrateSent() const { return bitrate_sent_.BitrateLast(); }
-
-void RTPSender::BitrateUpdated(const BitrateStatistics& stats) {
- CriticalSectionScoped cs(statistics_crit_.get());
- if (bitrate_callback_) {
- bitrate_callback_->Notify(stats, ssrc_);
- }
-}
} // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender.h b/webrtc/modules/rtp_rtcp/source/rtp_sender.h
index e1cc3a18..d0aeb64 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender.h
@@ -63,7 +63,7 @@
PacedSender::Priority priority) = 0;
};
-class RTPSender : public RTPSenderInterface, public Bitrate::Observer {
+class RTPSender : public Bitrate, public RTPSenderInterface {
public:
RTPSender(const int32_t id, const bool audio, Clock *clock,
Transport *transport, RtpAudioFeedback *audio_feedback,
@@ -275,14 +275,6 @@
void RegisterRtpStatisticsCallback(StreamDataCountersCallback* callback);
StreamDataCountersCallback* GetRtpStatisticsCallback() const;
- // Called on new send bitrate estimate.
- void RegisterBitrateObserver(BitrateStatisticsObserver* observer);
- BitrateStatisticsObserver* GetBitrateObserver() const;
-
- uint32_t BitrateSent() const;
-
- virtual void BitrateUpdated(const BitrateStatistics& stats) OVERRIDE;
-
protected:
int32_t CheckPayloadType(const int8_t payload_type,
RtpVideoCodecTypes *video_type);
@@ -326,9 +318,6 @@
bool is_retransmit);
bool IsFecPacket(const uint8_t* buffer, const RTPHeader& header) const;
- Clock* clock_;
- Bitrate bitrate_sent_;
-
int32_t id_;
const bool audio_configured_;
RTPSenderAudio *audio_;
@@ -366,7 +355,6 @@
StreamDataCounters rtp_stats_;
StreamDataCounters rtx_rtp_stats_;
StreamDataCountersCallback* rtp_stats_callback_;
- BitrateStatisticsObserver* bitrate_callback_;
// RTP variables
bool start_time_stamp_forced_;
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
index ce615be..863d868 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_unittest.cc
@@ -38,7 +38,6 @@
const uint8_t kAudioLevel = 0x5a;
const uint8_t kAudioLevelExtensionId = 9;
const int kAudioPayload = 103;
-const uint64_t kStartTime = 123456789;
} // namespace
using testing::_;
@@ -82,12 +81,12 @@
class RtpSenderTest : public ::testing::Test {
protected:
RtpSenderTest()
- : fake_clock_(kStartTime),
- mock_paced_sender_(),
- rtp_sender_(),
- payload_(kPayload),
- transport_(),
- kMarkerBit(true) {
+ : fake_clock_(123456789),
+ mock_paced_sender_(),
+ rtp_sender_(),
+ payload_(kPayload),
+ transport_(),
+ kMarkerBit(true) {
EXPECT_CALL(mock_paced_sender_,
SendPacket(_, _, _, _, _, _)).WillRepeatedly(testing::Return(true));
}
@@ -780,73 +779,6 @@
rtp_sender_->RegisterFrameCountObserver(NULL);
}
-TEST_F(RtpSenderTest, BitrateCallbacks) {
- class TestCallback : public BitrateStatisticsObserver {
- public:
- TestCallback()
- : BitrateStatisticsObserver(), num_calls_(0), ssrc_(0), bitrate_() {}
- virtual ~TestCallback() {}
-
- virtual void Notify(const BitrateStatistics& stats, uint32_t ssrc) {
- ++num_calls_;
- ssrc_ = ssrc;
- bitrate_ = stats;
- }
-
- uint32_t num_calls_;
- uint32_t ssrc_;
- BitrateStatistics bitrate_;
- } callback;
-
- // Simulate kNumPackets sent with kPacketInterval ms intervals.
- const uint32_t kNumPackets = 15;
- const uint32_t kPacketInterval = 20;
- // Overhead = 12 bytes RTP header + 1 byte generic header.
- const uint32_t kPacketOverhead = 13;
-
- char payload_name[RTP_PAYLOAD_NAME_SIZE] = "GENERIC";
- const uint8_t payload_type = 127;
- ASSERT_EQ(
- 0,
- rtp_sender_->RegisterPayload(payload_name, payload_type, 90000, 0, 1500));
- uint8_t payload[] = {47, 11, 32, 93, 89};
- rtp_sender_->SetStorePacketsStatus(true, 1);
- uint32_t ssrc = rtp_sender_->SSRC();
-
- rtp_sender_->RegisterBitrateObserver(&callback);
-
- // Initial process call so we get a new time window.
- rtp_sender_->ProcessBitrate();
- uint64_t start_time = fake_clock_.CurrentNtpInMilliseconds();
-
- // Send a few frames.
- for (uint32_t i = 0; i < kNumPackets; ++i) {
- ASSERT_EQ(0,
- rtp_sender_->SendOutgoingData(kVideoFrameKey,
- payload_type,
- 1234,
- 4321,
- payload,
- sizeof(payload),
- 0));
- fake_clock_.AdvanceTimeMilliseconds(kPacketInterval);
- }
-
- rtp_sender_->ProcessBitrate();
-
- const uint32_t expected_packet_rate = 1000 / kPacketInterval;
-
- EXPECT_EQ(1U, callback.num_calls_);
- EXPECT_EQ(ssrc, callback.ssrc_);
- EXPECT_EQ(start_time + (kNumPackets * kPacketInterval),
- callback.bitrate_.timestamp_ms);
- EXPECT_EQ(expected_packet_rate, callback.bitrate_.packet_rate);
- EXPECT_EQ((kPacketOverhead + sizeof(payload)) * 8 * expected_packet_rate,
- callback.bitrate_.bitrate_bps);
-
- rtp_sender_->RegisterBitrateObserver(NULL);
-}
-
class RtpSenderAudioTest : public RtpSenderTest {
protected:
RtpSenderAudioTest() {}
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
index 7b36f7c..4d0da73 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
@@ -32,26 +32,27 @@
RTPSenderVideo::RTPSenderVideo(const int32_t id,
Clock* clock,
- RTPSenderInterface* rtpSender)
- : _id(id),
- _rtpSender(*rtpSender),
- _sendVideoCritsect(CriticalSectionWrapper::CreateCriticalSection()),
- _videoType(kRtpVideoGeneric),
- _videoCodecInformation(NULL),
- _maxBitrate(0),
- _retransmissionSettings(kRetransmitBaseLayer),
+ RTPSenderInterface* rtpSender) :
+ _id(id),
+ _rtpSender(*rtpSender),
+ _sendVideoCritsect(CriticalSectionWrapper::CreateCriticalSection()),
- // Generic FEC
- _fec(id),
- _fecEnabled(false),
- _payloadTypeRED(-1),
- _payloadTypeFEC(-1),
- _numberFirstPartition(0),
- delta_fec_params_(),
- key_fec_params_(),
- producer_fec_(&_fec),
- _fecOverheadRate(clock, NULL),
- _videoBitrate(clock, NULL) {
+ _videoType(kRtpVideoGeneric),
+ _videoCodecInformation(NULL),
+ _maxBitrate(0),
+ _retransmissionSettings(kRetransmitBaseLayer),
+
+ // Generic FEC
+ _fec(id),
+ _fecEnabled(false),
+ _payloadTypeRED(-1),
+ _payloadTypeFEC(-1),
+ _numberFirstPartition(0),
+ delta_fec_params_(),
+ key_fec_params_(),
+ producer_fec_(&_fec),
+ _fecOverheadRate(clock),
+ _videoBitrate(clock) {
memset(&delta_fec_params_, 0, sizeof(delta_fec_params_));
memset(&key_fec_params_, 0, sizeof(key_fec_params_));
delta_fec_params_.max_fec_frames = key_fec_params_.max_fec_frames = 1;
diff --git a/webrtc/video_engine/vie_channel.cc b/webrtc/video_engine/vie_channel.cc
index 9d93b3e..b6d9be1 100644
--- a/webrtc/video_engine/vie_channel.cc
+++ b/webrtc/video_engine/vie_channel.cc
@@ -359,7 +359,6 @@
rtp_rtcp->RegisterSendFrameCountObserver(NULL);
rtp_rtcp->RegisterSendChannelRtcpStatisticsCallback(NULL);
rtp_rtcp->RegisterSendChannelRtpStatisticsCallback(NULL);
- rtp_rtcp->RegisterVideoBitrateObserver(NULL);
simulcast_rtp_rtcp_.pop_back();
removed_rtp_rtcp_.push_front(rtp_rtcp);
}
@@ -420,8 +419,6 @@
rtp_rtcp_->GetSendChannelRtcpStatisticsCallback());
rtp_rtcp->RegisterSendChannelRtpStatisticsCallback(
rtp_rtcp_->GetSendChannelRtpStatisticsCallback());
- rtp_rtcp->RegisterVideoBitrateObserver(
- rtp_rtcp_->GetVideoBitrateObserver());
}
// |RegisterSimulcastRtpRtcpModules| resets all old weak pointers and old
// modules can be deleted after this step.
@@ -435,7 +432,6 @@
rtp_rtcp->RegisterSendFrameCountObserver(NULL);
rtp_rtcp->RegisterSendChannelRtcpStatisticsCallback(NULL);
rtp_rtcp->RegisterSendChannelRtpStatisticsCallback(NULL);
- rtp_rtcp->RegisterVideoBitrateObserver(NULL);
simulcast_rtp_rtcp_.pop_back();
removed_rtp_rtcp_.push_front(rtp_rtcp);
}
@@ -1431,17 +1427,6 @@
return valid_estimate;
}
-void ViEChannel::RegisterSendBitrateObserver(
- BitrateStatisticsObserver* observer) {
- rtp_rtcp_->RegisterVideoBitrateObserver(observer);
- CriticalSectionScoped cs(rtp_rtcp_cs_.get());
- for (std::list<RtpRtcp*>::const_iterator it = simulcast_rtp_rtcp_.begin();
- it != simulcast_rtp_rtcp_.end();
- it++) {
- (*it)->RegisterVideoBitrateObserver(observer);
- }
-}
-
void ViEChannel::GetEstimatedReceiveBandwidth(
uint32_t* estimated_bandwidth) const {
vie_receiver_.EstimatedReceiveBandwidth(estimated_bandwidth);
diff --git a/webrtc/video_engine/vie_channel.h b/webrtc/video_engine/vie_channel.h
index a4b3dd0..0ee677e 100644
--- a/webrtc/video_engine/vie_channel.h
+++ b/webrtc/video_engine/vie_channel.h
@@ -202,9 +202,6 @@
bool GetSendSideDelay(int* avg_send_delay, int* max_send_delay) const;
void GetEstimatedReceiveBandwidth(uint32_t* estimated_bandwidth) const;
- // Called on any new send bitrate estimate.
- void RegisterSendBitrateObserver(BitrateStatisticsObserver* observer);
-
int32_t StartRTPDump(const char file_nameUTF8[1024],
RTPDirections direction);
int32_t StopRTPDump(RTPDirections direction);
diff --git a/webrtc/video_engine/vie_rtp_rtcp_impl.cc b/webrtc/video_engine/vie_rtp_rtcp_impl.cc
index e07ab6c..ce2f434 100644
--- a/webrtc/video_engine/vie_rtp_rtcp_impl.cc
+++ b/webrtc/video_engine/vie_rtp_rtcp_impl.cc
@@ -1206,38 +1206,16 @@
// TODO(sprang): Implement
return -1;
}
-
-// Called whenever the send bitrate is updated.
int ViERTP_RTCPImpl::RegisterSendBitrateObserver(
- const int video_channel,
- BitrateStatisticsObserver* observer) {
- WEBRTC_TRACE(kTraceApiCall,
- kTraceVideo,
- ViEId(shared_data_->instance_id(), video_channel),
- "%s(channel: %d)",
- __FUNCTION__,
- video_channel);
- ViEChannelManagerScoped cs(*(shared_data_->channel_manager()));
- ViEChannel* vie_channel = cs.Channel(video_channel);
- assert(vie_channel != NULL);
- vie_channel->RegisterSendBitrateObserver(observer);
- return 0;
+ int channel, BitrateStatisticsObserver* callback) {
+ // TODO(sprang): Implement
+ return -1;
}
int ViERTP_RTCPImpl::DeregisterSendBitrateObserver(
- const int video_channel,
- BitrateStatisticsObserver* observer) {
- WEBRTC_TRACE(kTraceApiCall,
- kTraceVideo,
- ViEId(shared_data_->instance_id(), video_channel),
- "%s(channel: %d)",
- __FUNCTION__,
- video_channel);
- ViEChannelManagerScoped cs(*(shared_data_->channel_manager()));
- ViEChannel* vie_channel = cs.Channel(video_channel);
- assert(vie_channel != NULL);
- vie_channel->RegisterSendBitrateObserver(NULL);
- return 0;
+ int channel, BitrateStatisticsObserver* callback) {
+ // TODO(sprang): Implement
+ return -1;
}
int ViERTP_RTCPImpl::RegisterSendFrameCountObserver(