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

Unified Diff: media/cast/rtcp/rtcp_sender.cc

Issue 70713002: Cast: Restructure RTCP interface to better fit our usage. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 1 month 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: media/cast/rtcp/rtcp_sender.cc
diff --git a/media/cast/rtcp/rtcp_sender.cc b/media/cast/rtcp/rtcp_sender.cc
index cd1c50c579c97db3d27bdf8f5fc22eb70f55d90c..dd38bd569348f2ea28d0a37f83a85e815c40d873 100644
--- a/media/cast/rtcp/rtcp_sender.cc
+++ b/media/cast/rtcp/rtcp_sender.cc
@@ -30,46 +30,73 @@ RtcpSender::RtcpSender(PacedPacketSender* outgoing_transport,
RtcpSender::~RtcpSender() {}
-void RtcpSender::SendRtcp(uint32 packet_type_flags,
- const RtcpSenderInfo* sender_info,
- const RtcpReportBlock* report_block,
- uint32 pli_remote_ssrc,
- const RtcpDlrrReportBlock* dlrr,
- const RtcpReceiverReferenceTimeReport* rrtr,
- const RtcpCastMessage* cast_message) {
+void RtcpSender::SendRtcpFromRtpSender(uint32 packet_type_flags,
+ const RtcpSenderInfo* sender_info,
+ const RtcpDlrrReportBlock* dlrr,
+ const RtcpSenderLogMessage* sender_log) {
+ if (packet_type_flags & kRtcpRr ||
Alpha Left Google 2013/11/13 23:58:40 This condition in incorrect. It should be the oppo
pwestin 2013/11/15 00:20:32 Please clarify; this does what I want it to do. If
+ packet_type_flags & kRtcpPli ||
+ packet_type_flags & kRtcpRrtr ||
+ packet_type_flags & kRtcpCast ||
+ packet_type_flags & kRtcpReceiverLog ||
+ packet_type_flags & kRtcpRpsi ||
+ packet_type_flags & kRtcpRemb ||
+ packet_type_flags & kRtcpNack) {
+ NOTREACHED() << "Invalid argument";
+ }
+
std::vector<uint8> packet;
packet.reserve(kIpPacketSize);
if (packet_type_flags & kRtcpSr) {
DCHECK(sender_info) << "Invalid argument";
- BuildSR(*sender_info, report_block, &packet);
+ BuildSR(*sender_info, NULL, &packet);
BuildSdec(&packet);
- } else if (packet_type_flags & kRtcpRr) {
- BuildRR(report_block, &packet);
- if (!c_name_.empty()) {
- BuildSdec(&packet);
- }
- }
- if (packet_type_flags & kRtcpPli) {
- BuildPli(pli_remote_ssrc, &packet);
}
if (packet_type_flags & kRtcpBye) {
BuildBye(&packet);
}
- if (packet_type_flags & kRtcpRpsi) {
- // Implement this for webrtc interop.
- NOTIMPLEMENTED();
+ if (packet_type_flags & kRtcpDlrr) {
+ DCHECK(dlrr) << "Invalid argument";
+ BuildDlrrRb(dlrr, &packet);
}
- if (packet_type_flags & kRtcpRemb) {
- // Implement this for webrtc interop.
- NOTIMPLEMENTED();
+ if (packet_type_flags & kRtcpSenderLog) {
+ DCHECK(sender_log) << "Invalid argument";
+ BuildSenderLog(sender_log, &packet);
}
- if (packet_type_flags & kRtcpNack) {
- // Implement this for webrtc interop.
+ if (packet.empty()) return; // Sanity don't send empty packets.
Alpha Left Google 2013/11/13 23:58:40 nit: drop return to next line.
pwestin 2013/11/15 00:20:32 Done.
+
+ transport_->SendRtcpPacket(packet);
+}
+
+void RtcpSender::SendRtcpFromRtpReceiver(
+ uint32 packet_type_flags,
+ const RtcpReportBlock* report_block,
+ const RtcpReceiverReferenceTimeReport* rrtr,
+ const RtcpCastMessage* cast_message,
+ const RtcpReceiverLogMessage* receiver_log) {
+ if (packet_type_flags & kRtcpSr ||
Alpha Left Google 2013/11/13 23:58:40 This condition is not correct. It should be the op
pwestin 2013/11/15 00:20:32 Please clarify; this does what I want it to do. If
+ packet_type_flags & kRtcpDlrr ||
+ packet_type_flags & kRtcpSenderLog) {
+ NOTREACHED() << "Invalid argument";
+ }
+ if (packet_type_flags & kRtcpPli ||
+ packet_type_flags & kRtcpRpsi ||
+ packet_type_flags & kRtcpRemb ||
+ packet_type_flags & kRtcpNack) {
+ // Implement these for webrtc interop.
NOTIMPLEMENTED();
}
- if (packet_type_flags & kRtcpDlrr) {
- DCHECK(dlrr) << "Invalid argument";
- BuildDlrrRb(dlrr, &packet);
+ std::vector<uint8> packet;
+ packet.reserve(kIpPacketSize);
+
+ if (packet_type_flags & kRtcpRr) {
+ BuildRR(report_block, &packet);
+ if (!c_name_.empty()) {
+ BuildSdec(&packet);
+ }
+ }
+ if (packet_type_flags & kRtcpBye) {
+ BuildBye(&packet);
}
if (packet_type_flags & kRtcpRrtr) {
DCHECK(rrtr) << "Invalid argument";
@@ -79,7 +106,10 @@ void RtcpSender::SendRtcp(uint32 packet_type_flags,
DCHECK(cast_message) << "Invalid argument";
BuildCast(cast_message, &packet);
}
-
+ if (packet_type_flags & kRtcpReceiverLog) {
+ DCHECK(receiver_log) << "Invalid argument";
+ BuildReceiverLog(receiver_log, &packet);
+ }
if (packet.empty()) return; // Sanity don't send empty packets.
transport_->SendRtcpPacket(packet);
@@ -542,5 +572,18 @@ void RtcpSender::BuildCast(const RtcpCastMessage* cast,
cast->missing_frames_and_packets_.size());
}
+void RtcpSender::BuildSenderLog(const RtcpSenderLogMessage* sender_log_message,
+ std::vector<uint8>* packet) const {
+ // TODO(pwestin): Implement.
+ NOTIMPLEMENTED();
+}
+
+void RtcpSender::BuildReceiverLog(
+ const RtcpReceiverLogMessage* receiver_log_message,
+ std::vector<uint8>* packet) const {
+ // TODO(pwestin): Implement.
+ NOTIMPLEMENTED();
+}
+
} // namespace cast
} // namespace media

Powered by Google App Engine
This is Rietveld 408576698