| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/cast/audio_sender/audio_sender.h" | 5 #include "media/cast/audio_sender/audio_sender.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "media/cast/audio_sender/audio_encoder.h" | 10 #include "media/cast/audio_sender/audio_encoder.h" |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 rtp_sender_->RtpStatistics(now, sender_info); | 46 rtp_sender_->RtpStatistics(now, sender_info); |
| 47 } | 47 } |
| 48 | 48 |
| 49 private: | 49 private: |
| 50 RtpSender* rtp_sender_; | 50 RtpSender* rtp_sender_; |
| 51 }; | 51 }; |
| 52 | 52 |
| 53 AudioSender::AudioSender(scoped_refptr<CastEnvironment> cast_environment, | 53 AudioSender::AudioSender(scoped_refptr<CastEnvironment> cast_environment, |
| 54 const AudioSenderConfig& audio_config, | 54 const AudioSenderConfig& audio_config, |
| 55 PacedPacketSender* const paced_packet_sender) | 55 PacedPacketSender* const paced_packet_sender) |
| 56 : incoming_feedback_ssrc_(audio_config.incoming_feedback_ssrc), | 56 : cast_environment_(cast_environment), |
| 57 cast_environment_(cast_environment), | |
| 58 rtp_sender_(cast_environment->Clock(), &audio_config, NULL, | 57 rtp_sender_(cast_environment->Clock(), &audio_config, NULL, |
| 59 paced_packet_sender), | 58 paced_packet_sender), |
| 60 rtcp_feedback_(new LocalRtcpAudioSenderFeedback(this)), | 59 rtcp_feedback_(new LocalRtcpAudioSenderFeedback(this)), |
| 61 rtp_audio_sender_statistics_( | 60 rtp_audio_sender_statistics_( |
| 62 new LocalRtpSenderStatistics(&rtp_sender_)), | 61 new LocalRtpSenderStatistics(&rtp_sender_)), |
| 63 rtcp_(cast_environment->Clock(), | 62 rtcp_(cast_environment->Clock(), |
| 64 rtcp_feedback_.get(), | 63 rtcp_feedback_.get(), |
| 65 paced_packet_sender, | 64 paced_packet_sender, |
| 66 rtp_audio_sender_statistics_.get(), | 65 rtp_audio_sender_statistics_.get(), |
| 67 NULL, | 66 NULL, |
| 68 audio_config.rtcp_mode, | 67 audio_config.rtcp_mode, |
| 69 base::TimeDelta::FromMilliseconds(audio_config.rtcp_interval), | 68 base::TimeDelta::FromMilliseconds(audio_config.rtcp_interval), |
| 70 true, | |
| 71 audio_config.sender_ssrc, | 69 audio_config.sender_ssrc, |
| 70 audio_config.incoming_feedback_ssrc, |
| 72 audio_config.rtcp_c_name), | 71 audio_config.rtcp_c_name), |
| 73 weak_factory_(this) { | 72 weak_factory_(this) { |
| 74 rtcp_.SetRemoteSSRC(audio_config.incoming_feedback_ssrc); | |
| 75 | |
| 76 if (!audio_config.use_external_encoder) { | 73 if (!audio_config.use_external_encoder) { |
| 77 audio_encoder_ = new AudioEncoder( | 74 audio_encoder_ = new AudioEncoder( |
| 78 cast_environment, audio_config, | 75 cast_environment, audio_config, |
| 79 base::Bind(&AudioSender::SendEncodedAudioFrame, | 76 base::Bind(&AudioSender::SendEncodedAudioFrame, |
| 80 weak_factory_.GetWeakPtr())); | 77 weak_factory_.GetWeakPtr())); |
| 81 } | 78 } |
| 82 ScheduleNextRtcpReport(); | 79 ScheduleNextRtcpReport(); |
| 83 } | 80 } |
| 84 | 81 |
| 85 AudioSender::~AudioSender() {} | 82 AudioSender::~AudioSender() {} |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 | 119 |
| 123 time_to_next = std::max(time_to_next, | 120 time_to_next = std::max(time_to_next, |
| 124 base::TimeDelta::FromMilliseconds(kMinSchedulingDelayMs)); | 121 base::TimeDelta::FromMilliseconds(kMinSchedulingDelayMs)); |
| 125 | 122 |
| 126 cast_environment_->PostDelayedTask(CastEnvironment::MAIN, FROM_HERE, | 123 cast_environment_->PostDelayedTask(CastEnvironment::MAIN, FROM_HERE, |
| 127 base::Bind(&AudioSender::SendRtcpReport, weak_factory_.GetWeakPtr()), | 124 base::Bind(&AudioSender::SendRtcpReport, weak_factory_.GetWeakPtr()), |
| 128 time_to_next); | 125 time_to_next); |
| 129 } | 126 } |
| 130 | 127 |
| 131 void AudioSender::SendRtcpReport() { | 128 void AudioSender::SendRtcpReport() { |
| 132 rtcp_.SendRtcpReport(incoming_feedback_ssrc_); | 129 rtcp_.SendRtcpFromRtpSender(NULL); // TODO(pwestin): add logging. |
| 133 ScheduleNextRtcpReport(); | 130 ScheduleNextRtcpReport(); |
| 134 } | 131 } |
| 135 | 132 |
| 136 } // namespace cast | 133 } // namespace cast |
| 137 } // namespace media | 134 } // namespace media |
| OLD | NEW |