diff options
author | sprang <sprang@webrtc.org> | 2015-09-21 15:11:14 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-21 22:11:18 +0000 |
commit | ebbf8a805b45613b4cb118e4eb0cebe7eeee69ac (patch) | |
tree | 55b6c25bda26d395b5e8b090b0555a0f7e0f75e6 /webrtc/modules/pacing | |
parent | 04ac81f2fd8ef6680522438fac1894db5415a0ec (diff) | |
download | webrtc-ebbf8a805b45613b4cb118e4eb0cebe7eeee69ac.tar.gz |
Make sure rtp_rtcp module doesn't directly reference anything in the pacer module, and remove build dependencies on it.
BUG=
Review URL: https://codereview.webrtc.org/1350163005
Cr-Commit-Position: refs/heads/master@{#10005}
Diffstat (limited to 'webrtc/modules/pacing')
-rw-r--r-- | webrtc/modules/pacing/BUILD.gn | 1 | ||||
-rw-r--r-- | webrtc/modules/pacing/bitrate_prober.cc | 5 | ||||
-rw-r--r-- | webrtc/modules/pacing/bitrate_prober.h | 2 | ||||
-rw-r--r-- | webrtc/modules/pacing/include/paced_sender.h | 25 | ||||
-rw-r--r-- | webrtc/modules/pacing/include/packet_router.h | 10 | ||||
-rw-r--r-- | webrtc/modules/pacing/paced_sender.cc | 13 | ||||
-rw-r--r-- | webrtc/modules/pacing/pacing.gypi | 1 |
7 files changed, 29 insertions, 28 deletions
diff --git a/webrtc/modules/pacing/BUILD.gn b/webrtc/modules/pacing/BUILD.gn index 69cd6db558..3e478c1e76 100644 --- a/webrtc/modules/pacing/BUILD.gn +++ b/webrtc/modules/pacing/BUILD.gn @@ -28,5 +28,6 @@ source_set("pacing") { deps = [ "../../system_wrappers", "../bitrate_controller", + "../rtp_rtcp", ] } diff --git a/webrtc/modules/pacing/bitrate_prober.cc b/webrtc/modules/pacing/bitrate_prober.cc index bedb892267..d09ad2df16 100644 --- a/webrtc/modules/pacing/bitrate_prober.cc +++ b/webrtc/modules/pacing/bitrate_prober.cc @@ -15,6 +15,7 @@ #include <limits> #include <sstream> +#include "webrtc/modules/pacing/include/paced_sender.h" #include "webrtc/system_wrappers/interface/logging.h" namespace webrtc { @@ -29,8 +30,6 @@ int ComputeDeltaFromBitrate(size_t packet_size, int bitrate_bps) { } } // namespace -const size_t BitrateProber::kMinProbePacketSize = 200; - BitrateProber::BitrateProber() : probing_state_(kDisabled), packet_size_last_send_(0), @@ -90,7 +89,7 @@ int BitrateProber::TimeUntilNextProbe(int64_t now_ms) { // We will send the first probe packet immediately if no packet has been // sent before. int time_until_probe_ms = 0; - if (packet_size_last_send_ > kMinProbePacketSize && + if (packet_size_last_send_ > PacedSender::kMinProbePacketSize && probing_state_ == kProbing) { int next_delta_ms = ComputeDeltaFromBitrate(packet_size_last_send_, probe_bitrates_.front()); diff --git a/webrtc/modules/pacing/bitrate_prober.h b/webrtc/modules/pacing/bitrate_prober.h index c26b0d6275..b3f52afeb6 100644 --- a/webrtc/modules/pacing/bitrate_prober.h +++ b/webrtc/modules/pacing/bitrate_prober.h @@ -22,8 +22,6 @@ namespace webrtc { // on being protected by the caller. class BitrateProber { public: - static const size_t kMinProbePacketSize; - BitrateProber(); void SetEnabled(bool enable); diff --git a/webrtc/modules/pacing/include/paced_sender.h b/webrtc/modules/pacing/include/paced_sender.h index 645999d507..afb196fe45 100644 --- a/webrtc/modules/pacing/include/paced_sender.h +++ b/webrtc/modules/pacing/include/paced_sender.h @@ -17,6 +17,7 @@ #include "webrtc/base/scoped_ptr.h" #include "webrtc/base/thread_annotations.h" #include "webrtc/modules/interface/module.h" +#include "webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h" #include "webrtc/typedefs.h" namespace webrtc { @@ -30,16 +31,8 @@ struct Packet; class PacketQueue; } // namespace paced_sender -class PacedSender : public Module { +class PacedSender : public Module, public RtpPacketSender { public: - enum Priority { - kHighPriority = 0, // Pass through; will be sent immediately. - kNormalPriority = 2, // Put in back of the line. - kLowPriority = 3, // Put in back of the low priority line. - }; - // Low priority packets are mixed with the normal priority packets - // while we are paused. - class Callback { public: // Note: packets sent as a result of a callback should not pass by this @@ -68,6 +61,8 @@ class PacedSender : public Module { // overshoots from the encoder. static const float kDefaultPaceMultiplier; + static const size_t kMinProbePacketSize = 200; + PacedSender(Clock* clock, Callback* callback, int bitrate_kbps, @@ -103,12 +98,12 @@ class PacedSender : public Module { // Returns true if we send the packet now, else it will add the packet // information to the queue and call TimeToSendPacket when it's time to send. - virtual bool SendPacket(Priority priority, - uint32_t ssrc, - uint16_t sequence_number, - int64_t capture_time_ms, - size_t bytes, - bool retransmission); + bool SendPacket(RtpPacketSender::Priority priority, + uint32_t ssrc, + uint16_t sequence_number, + int64_t capture_time_ms, + size_t bytes, + bool retransmission) override; // Returns the time since the oldest queued packet was enqueued. virtual int64_t QueueInMs() const; diff --git a/webrtc/modules/pacing/include/packet_router.h b/webrtc/modules/pacing/include/packet_router.h index d0bcf558f6..9d461d13a9 100644 --- a/webrtc/modules/pacing/include/packet_router.h +++ b/webrtc/modules/pacing/include/packet_router.h @@ -19,15 +19,19 @@ #include "webrtc/base/thread_annotations.h" #include "webrtc/common_types.h" #include "webrtc/modules/pacing/include/paced_sender.h" -#include "webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h" +#include "webrtc/modules/rtp_rtcp/interface/rtp_rtcp_defines.h" namespace webrtc { class RtpRtcp; +namespace rtcp { +class TransportFeedback; +} // namespace rtcp // PacketRouter routes outgoing data to the correct sending RTP module, based // on the simulcast layer in RTPVideoHeader. -class PacketRouter : public PacedSender::Callback { +class PacketRouter : public PacedSender::Callback, + public TransportSequenceNumberAllocator { public: PacketRouter(); virtual ~PacketRouter(); @@ -44,7 +48,7 @@ class PacketRouter : public PacedSender::Callback { size_t TimeToSendPadding(size_t bytes) override; void SetTransportWideSequenceNumber(uint16_t sequence_number); - uint16_t AllocateSequenceNumber(); + uint16_t AllocateSequenceNumber() override; // Send transport feedback packet to send-side. virtual bool SendFeedback(rtcp::TransportFeedback* packet); diff --git a/webrtc/modules/pacing/paced_sender.cc b/webrtc/modules/pacing/paced_sender.cc index d5df480974..55c361b085 100644 --- a/webrtc/modules/pacing/paced_sender.cc +++ b/webrtc/modules/pacing/paced_sender.cc @@ -36,7 +36,7 @@ const int64_t kMaxIntervalTimeMs = 30; namespace webrtc { namespace paced_sender { struct Packet { - Packet(PacedSender::Priority priority, + Packet(RtpPacketSender::Priority priority, uint32_t ssrc, uint16_t seq_number, int64_t capture_time_ms, @@ -53,7 +53,7 @@ struct Packet { retransmission(retransmission), enqueue_order(enqueue_order) {} - PacedSender::Priority priority; + RtpPacketSender::Priority priority; uint32_t ssrc; uint16_t sequence_number; int64_t capture_time_ms; @@ -268,9 +268,12 @@ void PacedSender::UpdateBitrate(int bitrate_kbps, bitrate_bps_ = 1000 * bitrate_kbps; } -bool PacedSender::SendPacket(Priority priority, uint32_t ssrc, - uint16_t sequence_number, int64_t capture_time_ms, size_t bytes, - bool retransmission) { +bool PacedSender::SendPacket(RtpPacketSender::Priority priority, + uint32_t ssrc, + uint16_t sequence_number, + int64_t capture_time_ms, + size_t bytes, + bool retransmission) { CriticalSectionScoped cs(critsect_.get()); if (!enabled_) { diff --git a/webrtc/modules/pacing/pacing.gypi b/webrtc/modules/pacing/pacing.gypi index 29d9508648..faa97841c1 100644 --- a/webrtc/modules/pacing/pacing.gypi +++ b/webrtc/modules/pacing/pacing.gypi @@ -14,6 +14,7 @@ 'dependencies': [ '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers', '<(webrtc_root)/modules/modules.gyp:bitrate_controller', + '<(webrtc_root)/modules/modules.gyp:rtp_rtcp', ], 'sources': [ 'include/paced_sender.h', |