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