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

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

Issue 2789843002: Delete VieRemb class, move functionality to PacketRouter. (Closed)
Patch Set: Delete obsolete suppression for PacketRouterTest.SendTransportFeedback. Created 3 years, 8 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
« no previous file with comments | « webrtc/modules/pacing/BUILD.gn ('k') | webrtc/modules/pacing/packet_router.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/pacing/packet_router.h
diff --git a/webrtc/modules/pacing/packet_router.h b/webrtc/modules/pacing/packet_router.h
index ffc0c1a59d3bc8f86ecea77aed4ac05d6ebe139d..ea05d45d77bb83351df303cbc8c4613319127d84 100644
--- a/webrtc/modules/pacing/packet_router.h
+++ b/webrtc/modules/pacing/packet_router.h
@@ -20,6 +20,7 @@
#include "webrtc/base/thread_checker.h"
#include "webrtc/common_types.h"
#include "webrtc/modules/pacing/paced_sender.h"
+#include "webrtc/modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
namespace webrtc {
@@ -35,7 +36,8 @@ class TransportFeedback;
// (receiver report). For the latter case, we also keep track of the
// receive modules.
class PacketRouter : public PacedSender::PacketSender,
- public TransportSequenceNumberAllocator {
+ public TransportSequenceNumberAllocator,
+ public RemoteBitrateObserver {
public:
PacketRouter();
virtual ~PacketRouter();
@@ -66,8 +68,20 @@ class PacketRouter : public PacedSender::PacketSender,
void SetTransportWideSequenceNumber(uint16_t sequence_number);
uint16_t AllocateSequenceNumber() override;
+ // Called every time there is a new bitrate estimate for a receive channel
+ // group. This call will trigger a new RTCP REMB packet if the bitrate
+ // estimate has decreased or if no RTCP REMB packet has been sent for
+ // a certain time interval.
+ // Implements RtpReceiveBitrateUpdate.
+ void OnReceiveBitrateChanged(const std::vector<uint32_t>& ssrcs,
+ uint32_t bitrate_bps) override;
+
+ // Send REMB feedback.
+ virtual bool SendRemb(uint32_t bitrate_bps,
+ const std::vector<uint32_t>& ssrcs);
+
// Send transport feedback packet to send-side.
- virtual bool SendFeedback(rtcp::TransportFeedback* packet);
+ virtual bool SendTransportFeedback(rtcp::TransportFeedback* packet);
private:
rtc::ThreadChecker pacer_thread_checker_;
@@ -75,6 +89,13 @@ class PacketRouter : public PacedSender::PacketSender,
std::list<RtpRtcp*> rtp_send_modules_ GUARDED_BY(modules_crit_);
std::vector<RtpRtcp*> rtp_receive_modules_ GUARDED_BY(modules_crit_);
+ rtc::CriticalSection remb_crit_;
+ // The last time a REMB was sent.
+ int64_t last_remb_time_ms_ GUARDED_BY(remb_crit_);
+ uint32_t last_send_bitrate_bps_ GUARDED_BY(remb_crit_);
+ // The last bitrate update.
+ uint32_t bitrate_bps_ GUARDED_BY(remb_crit_);
+
volatile int transport_seq_;
RTC_DISALLOW_COPY_AND_ASSIGN(PacketRouter);
« no previous file with comments | « webrtc/modules/pacing/BUILD.gn ('k') | webrtc/modules/pacing/packet_router.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698