Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(551)

Side by Side Diff: media/cast/audio_sender/audio_sender.cc

Issue 174183003: Cast:Transport: Dividing A/V Initialization pipeline (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixing errors and yet another rebase Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 25 matching lines...) Expand all
36 }; 36 };
37 37
38 class LocalRtpSenderStatistics : public RtpSenderStatistics { 38 class LocalRtpSenderStatistics : public RtpSenderStatistics {
39 public: 39 public:
40 LocalRtpSenderStatistics( 40 LocalRtpSenderStatistics(
41 transport::CastTransportSender* const transport_sender, 41 transport::CastTransportSender* const transport_sender,
42 int frequency) 42 int frequency)
43 : transport_sender_(transport_sender), 43 : transport_sender_(transport_sender),
44 frequency_(0), 44 frequency_(0),
45 sender_info_(), 45 sender_info_(),
46 rtp_timestamp_(0) { 46 rtp_timestamp_(0),
47 transport_sender_->SubscribeAudioRtpStatsCallback(base::Bind( 47 weak_factory_(this) {
48 &LocalRtpSenderStatistics::StoreStatistics, base::Unretained(this))); 48 transport_sender_->SubscribeAudioRtpStatsCallback(
49 base::Bind(&LocalRtpSenderStatistics::StoreStatistics,
50 weak_factory_.GetWeakPtr()));
49 } 51 }
50 52
51 virtual void GetStatistics(const base::TimeTicks& now, 53 virtual void GetStatistics(const base::TimeTicks& now,
52 transport::RtcpSenderInfo* sender_info) OVERRIDE { 54 transport::RtcpSenderInfo* sender_info) OVERRIDE {
53 // Update and return last stored statistics. 55 // Update and return last stored statistics.
54 uint32 ntp_seconds = 0; 56 uint32 ntp_seconds = 0;
55 uint32 ntp_fraction = 0; 57 uint32 ntp_fraction = 0;
56 uint32 rtp_timestamp = 0; 58 uint32 rtp_timestamp = 0;
57 if (rtp_timestamp_ > 0) { 59 if (rtp_timestamp_ > 0) {
58 base::TimeDelta time_since_last_send = now - time_sent_; 60 base::TimeDelta time_since_last_send = now - time_sent_;
(...skipping 18 matching lines...) Expand all
77 rtp_timestamp_ = rtp_timestamp; 79 rtp_timestamp_ = rtp_timestamp;
78 } 80 }
79 81
80 private: 82 private:
81 transport::CastTransportSender* const transport_sender_; 83 transport::CastTransportSender* const transport_sender_;
82 int frequency_; 84 int frequency_;
83 transport::RtcpSenderInfo sender_info_; 85 transport::RtcpSenderInfo sender_info_;
84 base::TimeTicks time_sent_; 86 base::TimeTicks time_sent_;
85 uint32 rtp_timestamp_; 87 uint32 rtp_timestamp_;
86 88
89 base::WeakPtrFactory<LocalRtpSenderStatistics> weak_factory_;
90
87 DISALLOW_IMPLICIT_CONSTRUCTORS(LocalRtpSenderStatistics); 91 DISALLOW_IMPLICIT_CONSTRUCTORS(LocalRtpSenderStatistics);
88 }; 92 };
89 93
90 // TODO(mikhal): Reduce heap allocation when not needed. 94 // TODO(mikhal): Reduce heap allocation when not needed.
91 AudioSender::AudioSender(scoped_refptr<CastEnvironment> cast_environment, 95 AudioSender::AudioSender(scoped_refptr<CastEnvironment> cast_environment,
92 const AudioSenderConfig& audio_config, 96 const AudioSenderConfig& audio_config,
93 transport::CastTransportSender* const transport_sender) 97 transport::CastTransportSender* const transport_sender)
94 : cast_environment_(cast_environment), 98 : cast_environment_(cast_environment),
95 transport_sender_(transport_sender), 99 transport_sender_(transport_sender),
96 rtcp_feedback_(new LocalRtcpAudioSenderFeedback(this)), 100 rtcp_feedback_(new LocalRtcpAudioSenderFeedback(this)),
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 } 207 }
204 208
205 void AudioSender::ResendPacketsOnTransportThread( 209 void AudioSender::ResendPacketsOnTransportThread(
206 const transport::MissingFramesAndPacketsMap& missing_packets) { 210 const transport::MissingFramesAndPacketsMap& missing_packets) {
207 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::TRANSPORT)); 211 DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::TRANSPORT));
208 transport_sender_->ResendPackets(true, missing_packets); 212 transport_sender_->ResendPackets(true, missing_packets);
209 } 213 }
210 214
211 } // namespace cast 215 } // namespace cast
212 } // namespace media 216 } // namespace media
OLDNEW
« no previous file with comments | « chrome/renderer/media/cast_transport_sender_ipc.cc ('k') | media/cast/audio_sender/audio_sender_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698