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

Unified Diff: media/cast/net/rtcp/rtcp_builder.cc

Issue 1709863002: Add Cast PLI support on sender side. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased and addressed comments. Created 4 years, 10 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: media/cast/net/rtcp/rtcp_builder.cc
diff --git a/media/cast/net/rtcp/rtcp_builder.cc b/media/cast/net/rtcp/rtcp_builder.cc
index cd7652307837fa64314ba4607b7c62d34c0954e6..bcedc7d2f3974771a7adc72d0eda040a086aad9f 100644
--- a/media/cast/net/rtcp/rtcp_builder.cc
+++ b/media/cast/net/rtcp/rtcp_builder.cc
@@ -165,6 +165,7 @@ PacketRef RtcpBuilder::BuildRtcpFromReceiver(
const RtcpReportBlock* report_block,
const RtcpReceiverReferenceTimeReport* rrtr,
const RtcpCastMessage* cast_message,
+ const RtcpPliMessage* pli_message,
const ReceiverRtcpEventSubscriber::RtcpEvents* rtcp_events,
base::TimeDelta target_delay) {
Start();
@@ -175,6 +176,8 @@ PacketRef RtcpBuilder::BuildRtcpFromReceiver(
AddRrtr(rrtr);
if (cast_message)
AddCast(cast_message, target_delay);
+ if (pli_message)
+ AddPli(pli_message);
if (rtcp_events)
AddReceiverLog(*rtcp_events);
@@ -227,12 +230,18 @@ void RtcpBuilder::AddRrtr(const RtcpReceiverReferenceTimeReport* rrtr) {
writer_.WriteU32(rrtr->ntp_fraction);
}
+void RtcpBuilder::AddPli(const RtcpPliMessage* pli_message) {
dcheng 2016/03/01 23:44:12 How about const RtcpPliMessage&? This should never
xjz 2016/03/02 04:24:17 Done.
+ AddRtcpHeader(kPacketTypePayloadSpecific, 1);
+ writer_.WriteU32(ssrc_);
+ writer_.WriteU32(pli_message->remote_ssrc);
+}
+
void RtcpBuilder::AddCast(const RtcpCastMessage* cast,
base::TimeDelta target_delay) {
// See RTC 4585 Section 6.4 for application specific feedback messages.
AddRtcpHeader(kPacketTypePayloadSpecific, 15);
writer_.WriteU32(ssrc_); // Add our own SSRC.
- writer_.WriteU32(cast->media_ssrc); // Remote SSRC.
+ writer_.WriteU32(cast->remote_ssrc); // Remote SSRC.
writer_.WriteU32(kCast);
writer_.WriteU8(static_cast<uint8_t>(cast->ack_frame_id));
uint8_t* cast_loss_field_pos = reinterpret_cast<uint8_t*>(writer_.ptr());
@@ -288,8 +297,7 @@ void RtcpBuilder::AddCast(const RtcpCastMessage* cast,
}
}
VLOG_IF(1, !nack_string_builder.Empty())
- << "SSRC: " << cast->media_ssrc
- << ", ACK: " << cast->ack_frame_id
+ << "SSRC: " << cast->remote_ssrc << ", ACK: " << cast->ack_frame_id
<< ", NACK: " << nack_string_builder.GetString();
DCHECK_LE(number_of_loss_fields, kRtcpMaxCastLossFields);
*cast_loss_field_pos = static_cast<uint8_t>(number_of_loss_fields);

Powered by Google App Engine
This is Rietveld 408576698