In ReceiveStatistic require callbacks during construction
Remove RegisterRtcpStatisticsCallback callback functions saving taking an extra lock when calling callbacks. Bug: None Change-Id: Ib4537deffa0ab0abf597228e7c0fab7067614f6a Reviewed-on: https://webrtc-review.googlesource.com/c/111821 Reviewed-by: Oskar Sundbom <ossu@webrtc.org> Reviewed-by: Åsa Persson <asapersson@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#25779}
This commit is contained in:
committed by
Commit Bot
parent
4c0cc5bc5f
commit
8ce0d2b956
@ -71,7 +71,9 @@ void IncrementTimestamp(RtpPacketReceived* packet, uint32_t incr) {
|
||||
class ReceiveStatisticsTest : public ::testing::Test {
|
||||
public:
|
||||
ReceiveStatisticsTest()
|
||||
: clock_(0), receive_statistics_(ReceiveStatistics::Create(&clock_)) {
|
||||
: clock_(0),
|
||||
receive_statistics_(
|
||||
ReceiveStatistics::Create(&clock_, nullptr, nullptr)) {
|
||||
packet1_ = CreateRtpPacket(kSsrc1, kPacketSize1);
|
||||
packet2_ = CreateRtpPacket(kSsrc2, kPacketSize2);
|
||||
}
|
||||
@ -251,7 +253,7 @@ TEST_F(ReceiveStatisticsTest, RtcpCallbacks) {
|
||||
RtcpStatistics stats_;
|
||||
} callback;
|
||||
|
||||
receive_statistics_->RegisterRtcpStatisticsCallback(&callback);
|
||||
receive_statistics_ = ReceiveStatistics::Create(&clock_, &callback, nullptr);
|
||||
receive_statistics_->EnableRetransmitDetection(kSsrc1, true);
|
||||
|
||||
// Add some arbitrary data, with loss and jitter.
|
||||
@ -291,33 +293,6 @@ TEST_F(ReceiveStatisticsTest, RtcpCallbacks) {
|
||||
EXPECT_EQ(1, statistics.packets_lost);
|
||||
EXPECT_EQ(5u, statistics.extended_highest_sequence_number);
|
||||
EXPECT_EQ(177u, statistics.jitter);
|
||||
|
||||
receive_statistics_->RegisterRtcpStatisticsCallback(NULL);
|
||||
|
||||
// Add some more data.
|
||||
packet1_.SetSequenceNumber(1);
|
||||
clock_.AdvanceTimeMilliseconds(7);
|
||||
IncrementTimestamp(&packet1_, 3);
|
||||
receive_statistics_->OnRtpPacket(packet1_);
|
||||
IncrementSequenceNumber(&packet1_, 2);
|
||||
clock_.AdvanceTimeMilliseconds(9);
|
||||
IncrementTimestamp(&packet1_, 9);
|
||||
receive_statistics_->OnRtpPacket(packet1_);
|
||||
IncrementSequenceNumber(&packet1_, -1);
|
||||
clock_.AdvanceTimeMilliseconds(13);
|
||||
IncrementTimestamp(&packet1_, 47);
|
||||
receive_statistics_->OnRtpPacket(packet1_);
|
||||
IncrementSequenceNumber(&packet1_, 3);
|
||||
clock_.AdvanceTimeMilliseconds(11);
|
||||
IncrementTimestamp(&packet1_, 17);
|
||||
receive_statistics_->OnRtpPacket(packet1_);
|
||||
IncrementSequenceNumber(&packet1_);
|
||||
|
||||
receive_statistics_->GetStatistician(kSsrc1)->GetStatistics(&statistics,
|
||||
true);
|
||||
|
||||
// Should not have been called after deregister.
|
||||
EXPECT_EQ(1u, callback.num_calls_);
|
||||
}
|
||||
|
||||
class RtpTestCallback : public StreamDataCountersCallback {
|
||||
@ -358,7 +333,7 @@ class RtpTestCallback : public StreamDataCountersCallback {
|
||||
|
||||
TEST_F(ReceiveStatisticsTest, RtpCallbacks) {
|
||||
RtpTestCallback callback;
|
||||
receive_statistics_->RegisterRtpStatisticsCallback(&callback);
|
||||
receive_statistics_ = ReceiveStatistics::Create(&clock_, nullptr, &callback);
|
||||
receive_statistics_->EnableRetransmitDetection(kSsrc1, true);
|
||||
|
||||
const size_t kHeaderLength = 20;
|
||||
@ -417,19 +392,11 @@ TEST_F(ReceiveStatisticsTest, RtpCallbacks) {
|
||||
expected.fec.header_bytes = kHeaderLength;
|
||||
expected.fec.packets = 1;
|
||||
callback.Matches(5, kSsrc1, expected);
|
||||
|
||||
receive_statistics_->RegisterRtpStatisticsCallback(NULL);
|
||||
|
||||
// New stats, but callback should not be called.
|
||||
IncrementSequenceNumber(&packet1);
|
||||
clock_.AdvanceTimeMilliseconds(5);
|
||||
receive_statistics_->OnRtpPacket(packet1);
|
||||
callback.Matches(5, kSsrc1, expected);
|
||||
}
|
||||
|
||||
TEST_F(ReceiveStatisticsTest, RtpCallbacksFecFirst) {
|
||||
RtpTestCallback callback;
|
||||
receive_statistics_->RegisterRtpStatisticsCallback(&callback);
|
||||
receive_statistics_ = ReceiveStatistics::Create(&clock_, nullptr, &callback);
|
||||
|
||||
const uint32_t kHeaderLength = 20;
|
||||
RtpPacketReceived packet =
|
||||
|
||||
Reference in New Issue
Block a user