Chromium Code Reviews| Index: chrome/browser/media/cast_transport_host_filter.cc | 
| diff --git a/chrome/browser/media/cast_transport_host_filter.cc b/chrome/browser/media/cast_transport_host_filter.cc | 
| index 273d6ffaffc212a32957d9e2977206eecc66f736..4363e388247443df059068d69227afc251f13709 100644 | 
| --- a/chrome/browser/media/cast_transport_host_filter.cc | 
| +++ b/chrome/browser/media/cast_transport_host_filter.cc | 
| @@ -58,6 +58,39 @@ void TransportClient::ProcessRtpPacket( | 
| new CastMsg_ReceivedPacket(channel_id_, *packet)); | 
| } | 
| +class RtcpClient : public media::cast::RtpSenderRtcpClient { | 
| + public: | 
| + RtcpClient(int32_t channel_id, | 
| + uint32_t rtp_sender_ssrc, | 
| + cast::CastTransportHostFilter* cast_transport_host_filter) | 
| 
 
miu
2016/04/15 23:14:39
Should the third arg be of type base::WeakPtr<cast
 
xjz
2016/04/20 01:09:02
Done. Use weak ptr.
 
 | 
| + : channel_id_(channel_id), | 
| + rtp_sender_ssrc_(rtp_sender_ssrc), | 
| + cast_transport_host_filter_(cast_transport_host_filter) {} | 
| + | 
| + void OnCastMessageReceived( | 
| + const media::cast::RtcpCastMessage& cast_message) override { | 
| + cast_transport_host_filter_->Send(new CastMsg_RtcpCastMessage( | 
| + channel_id_, rtp_sender_ssrc_, cast_message)); | 
| + } | 
| + | 
| + void OnRttReceived(base::TimeDelta round_trip_time) override { | 
| + cast_transport_host_filter_->Send( | 
| + new CastMsg_Rtt(channel_id_, rtp_sender_ssrc_, round_trip_time)); | 
| + } | 
| + | 
| + void OnPliReceived() override { | 
| + cast_transport_host_filter_->Send( | 
| + new CastMsg_Pli(channel_id_, rtp_sender_ssrc_)); | 
| + } | 
| + | 
| + private: | 
| + int32_t channel_id_; | 
| 
 
miu
2016/04/15 23:14:39
Please make these three members const.
 
xjz
2016/04/20 01:09:02
Done.
 
 | 
| + uint32_t rtp_sender_ssrc_; | 
| + cast::CastTransportHostFilter* cast_transport_host_filter_; | 
| + | 
| + DISALLOW_COPY_AND_ASSIGN(RtcpClient); | 
| +}; | 
| + | 
| } // namespace | 
| namespace cast { | 
| @@ -103,24 +136,6 @@ bool CastTransportHostFilter::OnMessageReceived(const IPC::Message& message) { | 
| return handled; | 
| } | 
| -void CastTransportHostFilter::SendRtt(int32_t channel_id, | 
| - uint32_t rtp_sender_ssrc, | 
| - base::TimeDelta rtt) { | 
| - Send(new CastMsg_Rtt(channel_id, rtp_sender_ssrc, rtt)); | 
| -} | 
| - | 
| -void CastTransportHostFilter::SendCastMessage( | 
| - int32_t channel_id, | 
| - uint32_t rtp_sender_ssrc, | 
| - const media::cast::RtcpCastMessage& cast_message) { | 
| - Send(new CastMsg_RtcpCastMessage(channel_id, rtp_sender_ssrc, cast_message)); | 
| -} | 
| - | 
| -void CastTransportHostFilter::SendReceivedPli(int32_t channel_id, | 
| - uint32_t rtp_sender_ssrc) { | 
| - Send(new CastMsg_Pli(channel_id, rtp_sender_ssrc)); | 
| -} | 
| - | 
| void CastTransportHostFilter::OnNew(int32_t channel_id, | 
| const net::IPEndPoint& local_end_point, | 
| const net::IPEndPoint& remote_end_point, | 
| @@ -176,13 +191,8 @@ void CastTransportHostFilter::OnInitializeAudio( | 
| const media::cast::CastTransportRtpConfig& config) { | 
| media::cast::CastTransport* sender = id_map_.Lookup(channel_id); | 
| if (sender) { | 
| - sender->InitializeAudio( | 
| - config, base::Bind(&CastTransportHostFilter::SendCastMessage, | 
| - weak_factory_.GetWeakPtr(), channel_id, config.ssrc), | 
| - base::Bind(&CastTransportHostFilter::SendRtt, | 
| - weak_factory_.GetWeakPtr(), channel_id, config.ssrc), | 
| - base::Bind(&CastTransportHostFilter::SendReceivedPli, | 
| - weak_factory_.GetWeakPtr(), channel_id, config.ssrc)); | 
| + sender->InitializeAudio(config, base::WrapUnique(new RtcpClient( | 
| + channel_id, config.ssrc, this))); | 
| } else { | 
| DVLOG(1) | 
| << "CastTransportHostFilter::OnInitializeAudio on non-existing channel"; | 
| @@ -194,13 +204,8 @@ void CastTransportHostFilter::OnInitializeVideo( | 
| const media::cast::CastTransportRtpConfig& config) { | 
| media::cast::CastTransport* sender = id_map_.Lookup(channel_id); | 
| if (sender) { | 
| - sender->InitializeVideo( | 
| - config, base::Bind(&CastTransportHostFilter::SendCastMessage, | 
| - weak_factory_.GetWeakPtr(), channel_id, config.ssrc), | 
| - base::Bind(&CastTransportHostFilter::SendRtt, | 
| - weak_factory_.GetWeakPtr(), channel_id, config.ssrc), | 
| - base::Bind(&CastTransportHostFilter::SendReceivedPli, | 
| - weak_factory_.GetWeakPtr(), channel_id, config.ssrc)); | 
| + sender->InitializeVideo(config, base::WrapUnique(new RtcpClient( | 
| + channel_id, config.ssrc, this))); | 
| } else { | 
| DVLOG(1) | 
| << "CastTransportHostFilter::OnInitializeVideo on non-existing channel"; |