OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 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 |
11 #ifndef MEDIA_ENGINE_WEBRTCVOICEENGINE_H_ | 11 #ifndef MEDIA_ENGINE_WEBRTCVOICEENGINE_H_ |
12 #define MEDIA_ENGINE_WEBRTCVOICEENGINE_H_ | 12 #define MEDIA_ENGINE_WEBRTCVOICEENGINE_H_ |
13 | 13 |
14 #include <map> | 14 #include <map> |
15 #include <memory> | 15 #include <memory> |
16 #include <string> | 16 #include <string> |
17 #include <vector> | 17 #include <vector> |
18 | 18 |
19 #include "api/audio_codecs/audio_encoder_factory.h" | 19 #include "api/audio_codecs/audio_encoder_factory.h" |
20 #include "api/rtpreceiverinterface.h" | 20 #include "api/rtpreceiverinterface.h" |
21 #include "call/audio_state.h" | 21 #include "call/audio_state.h" |
22 #include "call/call.h" | 22 #include "call/call.h" |
23 #include "media/base/rtputils.h" | 23 #include "media/base/rtputils.h" |
24 #include "media/engine/apm_helpers.h" | 24 #include "media/engine/apm_helpers.h" |
25 #include "media/engine/webrtccommon.h" | |
26 #include "media/engine/webrtcvoe.h" | 25 #include "media/engine/webrtcvoe.h" |
27 #include "modules/audio_processing/include/audio_processing.h" | 26 #include "modules/audio_processing/include/audio_processing.h" |
28 #include "pc/channel.h" | 27 #include "pc/channel.h" |
29 #include "rtc_base/buffer.h" | 28 #include "rtc_base/buffer.h" |
30 #include "rtc_base/constructormagic.h" | 29 #include "rtc_base/constructormagic.h" |
31 #include "rtc_base/networkroute.h" | 30 #include "rtc_base/networkroute.h" |
32 #include "rtc_base/scoped_ref_ptr.h" | 31 #include "rtc_base/scoped_ref_ptr.h" |
33 #include "rtc_base/task_queue.h" | 32 #include "rtc_base/task_queue.h" |
34 #include "rtc_base/thread_checker.h" | 33 #include "rtc_base/thread_checker.h" |
35 | 34 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 const std::vector<AudioCodec>& recv_codecs() const; | 81 const std::vector<AudioCodec>& recv_codecs() const; |
83 RtpCapabilities GetCapabilities() const; | 82 RtpCapabilities GetCapabilities() const; |
84 | 83 |
85 // For tracking WebRtc channels. Needed because we have to pause them | 84 // For tracking WebRtc channels. Needed because we have to pause them |
86 // all when switching devices. | 85 // all when switching devices. |
87 // May only be called by WebRtcVoiceMediaChannel. | 86 // May only be called by WebRtcVoiceMediaChannel. |
88 void RegisterChannel(WebRtcVoiceMediaChannel* channel); | 87 void RegisterChannel(WebRtcVoiceMediaChannel* channel); |
89 void UnregisterChannel(WebRtcVoiceMediaChannel* channel); | 88 void UnregisterChannel(WebRtcVoiceMediaChannel* channel); |
90 | 89 |
91 VoEWrapper* voe() { return voe_wrapper_.get(); } | 90 VoEWrapper* voe() { return voe_wrapper_.get(); } |
92 int GetLastEngineError(); | |
93 | 91 |
94 // Starts AEC dump using an existing file. A maximum file size in bytes can be | 92 // Starts AEC dump using an existing file. A maximum file size in bytes can be |
95 // specified. When the maximum file size is reached, logging is stopped and | 93 // specified. When the maximum file size is reached, logging is stopped and |
96 // the file is closed. If max_size_bytes is set to <= 0, no limit will be | 94 // the file is closed. If max_size_bytes is set to <= 0, no limit will be |
97 // used. | 95 // used. |
98 bool StartAecDump(rtc::PlatformFile file, int64_t max_size_bytes); | 96 bool StartAecDump(rtc::PlatformFile file, int64_t max_size_bytes); |
99 | 97 |
100 // Stops AEC dump. | 98 // Stops AEC dump. |
101 void StopAecDump(); | 99 void StopAecDump(); |
102 | 100 |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 int GetSendChannelId(uint32_t ssrc) const; | 240 int GetSendChannelId(uint32_t ssrc) const; |
243 | 241 |
244 private: | 242 private: |
245 bool SetOptions(const AudioOptions& options); | 243 bool SetOptions(const AudioOptions& options); |
246 bool SetRecvCodecs(const std::vector<AudioCodec>& codecs); | 244 bool SetRecvCodecs(const std::vector<AudioCodec>& codecs); |
247 bool SetSendCodecs(const std::vector<AudioCodec>& codecs); | 245 bool SetSendCodecs(const std::vector<AudioCodec>& codecs); |
248 bool SetLocalSource(uint32_t ssrc, AudioSource* source); | 246 bool SetLocalSource(uint32_t ssrc, AudioSource* source); |
249 bool MuteStream(uint32_t ssrc, bool mute); | 247 bool MuteStream(uint32_t ssrc, bool mute); |
250 | 248 |
251 WebRtcVoiceEngine* engine() { return engine_; } | 249 WebRtcVoiceEngine* engine() { return engine_; } |
252 int GetLastEngineError() { return engine()->GetLastEngineError(); } | |
253 void ChangePlayout(bool playout); | 250 void ChangePlayout(bool playout); |
254 int CreateVoEChannel(); | 251 int CreateVoEChannel(); |
255 bool DeleteVoEChannel(int channel); | 252 bool DeleteVoEChannel(int channel); |
256 bool SetMaxSendBitrate(int bps); | 253 bool SetMaxSendBitrate(int bps); |
257 bool ValidateRtpParameters(const webrtc::RtpParameters& parameters); | 254 bool ValidateRtpParameters(const webrtc::RtpParameters& parameters); |
258 void SetupRecording(); | 255 void SetupRecording(); |
259 // Check if 'ssrc' is an unsignaled stream, and if so mark it as not being | 256 // Check if 'ssrc' is an unsignaled stream, and if so mark it as not being |
260 // unsignaled anymore (i.e. it is now removed, or signaled), and return true. | 257 // unsignaled anymore (i.e. it is now removed, or signaled), and return true. |
261 bool MaybeDeregisterUnsignaledRecvStream(uint32_t ssrc); | 258 bool MaybeDeregisterUnsignaledRecvStream(uint32_t ssrc); |
262 | 259 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 std::vector<webrtc::RtpExtension> recv_rtp_extensions_; | 299 std::vector<webrtc::RtpExtension> recv_rtp_extensions_; |
303 | 300 |
304 rtc::Optional<webrtc::AudioSendStream::Config::SendCodecSpec> | 301 rtc::Optional<webrtc::AudioSendStream::Config::SendCodecSpec> |
305 send_codec_spec_; | 302 send_codec_spec_; |
306 | 303 |
307 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(WebRtcVoiceMediaChannel); | 304 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(WebRtcVoiceMediaChannel); |
308 }; | 305 }; |
309 } // namespace cricket | 306 } // namespace cricket |
310 | 307 |
311 #endif // MEDIA_ENGINE_WEBRTCVOICEENGINE_H_ | 308 #endif // MEDIA_ENGINE_WEBRTCVOICEENGINE_H_ |
OLD | NEW |