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 b8c7acb0f748a5820eedcea435ccee6297c767e1..7bca63caa4ab0fe34d4558812b3903eee51784ce 100644 |
--- a/media/cast/net/rtcp/sender_rtcp_session.cc |
+++ b/media/cast/net/rtcp/sender_rtcp_session.cc |
@@ -69,10 +69,7 @@ std::pair<uint64_t, uint64_t> GetReceiverEventKey( |
} // namespace |
SenderRtcpSession::SenderRtcpSession( |
- const RtcpCastMessageCallback& cast_callback, |
- const RtcpRttCallback& rtt_callback, |
- const RtcpLogMessageCallback& log_callback, |
- const RtcpPliCallback pli_callback, |
+ std::unique_ptr<SenderRtcpObserver> observer, |
base::TickClock* clock, |
PacedPacketSender* packet_sender, |
uint32_t local_ssrc, |
@@ -81,10 +78,7 @@ SenderRtcpSession::SenderRtcpSession( |
packet_sender_(packet_sender), |
local_ssrc_(local_ssrc), |
remote_ssrc_(remote_ssrc), |
- cast_callback_(cast_callback), |
- rtt_callback_(rtt_callback), |
- log_callback_(log_callback), |
- pli_callback_(pli_callback), |
+ sender_rtcp_observer_(std::move(observer)), |
largest_seen_timestamp_(base::TimeTicks::FromInternalValue( |
std::numeric_limits<int64_t>::min())), |
parser_(local_ssrc, remote_ssrc), |
@@ -109,10 +103,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()) { |
- if (!pli_callback_.is_null()) |
- pli_callback_.Run(); |
- } |
+ if (parser_.has_picture_loss_indicator()) |
+ sender_rtcp_observer_->OnPliReceived(); |
if (parser_.has_receiver_reference_time_report()) { |
base::TimeTicks t = ConvertNtpToTimeTicks( |
parser_.receiver_reference_time_report().ntp_seconds, |
@@ -129,7 +121,7 @@ bool SenderRtcpSession::IncomingRtcpPacket(const uint8_t* data, size_t length) { |
} |
if (parser_.has_receiver_log()) { |
if (DedupeReceiverLog(parser_.mutable_receiver_log())) { |
- OnReceivedReceiverLog(parser_.receiver_log()); |
+ sender_rtcp_observer_->OnReceiverLogReceived(parser_.receiver_log()); |
} |
} |
if (parser_.has_last_report()) { |
@@ -140,7 +132,7 @@ bool SenderRtcpSession::IncomingRtcpPacket(const uint8_t* data, size_t length) { |
parser_.mutable_cast_message()->ack_frame_id = |
ack_frame_id_wrap_helper_.MapTo32bitsFrameId( |
parser_.mutable_cast_message()->ack_frame_id); |
- OnReceivedCastFeedback(parser_.cast_message()); |
+ sender_rtcp_observer_->OnCastMessageReceived(parser_.cast_message()); |
} |
} |
return true; |
@@ -166,8 +158,7 @@ void SenderRtcpSession::OnReceivedDelaySinceLastReport( |
current_round_trip_time_ = |
std::max(current_round_trip_time_, base::TimeDelta::FromMilliseconds(1)); |
- if (!rtt_callback_.is_null()) |
- rtt_callback_.Run(current_round_trip_time_); |
+ sender_rtcp_observer_->OnRttReceived(current_round_trip_time_); |
} |
void SenderRtcpSession::SaveLastSentNtpTime(const base::TimeTicks& now, |
@@ -252,19 +243,5 @@ void SenderRtcpSession::SendRtcpReport( |
rtcp_builder.BuildRtcpFromSender(sender_info)); |
} |
-void SenderRtcpSession::OnReceivedCastFeedback( |
- const RtcpCastMessage& cast_message) { |
- if (cast_callback_.is_null()) |
- return; |
- cast_callback_.Run(cast_message); |
-} |
- |
-void SenderRtcpSession::OnReceivedReceiverLog( |
- const RtcpReceiverLogMessage& receiver_log) { |
- if (log_callback_.is_null()) |
- return; |
- log_callback_.Run(receiver_log); |
-} |
- |
} // namespace cast |
} // namespace media |