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

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

Issue 193303002: WeakPtr destruction order cleanup: media edition. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 #ifndef MEDIA_CAST_AUDIO_SENDER_H_ 5 #ifndef MEDIA_CAST_AUDIO_SENDER_H_
6 #define MEDIA_CAST_AUDIO_SENDER_H_ 6 #define MEDIA_CAST_AUDIO_SENDER_H_
7 7
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 const MissingFramesAndPacketsMap& missing_frames_and_packets); 69 const MissingFramesAndPacketsMap& missing_frames_and_packets);
70 70
71 void ResendPacketsOnTransportThread( 71 void ResendPacketsOnTransportThread(
72 const transport::MissingFramesAndPacketsMap& missing_packets); 72 const transport::MissingFramesAndPacketsMap& missing_packets);
73 73
74 void ScheduleNextRtcpReport(); 74 void ScheduleNextRtcpReport();
75 void SendRtcpReport(); 75 void SendRtcpReport();
76 76
77 void InitializeTimers(); 77 void InitializeTimers();
78 78
79 base::WeakPtrFactory<AudioSender> weak_factory_;
80
81 scoped_refptr<CastEnvironment> cast_environment_; 79 scoped_refptr<CastEnvironment> cast_environment_;
82 transport::CastTransportSender* const transport_sender_; 80 transport::CastTransportSender* const transport_sender_;
83 scoped_refptr<AudioEncoder> audio_encoder_; 81 scoped_refptr<AudioEncoder> audio_encoder_;
84 scoped_ptr<LocalRtpSenderStatistics> rtp_audio_sender_statistics_; 82 scoped_ptr<LocalRtpSenderStatistics> rtp_audio_sender_statistics_;
85 scoped_ptr<LocalRtcpAudioSenderFeedback> rtcp_feedback_; 83 scoped_ptr<LocalRtcpAudioSenderFeedback> rtcp_feedback_;
86 Rtcp rtcp_; 84 Rtcp rtcp_;
87 bool timers_initialized_; 85 bool timers_initialized_;
88 CastInitializationStatus cast_initialization_cb_; 86 CastInitializationStatus cast_initialization_cb_;
89 87
88 // NOTE: This must always be last so it's invalidated before other member
89 // variables might be accessed.
90 base::WeakPtrFactory<AudioSender> weak_factory_;
91
90 DISALLOW_COPY_AND_ASSIGN(AudioSender); 92 DISALLOW_COPY_AND_ASSIGN(AudioSender);
91 }; 93 };
92 94
93 } // namespace cast 95 } // namespace cast
94 } // namespace media 96 } // namespace media
95 97
96 #endif // MEDIA_CAST_AUDIO_SENDER_H_ 98 #endif // MEDIA_CAST_AUDIO_SENDER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698