Switch from RtpPacketSender to RtpPacketPacer interface usage.
RtpPacketSender interface will be removed when downstream projects have been updated. Bug: webrtc:10633 Change-Id: Ie127b9814f39bd213d00ded0f7b98380f2f01084 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143175 Commit-Queue: Erik Språng <sprang@webrtc.org> Reviewed-by: Sebastian Jansson <srte@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Oskar Sundbom <ossu@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28350}
This commit is contained in:
parent
13eb7645fd
commit
59b8654045
@ -259,7 +259,7 @@ class ChannelSend : public ChannelSendInterface,
|
||||
nullptr;
|
||||
const std::unique_ptr<TransportFeedbackProxy> feedback_observer_proxy_;
|
||||
const std::unique_ptr<TransportSequenceNumberProxy> seq_num_allocator_proxy_;
|
||||
const std::unique_ptr<RtpPacketSenderProxy> rtp_packet_sender_proxy_;
|
||||
const std::unique_ptr<RtpPacketSenderProxy> rtp_packet_pacer_proxy_;
|
||||
const std::unique_ptr<RateLimiter> retransmission_rate_limiter_;
|
||||
|
||||
rtc::ThreadChecker construction_thread_;
|
||||
@ -364,14 +364,19 @@ class TransportSequenceNumberProxy : public TransportSequenceNumberAllocator {
|
||||
TransportSequenceNumberAllocator* seq_num_allocator_ RTC_GUARDED_BY(&crit_);
|
||||
};
|
||||
|
||||
class RtpPacketSenderProxy : public RtpPacketSender {
|
||||
class RtpPacketSenderProxy : public RtpPacketPacer {
|
||||
public:
|
||||
RtpPacketSenderProxy() : rtp_packet_sender_(nullptr) {}
|
||||
RtpPacketSenderProxy() : rtp_packet_pacer_(nullptr) {}
|
||||
|
||||
void SetPacketSender(RtpPacketSender* rtp_packet_sender) {
|
||||
void SetPacketPacer(RtpPacketPacer* rtp_packet_pacer) {
|
||||
RTC_DCHECK(thread_checker_.IsCurrent());
|
||||
rtc::CritScope lock(&crit_);
|
||||
rtp_packet_sender_ = rtp_packet_sender;
|
||||
rtp_packet_pacer_ = rtp_packet_pacer;
|
||||
}
|
||||
|
||||
void EnqueuePacket(std::unique_ptr<RtpPacketToSend> packet) override {
|
||||
rtc::CritScope lock(&crit_);
|
||||
rtp_packet_pacer_->EnqueuePacket(std::move(packet));
|
||||
}
|
||||
|
||||
// Implements RtpPacketSender.
|
||||
@ -382,9 +387,9 @@ class RtpPacketSenderProxy : public RtpPacketSender {
|
||||
size_t bytes,
|
||||
bool retransmission) override {
|
||||
rtc::CritScope lock(&crit_);
|
||||
if (rtp_packet_sender_) {
|
||||
rtp_packet_sender_->InsertPacket(priority, ssrc, sequence_number,
|
||||
capture_time_ms, bytes, retransmission);
|
||||
if (rtp_packet_pacer_) {
|
||||
rtp_packet_pacer_->InsertPacket(priority, ssrc, sequence_number,
|
||||
capture_time_ms, bytes, retransmission);
|
||||
}
|
||||
}
|
||||
|
||||
@ -395,7 +400,7 @@ class RtpPacketSenderProxy : public RtpPacketSender {
|
||||
private:
|
||||
rtc::ThreadChecker thread_checker_;
|
||||
rtc::CriticalSection crit_;
|
||||
RtpPacketSender* rtp_packet_sender_ RTC_GUARDED_BY(&crit_);
|
||||
RtpPacketPacer* rtp_packet_pacer_ RTC_GUARDED_BY(&crit_);
|
||||
};
|
||||
|
||||
class VoERtcpObserver : public RtcpBandwidthObserver {
|
||||
@ -643,7 +648,7 @@ ChannelSend::ChannelSend(Clock* clock,
|
||||
rtcp_observer_(new VoERtcpObserver(this)),
|
||||
feedback_observer_proxy_(new TransportFeedbackProxy()),
|
||||
seq_num_allocator_proxy_(new TransportSequenceNumberProxy()),
|
||||
rtp_packet_sender_proxy_(new RtpPacketSenderProxy()),
|
||||
rtp_packet_pacer_proxy_(new RtpPacketSenderProxy()),
|
||||
retransmission_rate_limiter_(
|
||||
new RateLimiter(clock, kMaxRetransmissionWindowMs)),
|
||||
use_twcc_plr_for_ana_(
|
||||
@ -676,7 +681,7 @@ ChannelSend::ChannelSend(Clock* clock,
|
||||
configuration.clock = Clock::GetRealTimeClock();
|
||||
configuration.outgoing_transport = rtp_transport;
|
||||
|
||||
configuration.paced_sender = rtp_packet_sender_proxy_.get();
|
||||
configuration.paced_sender = rtp_packet_pacer_proxy_.get();
|
||||
configuration.transport_sequence_number_allocator =
|
||||
seq_num_allocator_proxy_.get();
|
||||
|
||||
@ -993,12 +998,12 @@ void ChannelSend::RegisterSenderCongestionControlObjects(
|
||||
RtpTransportControllerSendInterface* transport,
|
||||
RtcpBandwidthObserver* bandwidth_observer) {
|
||||
RTC_DCHECK_RUN_ON(&worker_thread_checker_);
|
||||
RtpPacketSender* rtp_packet_sender = transport->packet_sender();
|
||||
RtpPacketPacer* rtp_packet_pacer = transport->packet_sender();
|
||||
TransportFeedbackObserver* transport_feedback_observer =
|
||||
transport->transport_feedback_observer();
|
||||
PacketRouter* packet_router = transport->packet_router();
|
||||
|
||||
RTC_DCHECK(rtp_packet_sender);
|
||||
RTC_DCHECK(rtp_packet_pacer);
|
||||
RTC_DCHECK(transport_feedback_observer);
|
||||
RTC_DCHECK(packet_router);
|
||||
RTC_DCHECK(!packet_router_);
|
||||
@ -1006,7 +1011,7 @@ void ChannelSend::RegisterSenderCongestionControlObjects(
|
||||
feedback_observer_proxy_->SetTransportFeedbackObserver(
|
||||
transport_feedback_observer);
|
||||
seq_num_allocator_proxy_->SetSequenceNumberAllocator(packet_router);
|
||||
rtp_packet_sender_proxy_->SetPacketSender(rtp_packet_sender);
|
||||
rtp_packet_pacer_proxy_->SetPacketPacer(rtp_packet_pacer);
|
||||
_rtpRtcpModule->SetStorePacketsStatus(true, 600);
|
||||
constexpr bool remb_candidate = false;
|
||||
packet_router->AddSendRtpModule(_rtpRtcpModule.get(), remb_candidate);
|
||||
@ -1022,7 +1027,7 @@ void ChannelSend::ResetSenderCongestionControlObjects() {
|
||||
seq_num_allocator_proxy_->SetSequenceNumberAllocator(nullptr);
|
||||
packet_router_->RemoveSendRtpModule(_rtpRtcpModule.get());
|
||||
packet_router_ = nullptr;
|
||||
rtp_packet_sender_proxy_->SetPacketSender(nullptr);
|
||||
rtp_packet_pacer_proxy_->SetPacketPacer(nullptr);
|
||||
}
|
||||
|
||||
void ChannelSend::SetRTCP_CNAME(absl::string_view c_name) {
|
||||
|
||||
@ -161,7 +161,7 @@ RtpTransportControllerSend::transport_feedback_observer() {
|
||||
return this;
|
||||
}
|
||||
|
||||
RtpPacketSender* RtpTransportControllerSend::packet_sender() {
|
||||
RtpPacketPacer* RtpTransportControllerSend::packet_sender() {
|
||||
return &pacer_;
|
||||
}
|
||||
|
||||
|
||||
@ -74,7 +74,7 @@ class RtpTransportControllerSend final
|
||||
PacketRouter* packet_router() override;
|
||||
|
||||
TransportFeedbackObserver* transport_feedback_observer() override;
|
||||
RtpPacketSender* packet_sender() override;
|
||||
RtpPacketPacer* packet_sender() override;
|
||||
|
||||
void SetAllocatedSendBitrateLimits(int min_send_bitrate_bps,
|
||||
int max_padding_bitrate_bps,
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
#include "logging/rtc_event_log/rtc_event_log.h"
|
||||
#include "modules/rtp_rtcp/include/report_block_data.h"
|
||||
#include "modules/rtp_rtcp/include/rtcp_statistics.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_packet_pacer.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_packet_received.h"
|
||||
|
||||
@ -117,7 +118,7 @@ class RtpTransportControllerSendInterface {
|
||||
|
||||
virtual TransportFeedbackObserver* transport_feedback_observer() = 0;
|
||||
|
||||
virtual RtpPacketSender* packet_sender() = 0;
|
||||
virtual RtpPacketPacer* packet_sender() = 0;
|
||||
|
||||
// SetAllocatedSendBitrateLimits sets bitrates limits imposed by send codec
|
||||
// settings.
|
||||
|
||||
@ -46,7 +46,7 @@ class MockRtpTransportControllerSend
|
||||
MOCK_METHOD0(GetWorkerQueue, rtc::TaskQueue*());
|
||||
MOCK_METHOD0(packet_router, PacketRouter*());
|
||||
MOCK_METHOD0(transport_feedback_observer, TransportFeedbackObserver*());
|
||||
MOCK_METHOD0(packet_sender, RtpPacketSender*());
|
||||
MOCK_METHOD0(packet_sender, RtpPacketPacer*());
|
||||
MOCK_METHOD3(SetAllocatedSendBitrateLimits, void(int, int, int));
|
||||
MOCK_METHOD1(SetPacingFactor, void(float));
|
||||
MOCK_METHOD1(SetQueueTimeLimit, void(int));
|
||||
|
||||
@ -25,6 +25,7 @@
|
||||
#include "modules/rtp_rtcp/include/flexfec_sender.h"
|
||||
#include "modules/rtp_rtcp/include/receive_statistics.h"
|
||||
#include "modules/rtp_rtcp/include/report_block_data.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_packet_pacer.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_packet_to_send.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_sender.h"
|
||||
@ -86,7 +87,7 @@ class RtpRtcp : public Module, public RtcpFeedbackSenderInterface {
|
||||
RemoteBitrateEstimator* remote_bitrate_estimator = nullptr;
|
||||
|
||||
// Spread any bursts of packets into smaller bursts to minimize packet loss.
|
||||
RtpPacketSender* paced_sender = nullptr;
|
||||
RtpPacketPacer* paced_sender = nullptr;
|
||||
|
||||
// Generate FlexFEC packets.
|
||||
// TODO(brandtr): Remove when FlexfecSender is wired up to PacedSender.
|
||||
|
||||
@ -129,7 +129,7 @@ RTPSender::RTPSender(
|
||||
bool audio,
|
||||
Clock* clock,
|
||||
Transport* transport,
|
||||
RtpPacketSender* paced_sender,
|
||||
RtpPacketPacer* paced_sender,
|
||||
absl::optional<uint32_t> flexfec_ssrc,
|
||||
TransportSequenceNumberAllocator* sequence_number_allocator,
|
||||
TransportFeedbackObserver* transport_feedback_observer,
|
||||
|
||||
@ -24,6 +24,7 @@
|
||||
#include "api/transport/webrtc_key_value_config.h"
|
||||
#include "modules/rtp_rtcp/include/flexfec_sender.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_packet_pacer.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_packet_history.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_rtcp_config.h"
|
||||
@ -47,7 +48,7 @@ class RTPSender {
|
||||
RTPSender(bool audio,
|
||||
Clock* clock,
|
||||
Transport* transport,
|
||||
RtpPacketSender* paced_sender,
|
||||
RtpPacketPacer* paced_sender,
|
||||
absl::optional<uint32_t> flexfec_ssrc,
|
||||
TransportSequenceNumberAllocator* sequence_number_allocator,
|
||||
TransportFeedbackObserver* transport_feedback_callback,
|
||||
@ -238,7 +239,7 @@ class RTPSender {
|
||||
|
||||
const absl::optional<uint32_t> flexfec_ssrc_;
|
||||
|
||||
RtpPacketSender* const paced_sender_;
|
||||
RtpPacketPacer* const paced_sender_;
|
||||
TransportSequenceNumberAllocator* const transport_sequence_number_allocator_;
|
||||
TransportFeedbackObserver* const transport_feedback_observer_;
|
||||
rtc::CriticalSection send_critsect_;
|
||||
|
||||
@ -20,6 +20,7 @@
|
||||
#include "modules/rtp_rtcp/include/rtp_cvo.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_header_parser.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_packet_pacer.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||
#include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_format_video_generic.h"
|
||||
@ -140,10 +141,12 @@ MATCHER_P(SameRtcEventTypeAs, value, "") {
|
||||
|
||||
} // namespace
|
||||
|
||||
class MockRtpPacketSender : public RtpPacketSender {
|
||||
class MockRtpPacketPacer : public RtpPacketPacer {
|
||||
public:
|
||||
MockRtpPacketSender() {}
|
||||
virtual ~MockRtpPacketSender() {}
|
||||
MockRtpPacketPacer() {}
|
||||
virtual ~MockRtpPacketPacer() {}
|
||||
|
||||
MOCK_METHOD1(EnqueuePacket, void(std::unique_ptr<RtpPacketToSend>));
|
||||
|
||||
MOCK_METHOD6(InsertPacket,
|
||||
void(Priority priority,
|
||||
@ -212,7 +215,7 @@ class RtpSenderTest : public ::testing::TestWithParam<bool> {
|
||||
|
||||
SimulatedClock fake_clock_;
|
||||
NiceMock<MockRtcEventLog> mock_rtc_event_log_;
|
||||
MockRtpPacketSender mock_paced_sender_;
|
||||
MockRtpPacketPacer mock_paced_sender_;
|
||||
StrictMock<MockTransportSequenceNumberAllocator> seq_num_allocator_;
|
||||
StrictMock<MockSendPacketObserver> send_packet_observer_;
|
||||
StrictMock<MockTransportFeedbackObserver> feedback_observer_;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user