Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Unified Diff: webrtc/modules/pacing/paced_sender.h

Issue 2999073002: Tweaked version of BBR for WebRTC. (Closed)
Patch Set: Rebase. Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/pacing/paced_sender.h
diff --git a/webrtc/modules/pacing/paced_sender.h b/webrtc/modules/pacing/paced_sender.h
index a1f7ebefec950197b8a2e2bda09ce3e4660181cd..a9d8ae741b98e675f12a12342aabf995b67971fe 100644
--- a/webrtc/modules/pacing/paced_sender.h
+++ b/webrtc/modules/pacing/paced_sender.h
@@ -15,8 +15,7 @@
#include <memory>
#include <set>
-#include "webrtc/modules/include/module.h"
-#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
+#include "webrtc/modules/pacing/pacer.h"
#include "webrtc/rtc_base/criticalsection.h"
#include "webrtc/rtc_base/optional.h"
#include "webrtc/rtc_base/thread_annotations.h"
@@ -28,14 +27,14 @@ class BitrateProber;
class Clock;
class ProbeClusterCreatedObserver;
class RtcEventLog;
-class IntervalBudget;
namespace paced_sender {
+class IntervalBudget;
struct Packet;
class PacketQueue;
} // namespace paced_sender
-class PacedSender : public Module, public RtpPacketSender {
+class PacedSender : public Pacer {
public:
class PacketSender {
public:
@@ -93,7 +92,7 @@ class PacedSender : public Module, public RtpPacketSender {
// |bitrate_bps| is our estimate of what we are allowed to send on average.
// We will pace out bursts of packets at a bitrate of
// |bitrate_bps| * kDefaultPaceMultiplier.
- virtual void SetEstimatedBitrate(uint32_t bitrate_bps);
+ void SetEstimatedBitrate(uint32_t bitrate_bps) override;
// Sets the minimum send bitrate and maximum padding bitrate requested by send
// streams.
@@ -150,9 +149,6 @@ class PacedSender : public Module, public RtpPacketSender {
// Called when the prober is associated with a process thread.
void ProcessThreadAttached(ProcessThread* process_thread) override;
- void SetPacingFactor(float pacing_factor);
- void SetQueueTimeLimit(int limit_ms);
-
private:
// Updates the number of bytes that can be sent for the next time interval.
void UpdateBudgetWithElapsedTime(int64_t delta_time_in_ms)
@@ -174,11 +170,13 @@ class PacedSender : public Module, public RtpPacketSender {
bool paused_ GUARDED_BY(critsect_);
// This is the media budget, keeping track of how many bits of media
// we can pace out during the current interval.
- std::unique_ptr<IntervalBudget> media_budget_ GUARDED_BY(critsect_);
+ std::unique_ptr<paced_sender::IntervalBudget> media_budget_
+ GUARDED_BY(critsect_);
// This is the padding budget, keeping track of how many bits of padding we're
// allowed to send out during the current interval. This budget will be
// utilized when there's no media to send.
- std::unique_ptr<IntervalBudget> padding_budget_ GUARDED_BY(critsect_);
+ std::unique_ptr<paced_sender::IntervalBudget> padding_budget_
+ GUARDED_BY(critsect_);
std::unique_ptr<BitrateProber> prober_ GUARDED_BY(critsect_);
bool probing_send_failure_;
@@ -195,9 +193,6 @@ class PacedSender : public Module, public RtpPacketSender {
std::unique_ptr<paced_sender::PacketQueue> packets_ GUARDED_BY(critsect_);
uint64_t packet_counter_;
ProcessThread* process_thread_ = nullptr;
-
- float pacing_factor_ GUARDED_BY(critsect_);
- int64_t queue_time_limit GUARDED_BY(critsect_);
};
} // namespace webrtc
#endif // WEBRTC_MODULES_PACING_PACED_SENDER_H_

Powered by Google App Engine
This is Rietveld 408576698