aboutsummaryrefslogtreecommitdiff
path: root/webrtc/modules/pacing
diff options
context:
space:
mode:
authorsprang <sprang@webrtc.org>2015-09-21 15:11:14 -0700
committerCommit bot <commit-bot@chromium.org>2015-09-21 22:11:18 +0000
commitebbf8a805b45613b4cb118e4eb0cebe7eeee69ac (patch)
tree55b6c25bda26d395b5e8b090b0555a0f7e0f75e6 /webrtc/modules/pacing
parent04ac81f2fd8ef6680522438fac1894db5415a0ec (diff)
downloadwebrtc-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.gn1
-rw-r--r--webrtc/modules/pacing/bitrate_prober.cc5
-rw-r--r--webrtc/modules/pacing/bitrate_prober.h2
-rw-r--r--webrtc/modules/pacing/include/paced_sender.h25
-rw-r--r--webrtc/modules/pacing/include/packet_router.h10
-rw-r--r--webrtc/modules/pacing/paced_sender.cc13
-rw-r--r--webrtc/modules/pacing/pacing.gypi1
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',