Chromium Code Reviews| Index: media/cast/sender/audio_sender.cc |
| diff --git a/media/cast/sender/audio_sender.cc b/media/cast/sender/audio_sender.cc |
| index 808b5ea2e7e662abf8572d4522eabf83b301842a..f253057ec74807725355109f5451ed5608fd878b 100644 |
| --- a/media/cast/sender/audio_sender.cc |
| +++ b/media/cast/sender/audio_sender.cc |
| @@ -8,6 +8,7 @@ |
| #include "base/bind.h" |
| #include "base/logging.h" |
| +#include "base/memory/ptr_util.h" |
| #include "base/message_loop/message_loop.h" |
| #include "media/cast/common/rtp_time.h" |
| #include "media/cast/net/cast_transport_config.h" |
| @@ -16,6 +17,36 @@ |
| namespace media { |
| namespace cast { |
| +namespace { |
| + |
| +class AudioSenderRtcpClient : public RtpSenderRtcpClient { |
|
miu
2016/04/15 23:14:39
This is duplicate code (same as in VideoSender).
xjz
2016/04/20 01:09:03
Done.
|
| + public: |
| + explicit AudioSenderRtcpClient(base::WeakPtr<AudioSender> audio_sender) |
| + : audio_sender_(audio_sender) {} |
| + |
| + void OnCastMessageReceived(const RtcpCastMessage& cast_message) override { |
| + if (audio_sender_) |
| + audio_sender_->OnReceivedCastFeedback(cast_message); |
| + } |
| + |
| + void OnRttReceived(base::TimeDelta round_trip_time) override { |
| + if (audio_sender_) |
| + audio_sender_->OnMeasuredRoundTripTime(round_trip_time); |
| + } |
| + |
| + void OnPliReceived() override { |
| + if (audio_sender_) |
| + audio_sender_->OnReceivedPli(); |
| + } |
| + |
| + private: |
| + base::WeakPtr<AudioSender> audio_sender_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(AudioSenderRtcpClient); |
| +}; |
| + |
| +} // namespace |
| + |
| AudioSender::AudioSender(scoped_refptr<CastEnvironment> cast_environment, |
| const AudioSenderConfig& audio_config, |
| const StatusChangeCallback& status_change_cb, |
| @@ -68,16 +99,13 @@ AudioSender::AudioSender(scoped_refptr<CastEnvironment> cast_environment, |
| transport_config.aes_iv_mask = audio_config.aes_iv_mask; |
| transport_sender->InitializeAudio( |
| - transport_config, base::Bind(&AudioSender::OnReceivedCastFeedback, |
| - weak_factory_.GetWeakPtr()), |
| - base::Bind(&AudioSender::OnMeasuredRoundTripTime, |
| - weak_factory_.GetWeakPtr()), |
| - base::Bind(&AudioSender::OnReceivedPli, weak_factory_.GetWeakPtr())); |
| + transport_config, |
| + base::WrapUnique(new AudioSenderRtcpClient(weak_factory_.GetWeakPtr()))); |
| } |
| AudioSender::~AudioSender() {} |
| -void AudioSender::InsertAudio(scoped_ptr<AudioBus> audio_bus, |
| +void AudioSender::InsertAudio(std::unique_ptr<AudioBus> audio_bus, |
| const base::TimeTicks& recorded_time) { |
| DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); |