| OLD | NEW |
| 1 /* | 1 /* |
| 2 * libjingle | 2 * libjingle |
| 3 * Copyright 2004 Google Inc. | 3 * Copyright 2004 Google Inc. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
| 9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 #include "webrtc/base/criticalsection.h" | 38 #include "webrtc/base/criticalsection.h" |
| 39 #include "webrtc/base/fileutils.h" | 39 #include "webrtc/base/fileutils.h" |
| 40 #include "webrtc/base/sigslotrepeater.h" | 40 #include "webrtc/base/sigslotrepeater.h" |
| 41 #include "webrtc/base/thread.h" | 41 #include "webrtc/base/thread.h" |
| 42 | 42 |
| 43 namespace webrtc { | 43 namespace webrtc { |
| 44 class MediaControllerInterface; | 44 class MediaControllerInterface; |
| 45 } | 45 } |
| 46 namespace cricket { | 46 namespace cricket { |
| 47 | 47 |
| 48 const int kDefaultAudioDelayOffset = 0; | |
| 49 | |
| 50 class VoiceChannel; | 48 class VoiceChannel; |
| 51 | 49 |
| 52 // ChannelManager allows the MediaEngine to run on a separate thread, and takes | 50 // ChannelManager allows the MediaEngine to run on a separate thread, and takes |
| 53 // care of marshalling calls between threads. It also creates and keeps track of | 51 // care of marshalling calls between threads. It also creates and keeps track of |
| 54 // voice and video channels; by doing so, it can temporarily pause all the | 52 // voice and video channels; by doing so, it can temporarily pause all the |
| 55 // channels when a new audio or video device is chosen. The voice and video | 53 // channels when a new audio or video device is chosen. The voice and video |
| 56 // channels are stored in separate vectors, to easily allow operations on just | 54 // channels are stored in separate vectors, to easily allow operations on just |
| 57 // voice or just video channels. | 55 // voice or just video channels. |
| 58 // ChannelManager also allows the application to discover what devices it has | 56 // ChannelManager also allows the application to discover what devices it has |
| 59 // using device manager. | 57 // using device manager. |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 // The operations below occur on the main thread. | 169 // The operations below occur on the main thread. |
| 172 | 170 |
| 173 // Starts AEC dump using existing file. | 171 // Starts AEC dump using existing file. |
| 174 bool StartAecDump(rtc::PlatformFile file); | 172 bool StartAecDump(rtc::PlatformFile file); |
| 175 | 173 |
| 176 sigslot::signal2<VideoCapturer*, CaptureState> SignalVideoCaptureStateChange; | 174 sigslot::signal2<VideoCapturer*, CaptureState> SignalVideoCaptureStateChange; |
| 177 | 175 |
| 178 protected: | 176 protected: |
| 179 // Adds non-transient parameters which can only be changed through the | 177 // Adds non-transient parameters which can only be changed through the |
| 180 // options store. | 178 // options store. |
| 181 bool SetAudioOptions(const AudioOptions& options, int delay_offset); | 179 bool SetAudioOptions(const AudioOptions& options); |
| 182 int audio_delay_offset() const { return audio_delay_offset_; } | |
| 183 | 180 |
| 184 private: | 181 private: |
| 185 typedef std::vector<VoiceChannel*> VoiceChannels; | 182 typedef std::vector<VoiceChannel*> VoiceChannels; |
| 186 typedef std::vector<VideoChannel*> VideoChannels; | 183 typedef std::vector<VideoChannel*> VideoChannels; |
| 187 typedef std::vector<DataChannel*> DataChannels; | 184 typedef std::vector<DataChannel*> DataChannels; |
| 188 | 185 |
| 189 void Construct(MediaEngineInterface* me, | 186 void Construct(MediaEngineInterface* me, |
| 190 DataEngineInterface* dme, | 187 DataEngineInterface* dme, |
| 191 CaptureManager* cm, | 188 CaptureManager* cm, |
| 192 rtc::Thread* worker_thread); | 189 rtc::Thread* worker_thread); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 205 TransportController* transport_controller, | 202 TransportController* transport_controller, |
| 206 const std::string& content_name, | 203 const std::string& content_name, |
| 207 bool rtcp, | 204 bool rtcp, |
| 208 const VideoOptions& options); | 205 const VideoOptions& options); |
| 209 void DestroyVideoChannel_w(VideoChannel* video_channel); | 206 void DestroyVideoChannel_w(VideoChannel* video_channel); |
| 210 DataChannel* CreateDataChannel_w(TransportController* transport_controller, | 207 DataChannel* CreateDataChannel_w(TransportController* transport_controller, |
| 211 const std::string& content_name, | 208 const std::string& content_name, |
| 212 bool rtcp, | 209 bool rtcp, |
| 213 DataChannelType data_channel_type); | 210 DataChannelType data_channel_type); |
| 214 void DestroyDataChannel_w(DataChannel* data_channel); | 211 void DestroyDataChannel_w(DataChannel* data_channel); |
| 215 bool SetAudioOptions_w(const AudioOptions& options, int delay_offset, | 212 bool SetAudioOptions_w(const AudioOptions& options, |
| 216 const Device* in_dev, const Device* out_dev); | 213 const Device* in_dev, const Device* out_dev); |
| 217 void OnVideoCaptureStateChange(VideoCapturer* capturer, | 214 void OnVideoCaptureStateChange(VideoCapturer* capturer, |
| 218 CaptureState result); | 215 CaptureState result); |
| 219 void GetSupportedFormats_w( | 216 void GetSupportedFormats_w( |
| 220 VideoCapturer* capturer, | 217 VideoCapturer* capturer, |
| 221 std::vector<cricket::VideoFormat>* out_formats) const; | 218 std::vector<cricket::VideoFormat>* out_formats) const; |
| 222 bool IsScreencastRunning_w() const; | 219 bool IsScreencastRunning_w() const; |
| 223 virtual void OnMessage(rtc::Message *message); | 220 virtual void OnMessage(rtc::Message *message); |
| 224 | 221 |
| 225 rtc::scoped_ptr<MediaEngineInterface> media_engine_; | 222 rtc::scoped_ptr<MediaEngineInterface> media_engine_; |
| 226 rtc::scoped_ptr<DataEngineInterface> data_media_engine_; | 223 rtc::scoped_ptr<DataEngineInterface> data_media_engine_; |
| 227 rtc::scoped_ptr<CaptureManager> capture_manager_; | 224 rtc::scoped_ptr<CaptureManager> capture_manager_; |
| 228 bool initialized_; | 225 bool initialized_; |
| 229 rtc::Thread* main_thread_; | 226 rtc::Thread* main_thread_; |
| 230 rtc::Thread* worker_thread_; | 227 rtc::Thread* worker_thread_; |
| 231 | 228 |
| 232 VoiceChannels voice_channels_; | 229 VoiceChannels voice_channels_; |
| 233 VideoChannels video_channels_; | 230 VideoChannels video_channels_; |
| 234 DataChannels data_channels_; | 231 DataChannels data_channels_; |
| 235 | 232 |
| 236 AudioOptions audio_options_; | 233 AudioOptions audio_options_; |
| 237 int audio_delay_offset_; | |
| 238 int audio_output_volume_; | 234 int audio_output_volume_; |
| 239 VideoEncoderConfig default_video_encoder_config_; | 235 VideoEncoderConfig default_video_encoder_config_; |
| 240 VideoRenderer* local_renderer_; | 236 VideoRenderer* local_renderer_; |
| 241 bool enable_rtx_; | 237 bool enable_rtx_; |
| 242 | 238 |
| 243 bool capturing_; | 239 bool capturing_; |
| 244 }; | 240 }; |
| 245 | 241 |
| 246 } // namespace cricket | 242 } // namespace cricket |
| 247 | 243 |
| 248 #endif // TALK_SESSION_MEDIA_CHANNELMANAGER_H_ | 244 #endif // TALK_SESSION_MEDIA_CHANNELMANAGER_H_ |
| OLD | NEW |