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

Unified Diff: webrtc/modules/rtp_rtcp/source/rtcp_sender.h

Issue 2546713002: Wire up RTCP XR target bitrate in rtp/rtcp module (Closed)
Patch Set: Addressed comments Created 4 years 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/rtp_rtcp/source/rtcp_sender.h
diff --git a/webrtc/modules/rtp_rtcp/source/rtcp_sender.h b/webrtc/modules/rtp_rtcp/source/rtcp_sender.h
index f59676685dbe81e27843953680f3b21ef155ff02..a8bd275eeaee2b962ffccac74f9b2c2b97a5079f 100644
--- a/webrtc/modules/rtp_rtcp/source/rtcp_sender.h
+++ b/webrtc/modules/rtp_rtcp/source/rtcp_sender.h
@@ -21,6 +21,7 @@
#include "webrtc/api/call/transport.h"
#include "webrtc/base/constructormagic.h"
#include "webrtc/base/criticalsection.h"
+#include "webrtc/base/optional.h"
#include "webrtc/base/random.h"
#include "webrtc/base/thread_annotations.h"
#include "webrtc/modules/remote_bitrate_estimator/include/bwe_defines.h"
@@ -150,6 +151,7 @@ class RTCPSender {
void SetCsrcs(const std::vector<uint32_t>& csrcs);
void SetTargetBitrate(unsigned int target_bitrate);
+ void SetVideoBitrateAllocation(const BitrateAllocation& bitrate);
bool SendFeedbackPacket(const rtcp::TransportFeedback& packet);
private:
@@ -180,7 +182,8 @@ class RTCPSender {
EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
std::unique_ptr<rtcp::RtcpPacket> BuildAPP(const RtcpContext& context)
EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
- std::unique_ptr<rtcp::RtcpPacket> BuildVoIPMetric(const RtcpContext& context)
+ std::unique_ptr<rtcp::RtcpPacket> BuildExtendedReports(
+ const RtcpContext& context)
EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
std::unique_ptr<rtcp::RtcpPacket> BuildBYE(const RtcpContext& context)
EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
@@ -192,11 +195,6 @@ class RTCPSender {
EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
std::unique_ptr<rtcp::RtcpPacket> BuildNACK(const RtcpContext& context)
EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
- std::unique_ptr<rtcp::RtcpPacket> BuildReceiverReferenceTime(
- const RtcpContext& context)
- EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
- std::unique_ptr<rtcp::RtcpPacket> BuildDlrr(const RtcpContext& context)
- EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
private:
const bool audio_;
@@ -257,7 +255,8 @@ class RTCPSender {
GUARDED_BY(critical_section_rtcp_sender_);
// XR VoIP metric
- RTCPVoIPMetric xr_voip_metric_ GUARDED_BY(critical_section_rtcp_sender_);
+ rtc::Optional<RTCPVoIPMetric> xr_voip_metric_
+ GUARDED_BY(critical_section_rtcp_sender_);
RtcpPacketTypeCounterObserver* const packet_type_counter_observer_;
RtcpPacketTypeCounter packet_type_counter_
@@ -265,22 +264,25 @@ class RTCPSender {
RTCPUtility::NackStats nack_stats_ GUARDED_BY(critical_section_rtcp_sender_);
- void SetFlag(RTCPPacketType type, bool is_volatile)
+ rtc::Optional<BitrateAllocation> video_bitrate_allocation_
+ GUARDED_BY(critical_section_rtcp_sender_);
+
+ void SetFlag(uint32_t type, bool is_volatile)
EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
void SetFlags(const std::set<RTCPPacketType>& types, bool is_volatile)
EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
- bool IsFlagPresent(RTCPPacketType type) const
+ bool IsFlagPresent(uint32_t type) const
EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
- bool ConsumeFlag(RTCPPacketType type, bool forced = false)
+ bool ConsumeFlag(uint32_t type, bool forced = false)
EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
bool AllVolatileFlagsConsumed() const
EXCLUSIVE_LOCKS_REQUIRED(critical_section_rtcp_sender_);
struct ReportFlag {
- ReportFlag(RTCPPacketType type, bool is_volatile)
+ ReportFlag(uint32_t type, bool is_volatile)
: type(type), is_volatile(is_volatile) {}
bool operator<(const ReportFlag& flag) const { return type < flag.type; }
bool operator==(const ReportFlag& flag) const { return type == flag.type; }
- const RTCPPacketType type;
+ const uint32_t type;
const bool is_volatile;
};
@@ -288,7 +290,8 @@ class RTCPSender {
typedef std::unique_ptr<rtcp::RtcpPacket> (RTCPSender::*BuilderFunc)(
const RtcpContext&);
- std::map<RTCPPacketType, BuilderFunc> builders_;
+ // Map from RTCPPacketType to builder.
+ std::map<uint32_t, BuilderFunc> builders_;
RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(RTCPSender);
};

Powered by Google App Engine
This is Rietveld 408576698