OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 WEBRTC_VOICE_ENGINE_CHANNEL_H_ | 11 #ifndef WEBRTC_VOICE_ENGINE_CHANNEL_H_ |
12 #define WEBRTC_VOICE_ENGINE_CHANNEL_H_ | 12 #define WEBRTC_VOICE_ENGINE_CHANNEL_H_ |
13 | 13 |
| 14 #include "webrtc/base/criticalsection.h" |
14 #include "webrtc/base/scoped_ptr.h" | 15 #include "webrtc/base/scoped_ptr.h" |
15 #include "webrtc/common_audio/resampler/include/push_resampler.h" | 16 #include "webrtc/common_audio/resampler/include/push_resampler.h" |
16 #include "webrtc/common_types.h" | 17 #include "webrtc/common_types.h" |
17 #include "webrtc/modules/audio_coding/include/audio_coding_module.h" | 18 #include "webrtc/modules/audio_coding/include/audio_coding_module.h" |
18 #include "webrtc/modules/audio_conference_mixer/include/audio_conference_mixer_d
efines.h" | 19 #include "webrtc/modules/audio_conference_mixer/include/audio_conference_mixer_d
efines.h" |
19 #include "webrtc/modules/audio_processing/rms_level.h" | 20 #include "webrtc/modules/audio_processing/rms_level.h" |
20 #include "webrtc/modules/bitrate_controller/include/bitrate_controller.h" | |
21 #include "webrtc/modules/rtp_rtcp/include/remote_ntp_time_estimator.h" | 21 #include "webrtc/modules/rtp_rtcp/include/remote_ntp_time_estimator.h" |
22 #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h" | 22 #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h" |
23 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h" | 23 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h" |
24 #include "webrtc/modules/utility/include/file_player.h" | 24 #include "webrtc/modules/utility/include/file_player.h" |
25 #include "webrtc/modules/utility/include/file_recorder.h" | 25 #include "webrtc/modules/utility/include/file_recorder.h" |
26 #include "webrtc/voice_engine/dtmf_inband.h" | 26 #include "webrtc/voice_engine/dtmf_inband.h" |
27 #include "webrtc/voice_engine/dtmf_inband_queue.h" | 27 #include "webrtc/voice_engine/dtmf_inband_queue.h" |
28 #include "webrtc/voice_engine/include/voe_audio_processing.h" | 28 #include "webrtc/voice_engine/include/voe_audio_processing.h" |
29 #include "webrtc/voice_engine/include/voe_network.h" | 29 #include "webrtc/voice_engine/include/voe_network.h" |
30 #include "webrtc/voice_engine/level_indicator.h" | 30 #include "webrtc/voice_engine/level_indicator.h" |
(...skipping 10 matching lines...) Expand all Loading... |
41 | 41 |
42 class TimestampWrapAroundHandler; | 42 class TimestampWrapAroundHandler; |
43 } | 43 } |
44 | 44 |
45 namespace webrtc { | 45 namespace webrtc { |
46 | 46 |
47 class AudioDeviceModule; | 47 class AudioDeviceModule; |
48 class Config; | 48 class Config; |
49 class CriticalSectionWrapper; | 49 class CriticalSectionWrapper; |
50 class FileWrapper; | 50 class FileWrapper; |
| 51 class PacketRouter; |
51 class ProcessThread; | 52 class ProcessThread; |
52 class ReceiveStatistics; | 53 class ReceiveStatistics; |
53 class RemoteNtpTimeEstimator; | 54 class RemoteNtpTimeEstimator; |
54 class RtcEventLog; | 55 class RtcEventLog; |
55 class RTPPayloadRegistry; | 56 class RTPPayloadRegistry; |
56 class RtpReceiver; | 57 class RtpReceiver; |
57 class RTPReceiverAudio; | 58 class RTPReceiverAudio; |
58 class RtpRtcp; | 59 class RtpRtcp; |
59 class TelephoneEventHandler; | 60 class TelephoneEventHandler; |
60 class VoEMediaProcess; | 61 class VoEMediaProcess; |
61 class VoERTPObserver; | 62 class VoERTPObserver; |
62 class VoiceEngineObserver; | 63 class VoiceEngineObserver; |
63 | 64 |
64 struct CallStatistics; | 65 struct CallStatistics; |
65 struct ReportBlock; | 66 struct ReportBlock; |
66 struct SenderInfo; | 67 struct SenderInfo; |
67 | 68 |
68 namespace voe { | 69 namespace voe { |
69 | 70 |
70 class OutputMixer; | 71 class OutputMixer; |
| 72 class RtpPacketSenderProxy; |
71 class Statistics; | 73 class Statistics; |
72 class StatisticsProxy; | 74 class StatisticsProxy; |
| 75 class TransportFeedbackProxy; |
73 class TransmitMixer; | 76 class TransmitMixer; |
| 77 class TransportSequenceNumberProxy; |
74 class VoERtcpObserver; | 78 class VoERtcpObserver; |
75 | 79 |
76 // Helper class to simplify locking scheme for members that are accessed from | 80 // Helper class to simplify locking scheme for members that are accessed from |
77 // multiple threads. | 81 // multiple threads. |
78 // Example: a member can be set on thread T1 and read by an internal audio | 82 // Example: a member can be set on thread T1 and read by an internal audio |
79 // thread T2. Accessing the member via this class ensures that we are | 83 // thread T2. Accessing the member via this class ensures that we are |
80 // safe and also avoid TSan v2 warnings. | 84 // safe and also avoid TSan v2 warnings. |
81 class ChannelState { | 85 class ChannelState { |
82 public: | 86 public: |
83 struct State { | 87 struct State { |
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 #endif | 318 #endif |
315 | 319 |
316 // VoERTP_RTCP | 320 // VoERTP_RTCP |
317 int SetLocalSSRC(unsigned int ssrc); | 321 int SetLocalSSRC(unsigned int ssrc); |
318 int GetLocalSSRC(unsigned int& ssrc); | 322 int GetLocalSSRC(unsigned int& ssrc); |
319 int GetRemoteSSRC(unsigned int& ssrc); | 323 int GetRemoteSSRC(unsigned int& ssrc); |
320 int SetSendAudioLevelIndicationStatus(bool enable, unsigned char id); | 324 int SetSendAudioLevelIndicationStatus(bool enable, unsigned char id); |
321 int SetReceiveAudioLevelIndicationStatus(bool enable, unsigned char id); | 325 int SetReceiveAudioLevelIndicationStatus(bool enable, unsigned char id); |
322 int SetSendAbsoluteSenderTimeStatus(bool enable, unsigned char id); | 326 int SetSendAbsoluteSenderTimeStatus(bool enable, unsigned char id); |
323 int SetReceiveAbsoluteSenderTimeStatus(bool enable, unsigned char id); | 327 int SetReceiveAbsoluteSenderTimeStatus(bool enable, unsigned char id); |
| 328 void EnableSendTransportSequenceNumber(int id); |
| 329 |
| 330 void SetCongestionControlObjects( |
| 331 RtpPacketSender* rtp_packet_sender, |
| 332 TransportFeedbackObserver* transport_feedback_observer, |
| 333 PacketRouter* packet_router); |
| 334 |
324 void SetRTCPStatus(bool enable); | 335 void SetRTCPStatus(bool enable); |
325 int GetRTCPStatus(bool& enabled); | 336 int GetRTCPStatus(bool& enabled); |
326 int SetRTCP_CNAME(const char cName[256]); | 337 int SetRTCP_CNAME(const char cName[256]); |
327 int GetRemoteRTCP_CNAME(char cName[256]); | 338 int GetRemoteRTCP_CNAME(char cName[256]); |
328 int GetRemoteRTCPData(unsigned int& NTPHigh, unsigned int& NTPLow, | 339 int GetRemoteRTCPData(unsigned int& NTPHigh, unsigned int& NTPLow, |
329 unsigned int& timestamp, | 340 unsigned int& timestamp, |
330 unsigned int& playoutTimestamp, unsigned int* jitter, | 341 unsigned int& playoutTimestamp, unsigned int* jitter, |
331 unsigned short* fractionLost); | 342 unsigned short* fractionLost); |
332 int SendApplicationDefinedRTCPPacket(unsigned char subType, | 343 int SendApplicationDefinedRTCPPacket(unsigned char subType, |
333 unsigned int name, const char* data, | 344 unsigned int name, const char* data, |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
577 bool _RxVadDetection; | 588 bool _RxVadDetection; |
578 bool _rxAgcIsEnabled; | 589 bool _rxAgcIsEnabled; |
579 bool _rxNsIsEnabled; | 590 bool _rxNsIsEnabled; |
580 bool restored_packet_in_use_; | 591 bool restored_packet_in_use_; |
581 // RtcpBandwidthObserver | 592 // RtcpBandwidthObserver |
582 rtc::scoped_ptr<VoERtcpObserver> rtcp_observer_; | 593 rtc::scoped_ptr<VoERtcpObserver> rtcp_observer_; |
583 rtc::scoped_ptr<NetworkPredictor> network_predictor_; | 594 rtc::scoped_ptr<NetworkPredictor> network_predictor_; |
584 // An associated send channel. | 595 // An associated send channel. |
585 rtc::scoped_ptr<CriticalSectionWrapper> assoc_send_channel_lock_; | 596 rtc::scoped_ptr<CriticalSectionWrapper> assoc_send_channel_lock_; |
586 ChannelOwner associate_send_channel_ GUARDED_BY(assoc_send_channel_lock_); | 597 ChannelOwner associate_send_channel_ GUARDED_BY(assoc_send_channel_lock_); |
| 598 |
| 599 bool pacing_enabled_; |
| 600 PacketRouter* packet_router_ = nullptr; |
| 601 rtc::scoped_ptr<TransportFeedbackProxy> feedback_observer_proxy_; |
| 602 rtc::scoped_ptr<TransportSequenceNumberProxy> seq_num_allocator_proxy_; |
| 603 rtc::scoped_ptr<RtpPacketSenderProxy> rtp_packet_sender_proxy_; |
587 }; | 604 }; |
588 | 605 |
589 } // namespace voe | 606 } // namespace voe |
590 } // namespace webrtc | 607 } // namespace webrtc |
591 | 608 |
592 #endif // WEBRTC_VOICE_ENGINE_CHANNEL_H_ | 609 #endif // WEBRTC_VOICE_ENGINE_CHANNEL_H_ |
OLD | NEW |