Chromium Code Reviews| Index: media/cast/net/rtcp/sender_rtcp_session.cc |
| diff --git a/media/cast/net/rtcp/sender_rtcp_session.cc b/media/cast/net/rtcp/sender_rtcp_session.cc |
| index e8d764f8d2aebbf83e226af60029e5b18dfc18d6..3a5648b76d92845ac6b8df985b62b2f45db04ce0 100644 |
| --- a/media/cast/net/rtcp/sender_rtcp_session.cc |
| +++ b/media/cast/net/rtcp/sender_rtcp_session.cc |
| @@ -79,6 +79,7 @@ SenderRtcpSession::SenderRtcpSession( |
| const RtcpCastMessageCallback& cast_callback, |
| const RtcpRttCallback& rtt_callback, |
| const RtcpLogMessageCallback& log_callback, |
| + const RtcpPliCallback pli_callback, |
| base::TickClock* clock, |
| PacedPacketSender* packet_sender, |
| uint32_t local_ssrc, |
| @@ -90,6 +91,7 @@ SenderRtcpSession::SenderRtcpSession( |
| cast_callback_(cast_callback), |
| rtt_callback_(rtt_callback), |
| log_callback_(log_callback), |
| + pli_callback_(pli_callback), |
| largest_seen_timestamp_(base::TimeTicks::FromInternalValue( |
| std::numeric_limits<int64_t>::min())), |
| parser_(local_ssrc, remote_ssrc), |
| @@ -114,6 +116,8 @@ bool SenderRtcpSession::IncomingRtcpPacket(const uint8_t* data, size_t length) { |
| // Parse this packet. |
| base::BigEndianReader reader(reinterpret_cast<const char*>(data), length); |
| if (parser_.Parse(&reader)) { |
| + if (parser_.has_picture_loss_indicator()) |
| + OnReceivedPli(); |
|
Irfan
2016/02/29 16:01:23
For readability, perhaps a few of these OnReceived
xjz
2016/02/29 19:48:58
Done.
|
| if (parser_.has_receiver_reference_time_report()) { |
| base::TimeTicks t = ConvertNtpToTimeTicks( |
| parser_.receiver_reference_time_report().ntp_seconds, |
| @@ -267,5 +271,11 @@ void SenderRtcpSession::OnReceivedReceiverLog( |
| log_callback_.Run(receiver_log); |
| } |
| +void SenderRtcpSession::OnReceivedPli() { |
| + if (pli_callback_.is_null()) |
| + return; |
| + pli_callback_.Run(); |
| +} |
| + |
| } // namespace cast |
| } // namespace media |