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

Unified Diff: media/cast/net/cast_transport_impl.cc

Issue 1878883003: Refactor: simplify interface of SenderRtcpSession and CastTransport. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 8 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
« no previous file with comments | « media/cast/net/cast_transport_impl.h ('k') | media/cast/net/cast_transport_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/net/cast_transport_impl.cc
diff --git a/media/cast/net/cast_transport_impl.cc b/media/cast/net/cast_transport_impl.cc
index c1c5fd513205aabf7986b54416bc57d5f885ffaf..5ace37f1914fc439619810f052e1d0bf3d3eb1cd 100644
--- a/media/cast/net/cast_transport_impl.cc
+++ b/media/cast/net/cast_transport_impl.cc
@@ -56,6 +56,41 @@ PacketReceiverCallback CastTransport::PacketReceiverForTesting() {
return PacketReceiverCallback();
}
+class CastTransportImpl::RtcpClient : public RtcpObserver {
+ public:
+ RtcpClient(std::unique_ptr<RtcpObserver> observer,
+ uint32_t rtp_sender_ssrc,
+ EventMediaType media_type,
+ CastTransportImpl* cast_transport_impl)
+ : rtp_sender_ssrc_(rtp_sender_ssrc),
+ rtcp_observer_(std::move(observer)),
+ media_type_(media_type),
+ cast_transport_impl_(cast_transport_impl) {}
+
+ void OnReceivedCastMessage(const RtcpCastMessage& cast_message) override {
+ rtcp_observer_->OnReceivedCastMessage(cast_message);
+ cast_transport_impl_->OnReceivedCastMessage(rtp_sender_ssrc_, cast_message);
+ }
+
+ void OnReceivedRtt(base::TimeDelta round_trip_time) override {
+ rtcp_observer_->OnReceivedRtt(round_trip_time);
+ }
+
+ void OnReceivedReceiverLog(const RtcpReceiverLogMessage& log) override {
+ cast_transport_impl_->OnReceivedLogMessage(media_type_, log);
+ }
+
+ void OnReceivedPli() override { rtcp_observer_->OnReceivedPli(); }
+
+ private:
+ const uint32_t rtp_sender_ssrc_;
+ const std::unique_ptr<RtcpObserver> rtcp_observer_;
+ const EventMediaType media_type_;
+ CastTransportImpl* const cast_transport_impl_;
+
+ DISALLOW_COPY_AND_ASSIGN(RtcpClient);
+};
+
CastTransportImpl::CastTransportImpl(
base::TickClock* clock,
base::TimeDelta logging_flush_interval,
@@ -96,9 +131,7 @@ CastTransportImpl::~CastTransportImpl() {
void CastTransportImpl::InitializeAudio(
const CastTransportRtpConfig& config,
- const RtcpCastMessageCallback& cast_message_cb,
- const RtcpRttCallback& rtt_cb,
- const RtcpPliCallback& pli_cb) {
+ std::unique_ptr<RtcpObserver> rtcp_observer) {
LOG_IF(WARNING, config.aes_key.empty() || config.aes_iv_mask.empty())
<< "Unsafe to send audio with encryption DISABLED.";
if (!audio_encryptor_.Initialize(config.aes_key, config.aes_iv_mask)) {
@@ -118,12 +151,11 @@ void CastTransportImpl::InitializeAudio(
return;
}
- audio_rtcp_session_.reset(new SenderRtcpSession(
- base::Bind(&CastTransportImpl::OnReceivedCastMessage,
- weak_factory_.GetWeakPtr(), config.ssrc, cast_message_cb),
- rtt_cb, base::Bind(&CastTransportImpl::OnReceivedLogMessage,
- weak_factory_.GetWeakPtr(), AUDIO_EVENT),
- pli_cb, clock_, &pacer_, config.ssrc, config.feedback_ssrc));
+ audio_rtcp_observer_.reset(
+ new RtcpClient(std::move(rtcp_observer), config.ssrc, AUDIO_EVENT, this));
+ audio_rtcp_session_.reset(
+ new SenderRtcpSession(clock_, &pacer_, audio_rtcp_observer_.get(),
+ config.ssrc, config.feedback_ssrc));
pacer_.RegisterAudioSsrc(config.ssrc);
valid_sender_ssrcs_.insert(config.feedback_ssrc);
transport_client_->OnStatusChanged(TRANSPORT_AUDIO_INITIALIZED);
@@ -131,9 +163,7 @@ void CastTransportImpl::InitializeAudio(
void CastTransportImpl::InitializeVideo(
const CastTransportRtpConfig& config,
- const RtcpCastMessageCallback& cast_message_cb,
- const RtcpRttCallback& rtt_cb,
- const RtcpPliCallback& pli_cb) {
+ std::unique_ptr<RtcpObserver> rtcp_observer) {
LOG_IF(WARNING, config.aes_key.empty() || config.aes_iv_mask.empty())
<< "Unsafe to send video with encryption DISABLED.";
if (!video_encryptor_.Initialize(config.aes_key, config.aes_iv_mask)) {
@@ -148,12 +178,11 @@ void CastTransportImpl::InitializeVideo(
return;
}
- video_rtcp_session_.reset(new SenderRtcpSession(
- base::Bind(&CastTransportImpl::OnReceivedCastMessage,
- weak_factory_.GetWeakPtr(), config.ssrc, cast_message_cb),
- rtt_cb, base::Bind(&CastTransportImpl::OnReceivedLogMessage,
- weak_factory_.GetWeakPtr(), VIDEO_EVENT),
- pli_cb, clock_, &pacer_, config.ssrc, config.feedback_ssrc));
+ video_rtcp_observer_.reset(
+ new RtcpClient(std::move(rtcp_observer), config.ssrc, VIDEO_EVENT, this));
+ video_rtcp_session_.reset(
+ new SenderRtcpSession(clock_, &pacer_, video_rtcp_observer_.get(),
+ config.ssrc, config.feedback_ssrc));
pacer_.RegisterVideoSsrc(config.ssrc);
valid_sender_ssrcs_.insert(config.feedback_ssrc);
transport_client_->OnStatusChanged(TRANSPORT_VIDEO_INITIALIZED);
@@ -349,10 +378,7 @@ void CastTransportImpl::OnReceivedLogMessage(
void CastTransportImpl::OnReceivedCastMessage(
uint32_t ssrc,
- const RtcpCastMessageCallback& cast_message_cb,
const RtcpCastMessage& cast_message) {
- if (!cast_message_cb.is_null())
- cast_message_cb.Run(cast_message);
DedupInfo dedup_info;
if (audio_sender_ && audio_sender_->ssrc() == ssrc) {
« no previous file with comments | « media/cast/net/cast_transport_impl.h ('k') | media/cast/net/cast_transport_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698