Index: media/cast/net/cast_transport_impl.h |
diff --git a/media/cast/net/cast_transport_impl.h b/media/cast/net/cast_transport_impl.h |
index 7f6c08512f4a31b5c1261937d7da351c0f2f940c..5dff2b51a8809af664acbf1e02fb4bdef91ca14b 100644 |
--- a/media/cast/net/cast_transport_impl.h |
+++ b/media/cast/net/cast_transport_impl.h |
@@ -66,13 +66,9 @@ class CastTransportImpl final : public CastTransport { |
// CastTransport implementation for sending. |
void InitializeAudio(const CastTransportRtpConfig& config, |
- const RtcpCastMessageCallback& cast_message_cb, |
- const RtcpRttCallback& rtt_cb, |
- const RtcpPliCallback& pli_cb) final; |
+ std::unique_ptr<RtcpObserver> rtcp_observer) final; |
void InitializeVideo(const CastTransportRtpConfig& config, |
- const RtcpCastMessageCallback& cast_message_cb, |
- const RtcpRttCallback& rtt_cb, |
- const RtcpPliCallback& pli_cb) final; |
+ std::unique_ptr<RtcpObserver> rtcp_observer) final; |
void InsertFrame(uint32_t ssrc, const EncodedFrame& frame) final; |
void SendSenderReport(uint32_t ssrc, |
@@ -117,6 +113,9 @@ class CastTransportImpl final : public CastTransport { |
void SendRtcpFromRtpReceiver() final; |
private: |
+ // Handle received RTCP messages on RTP sender. |
+ class RtcpClient; |
+ |
FRIEND_TEST_ALL_PREFIXES(CastTransportImplTest, NacksCancelRetransmits); |
FRIEND_TEST_ALL_PREFIXES(CastTransportImplTest, CancelRetransmits); |
FRIEND_TEST_ALL_PREFIXES(CastTransportImplTest, Kickstart); |
@@ -144,7 +143,6 @@ class CastTransportImpl final : public CastTransport { |
// Called when a RTCP Cast message is received. |
void OnReceivedCastMessage(uint32_t ssrc, |
- const RtcpCastMessageCallback& cast_message_cb, |
const RtcpCastMessage& cast_message); |
base::TickClock* const clock_; // Not owned by this class. |
@@ -170,6 +168,10 @@ class CastTransportImpl final : public CastTransport { |
std::unique_ptr<SenderRtcpSession> audio_rtcp_session_; |
std::unique_ptr<SenderRtcpSession> video_rtcp_session_; |
+ // RTCP observer for SenderRtcpSession. |
+ std::unique_ptr<RtcpObserver> audio_rtcp_observer_; |
+ std::unique_ptr<RtcpObserver> video_rtcp_observer_; |
+ |
// Encrypts data in EncodedFrames before they are sent. Note that it's |
// important for the encryption to happen here, in code that would execute in |
// the main browser process, for security reasons. This helps to mitigate |