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

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

Issue 2340763004: Add AlrDetector (Closed)
Patch Set: Fix ASAN/TSAN failures Created 4 years, 3 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 02d1dbd3d65a17262c697f364db2c02ec0eb9c2a..092b42bc54668e844fa7ba5e1e0548e63861e8fc 100644
--- a/webrtc/modules/pacing/paced_sender.h
+++ b/webrtc/modules/pacing/paced_sender.h
@@ -21,6 +21,7 @@
#include "webrtc/typedefs.h"
namespace webrtc {
+class AlrDetector;
class BitrateProber;
class Clock;
class CriticalSectionWrapper;
@@ -52,6 +53,14 @@ class PacedSender : public Module, public RtpPacketSender {
virtual ~PacketSender() {}
};
+ class PacingObserver {
stefan-webrtc 2016/09/27 14:26:09 Wouldn't it be simpler to let the PacedSender own
+ public:
+ virtual void OnBytesSent(size_t bytes_sent, int64_t elapsed_time_ms) = 0;
+
+ protected:
+ virtual ~PacingObserver() {}
+ };
+
// Expected max pacer delay in ms. If ExpectedQueueTimeMs() is higher than
// this value, the packet producers should wait (eg drop frames rather than
// encoding them). Bitrate sent may temporarily exceed target set by
@@ -67,7 +76,9 @@ class PacedSender : public Module, public RtpPacketSender {
static const size_t kMinProbePacketSize = 200;
PacedSender(Clock* clock,
- PacketSender* packet_sender);
+ PacketSender* packet_sender,
+ PacingObserver* pacing_observer);
+ PacedSender(Clock* clock, PacketSender* packet_sender);
virtual ~PacedSender();
@@ -132,7 +143,9 @@ class PacedSender : public Module, public RtpPacketSender {
private:
// Updates the number of bytes that can be sent for the next time interval.
- void UpdateBytesPerInterval(int64_t delta_time_in_ms)
+ void UpdateBudgetWithElapsedTime(int64_t delta_time_in_ms)
+ EXCLUSIVE_LOCKS_REQUIRED(critsect_);
+ void UpdateBudgetWithBytesSent(size_t bytes)
EXCLUSIVE_LOCKS_REQUIRED(critsect_);
bool SendPacket(const paced_sender::Packet& packet, int probe_cluster_id)
@@ -142,6 +155,7 @@ class PacedSender : public Module, public RtpPacketSender {
Clock* const clock_;
PacketSender* const packet_sender_;
+ PacingObserver* const pacing_observer_;
std::unique_ptr<CriticalSectionWrapper> critsect_;
bool paused_ GUARDED_BY(critsect_);
« no previous file with comments | « webrtc/modules/congestion_controller/include/congestion_controller.h ('k') | webrtc/modules/pacing/paced_sender.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698