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"; |