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

Side by Side Diff: webrtc/pc/channelmanager.h

Issue 2675173003: Adding "adapter" ORTC objects on top of ChannelManager/BaseChannel/etc. (Closed)
Patch Set: Move ORTC files to different subdirectories Created 3 years, 10 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
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 21 matching lines...) Expand all
32 // voice and video channels; by doing so, it can temporarily pause all the 32 // voice and video channels; by doing so, it can temporarily pause all the
33 // channels when a new audio or video device is chosen. The voice and video 33 // channels when a new audio or video device is chosen. The voice and video
34 // channels are stored in separate vectors, to easily allow operations on just 34 // channels are stored in separate vectors, to easily allow operations on just
35 // voice or just video channels. 35 // voice or just video channels.
36 // ChannelManager also allows the application to discover what devices it has 36 // ChannelManager also allows the application to discover what devices it has
37 // using device manager. 37 // using device manager.
38 class ChannelManager { 38 class ChannelManager {
39 public: 39 public:
40 // For testing purposes. Allows the media engine and data media 40 // For testing purposes. Allows the media engine and data media
41 // engine and dev manager to be mocks. The ChannelManager takes 41 // engine and dev manager to be mocks. The ChannelManager takes
42 // ownership of these objects. 42 // ownership of the objects passed as unique_ptrs.
43 ChannelManager(MediaEngineInterface* me, 43 ChannelManager(std::unique_ptr<MediaEngineInterface> me,
44 DataEngineInterface* dme, 44 std::unique_ptr<DataEngineInterface> dme,
45 rtc::Thread* worker_and_network); 45 rtc::Thread* worker_and_network);
46 // Same as above, but gives an easier default DataEngine. 46 // Same as above, but gives an easier default DataEngine.
47 ChannelManager(MediaEngineInterface* me, 47 ChannelManager(std::unique_ptr<MediaEngineInterface> me,
48 rtc::Thread* worker, 48 rtc::Thread* worker,
49 rtc::Thread* network); 49 rtc::Thread* network);
50 ~ChannelManager(); 50 ~ChannelManager();
51 51
52 // Accessors for the worker thread, allowing it to be set after construction, 52 // Accessors for the worker thread, allowing it to be set after construction,
53 // but before Init. set_worker_thread will return false if called after Init. 53 // but before Init. set_worker_thread will return false if called after Init.
54 rtc::Thread* worker_thread() const { return worker_thread_; } 54 rtc::Thread* worker_thread() const { return worker_thread_; }
55 bool set_worker_thread(rtc::Thread* thread) { 55 bool set_worker_thread(rtc::Thread* thread) {
56 if (initialized_) { 56 if (initialized_) {
57 return false; 57 return false;
(...skipping 29 matching lines...) Expand all
87 void Terminate(); 87 void Terminate();
88 88
89 // The operations below all occur on the worker thread. 89 // The operations below all occur on the worker thread.
90 // Creates a voice channel, to be associated with the specified session. 90 // Creates a voice channel, to be associated with the specified session.
91 VoiceChannel* CreateVoiceChannel( 91 VoiceChannel* CreateVoiceChannel(
92 webrtc::MediaControllerInterface* media_controller, 92 webrtc::MediaControllerInterface* media_controller,
93 DtlsTransportInternal* rtp_transport, 93 DtlsTransportInternal* rtp_transport,
94 DtlsTransportInternal* rtcp_transport, 94 DtlsTransportInternal* rtcp_transport,
95 rtc::Thread* signaling_thread, 95 rtc::Thread* signaling_thread,
96 const std::string& content_name, 96 const std::string& content_name,
97 const std::string* bundle_transport_name, 97 bool srtp_required,
98 bool rtcp_mux_required, 98 const AudioOptions& options);
99 // Version of the above that takes PacketTransportInternal.
100 VoiceChannel* CreateVoiceChannel(
101 webrtc::MediaControllerInterface* media_controller,
102 rtc::PacketTransportInternal* rtp_transport,
103 rtc::PacketTransportInternal* rtcp_transport,
104 rtc::Thread* signaling_thread,
105 const std::string& content_name,
99 bool srtp_required, 106 bool srtp_required,
100 const AudioOptions& options); 107 const AudioOptions& options);
101 // Destroys a voice channel created with the Create API. 108 // Destroys a voice channel created with the Create API.
102 void DestroyVoiceChannel(VoiceChannel* voice_channel); 109 void DestroyVoiceChannel(VoiceChannel* voice_channel);
103 // Creates a video channel, synced with the specified voice channel, and 110 // Creates a video channel, synced with the specified voice channel, and
104 // associated with the specified session. 111 // associated with the specified session.
105 VideoChannel* CreateVideoChannel( 112 VideoChannel* CreateVideoChannel(
106 webrtc::MediaControllerInterface* media_controller, 113 webrtc::MediaControllerInterface* media_controller,
107 DtlsTransportInternal* rtp_transport, 114 DtlsTransportInternal* rtp_transport,
108 DtlsTransportInternal* rtcp_transport, 115 DtlsTransportInternal* rtcp_transport,
109 rtc::Thread* signaling_thread, 116 rtc::Thread* signaling_thread,
110 const std::string& content_name, 117 const std::string& content_name,
111 const std::string* bundle_transport_name, 118 bool srtp_required,
112 bool rtcp_mux_required, 119 const VideoOptions& options);
120 // Version of the above that takes PacketTransportInternal.
121 VideoChannel* CreateVideoChannel(
122 webrtc::MediaControllerInterface* media_controller,
123 rtc::PacketTransportInternal* rtp_transport,
124 rtc::PacketTransportInternal* rtcp_transport,
125 rtc::Thread* signaling_thread,
126 const std::string& content_name,
113 bool srtp_required, 127 bool srtp_required,
114 const VideoOptions& options); 128 const VideoOptions& options);
115 // Destroys a video channel created with the Create API. 129 // Destroys a video channel created with the Create API.
116 void DestroyVideoChannel(VideoChannel* video_channel); 130 void DestroyVideoChannel(VideoChannel* video_channel);
117 RtpDataChannel* CreateRtpDataChannel( 131 RtpDataChannel* CreateRtpDataChannel(
118 webrtc::MediaControllerInterface* media_controller, 132 webrtc::MediaControllerInterface* media_controller,
119 DtlsTransportInternal* rtp_transport, 133 DtlsTransportInternal* rtp_transport,
120 DtlsTransportInternal* rtcp_transport, 134 DtlsTransportInternal* rtcp_transport,
121 rtc::Thread* signaling_thread, 135 rtc::Thread* signaling_thread,
122 const std::string& content_name, 136 const std::string& content_name,
123 const std::string* bundle_transport_name,
124 bool rtcp_mux_required,
125 bool srtp_required); 137 bool srtp_required);
126 // Destroys a data channel created with the Create API. 138 // Destroys a data channel created with the Create API.
127 void DestroyRtpDataChannel(RtpDataChannel* data_channel); 139 void DestroyRtpDataChannel(RtpDataChannel* data_channel);
128 140
129 // Indicates whether any channels exist. 141 // Indicates whether any channels exist.
130 bool has_channels() const { 142 bool has_channels() const {
131 return (!voice_channels_.empty() || !video_channels_.empty()); 143 return (!voice_channels_.empty() || !video_channels_.empty());
132 } 144 }
133 145
134 // RTX will be enabled/disabled in engines that support it. The supporting 146 // RTX will be enabled/disabled in engines that support it. The supporting
(...skipping 15 matching lines...) Expand all
150 bool StartAecDump(rtc::PlatformFile file, int64_t max_size_bytes); 162 bool StartAecDump(rtc::PlatformFile file, int64_t max_size_bytes);
151 163
152 // Stops recording AEC dump. 164 // Stops recording AEC dump.
153 void StopAecDump(); 165 void StopAecDump();
154 166
155 private: 167 private:
156 typedef std::vector<VoiceChannel*> VoiceChannels; 168 typedef std::vector<VoiceChannel*> VoiceChannels;
157 typedef std::vector<VideoChannel*> VideoChannels; 169 typedef std::vector<VideoChannel*> VideoChannels;
158 typedef std::vector<RtpDataChannel*> RtpDataChannels; 170 typedef std::vector<RtpDataChannel*> RtpDataChannels;
159 171
160 void Construct(MediaEngineInterface* me, 172 void Construct(std::unique_ptr<MediaEngineInterface> me,
161 DataEngineInterface* dme, 173 std::unique_ptr<DataEngineInterface> dme,
162 rtc::Thread* worker_thread, 174 rtc::Thread* worker_thread,
163 rtc::Thread* network_thread); 175 rtc::Thread* network_thread);
164 bool InitMediaEngine_w(); 176 bool InitMediaEngine_w();
165 void DestructorDeletes_w(); 177 void DestructorDeletes_w();
166 void Terminate_w(); 178 void Terminate_w();
167 bool SetCryptoOptions_w(const rtc::CryptoOptions& crypto_options); 179 bool SetCryptoOptions_w(const rtc::CryptoOptions& crypto_options);
168 VoiceChannel* CreateVoiceChannel_w( 180 VoiceChannel* CreateVoiceChannel_w(
169 webrtc::MediaControllerInterface* media_controller, 181 webrtc::MediaControllerInterface* media_controller,
170 DtlsTransportInternal* rtp_transport, 182 DtlsTransportInternal* rtp_dtls_transport,
171 DtlsTransportInternal* rtcp_transport, 183 DtlsTransportInternal* rtcp_dtls_transport,
184 rtc::PacketTransportInternal* rtp_packet_transport,
185 rtc::PacketTransportInternal* rtcp_packet_transport,
172 rtc::Thread* signaling_thread, 186 rtc::Thread* signaling_thread,
173 const std::string& content_name, 187 const std::string& content_name,
174 const std::string* bundle_transport_name,
175 bool rtcp_mux_required,
176 bool srtp_required, 188 bool srtp_required,
177 const AudioOptions& options); 189 const AudioOptions& options);
178 void DestroyVoiceChannel_w(VoiceChannel* voice_channel); 190 void DestroyVoiceChannel_w(VoiceChannel* voice_channel);
179 VideoChannel* CreateVideoChannel_w( 191 VideoChannel* CreateVideoChannel_w(
180 webrtc::MediaControllerInterface* media_controller, 192 webrtc::MediaControllerInterface* media_controller,
181 DtlsTransportInternal* rtp_transport, 193 DtlsTransportInternal* rtp_dtls_transport,
182 DtlsTransportInternal* rtcp_transport, 194 DtlsTransportInternal* rtcp_dtls_transport,
195 rtc::PacketTransportInternal* rtp_packet_transport,
196 rtc::PacketTransportInternal* rtcp_packet_transport,
183 rtc::Thread* signaling_thread, 197 rtc::Thread* signaling_thread,
184 const std::string& content_name, 198 const std::string& content_name,
185 const std::string* bundle_transport_name,
186 bool rtcp_mux_required,
187 bool srtp_required, 199 bool srtp_required,
188 const VideoOptions& options); 200 const VideoOptions& options);
189 void DestroyVideoChannel_w(VideoChannel* video_channel); 201 void DestroyVideoChannel_w(VideoChannel* video_channel);
190 RtpDataChannel* CreateRtpDataChannel_w( 202 RtpDataChannel* CreateRtpDataChannel_w(
191 webrtc::MediaControllerInterface* media_controller, 203 webrtc::MediaControllerInterface* media_controller,
192 DtlsTransportInternal* rtp_transport, 204 DtlsTransportInternal* rtp_transport,
193 DtlsTransportInternal* rtcp_transport, 205 DtlsTransportInternal* rtcp_transport,
194 rtc::Thread* signaling_thread, 206 rtc::Thread* signaling_thread,
195 const std::string& content_name, 207 const std::string& content_name,
196 const std::string* bundle_transport_name,
197 bool rtcp_mux_required,
198 bool srtp_required); 208 bool srtp_required);
199 void DestroyRtpDataChannel_w(RtpDataChannel* data_channel); 209 void DestroyRtpDataChannel_w(RtpDataChannel* data_channel);
200 210
201 std::unique_ptr<MediaEngineInterface> media_engine_; 211 std::unique_ptr<MediaEngineInterface> media_engine_;
202 std::unique_ptr<DataEngineInterface> data_media_engine_; 212 std::unique_ptr<DataEngineInterface> data_media_engine_;
203 bool initialized_; 213 bool initialized_;
204 rtc::Thread* main_thread_; 214 rtc::Thread* main_thread_;
205 rtc::Thread* worker_thread_; 215 rtc::Thread* worker_thread_;
206 rtc::Thread* network_thread_; 216 rtc::Thread* network_thread_;
207 217
208 VoiceChannels voice_channels_; 218 VoiceChannels voice_channels_;
209 VideoChannels video_channels_; 219 VideoChannels video_channels_;
210 RtpDataChannels data_channels_; 220 RtpDataChannels data_channels_;
211 221
212 bool enable_rtx_; 222 bool enable_rtx_;
213 rtc::CryptoOptions crypto_options_; 223 rtc::CryptoOptions crypto_options_;
214 224
215 bool capturing_; 225 bool capturing_;
216 }; 226 };
217 227
218 } // namespace cricket 228 } // namespace cricket
219 229
220 #endif // WEBRTC_PC_CHANNELMANAGER_H_ 230 #endif // WEBRTC_PC_CHANNELMANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698