OLD | NEW |
---|---|
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2010 Google Inc. | 3 * Copyright 2010 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 "talk/media/webrtc/webrtcvoe.h" | 38 #include "talk/media/webrtc/webrtcvoe.h" |
39 #include "webrtc/base/basictypes.h" | 39 #include "webrtc/base/basictypes.h" |
40 #include "webrtc/base/checks.h" | 40 #include "webrtc/base/checks.h" |
41 #include "webrtc/base/gunit.h" | 41 #include "webrtc/base/gunit.h" |
42 #include "webrtc/base/stringutils.h" | 42 #include "webrtc/base/stringutils.h" |
43 #include "webrtc/config.h" | 43 #include "webrtc/config.h" |
44 #include "webrtc/modules/audio_processing/include/audio_processing.h" | 44 #include "webrtc/modules/audio_processing/include/audio_processing.h" |
45 | 45 |
46 namespace cricket { | 46 namespace cricket { |
47 | 47 |
48 // Function returning stats will return these values | |
49 // for all values based on type. | |
50 const int kIntStatValue = 123; | |
51 const float kFractionLostStatValue = 0.5; | |
52 | |
53 static const char kFakeDefaultDeviceName[] = "Fake Default"; | 48 static const char kFakeDefaultDeviceName[] = "Fake Default"; |
54 static const int kFakeDefaultDeviceId = -1; | 49 static const int kFakeDefaultDeviceId = -1; |
55 static const char kFakeDeviceName[] = "Fake Device"; | 50 static const char kFakeDeviceName[] = "Fake Device"; |
56 #ifdef WIN32 | 51 #ifdef WIN32 |
57 static const int kFakeDeviceId = 0; | 52 static const int kFakeDeviceId = 0; |
58 #else | 53 #else |
59 static const int kFakeDeviceId = 1; | 54 static const int kFakeDeviceId = 1; |
60 #endif | 55 #endif |
61 | 56 |
62 static const int kOpusBandwidthNb = 4000; | 57 static const int kOpusBandwidthNb = 4000; |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
261 } | 256 } |
262 ~FakeWebRtcVoiceEngine() { | 257 ~FakeWebRtcVoiceEngine() { |
263 // Ought to have all been deleted by the WebRtcVoiceMediaChannel | 258 // Ought to have all been deleted by the WebRtcVoiceMediaChannel |
264 // destructors, but just in case ... | 259 // destructors, but just in case ... |
265 for (std::map<int, Channel*>::const_iterator i = channels_.begin(); | 260 for (std::map<int, Channel*>::const_iterator i = channels_.begin(); |
266 i != channels_.end(); ++i) { | 261 i != channels_.end(); ++i) { |
267 delete i->second; | 262 delete i->second; |
268 } | 263 } |
269 } | 264 } |
270 | 265 |
266 bool ec_metrics_enabled() { return ec_metrics_enabled_; } | |
tommi
2015/10/23 12:50:37
nit: const?
the sun
2015/10/23 15:14:16
Yeah!
| |
267 | |
271 bool IsInited() const { return inited_; } | 268 bool IsInited() const { return inited_; } |
272 int GetLastChannel() const { return last_channel_; } | 269 int GetLastChannel() const { return last_channel_; } |
273 int GetChannelFromLocalSsrc(uint32_t local_ssrc) const { | 270 int GetChannelFromLocalSsrc(uint32_t local_ssrc) const { |
274 for (std::map<int, Channel*>::const_iterator iter = channels_.begin(); | 271 for (std::map<int, Channel*>::const_iterator iter = channels_.begin(); |
275 iter != channels_.end(); ++iter) { | 272 iter != channels_.end(); ++iter) { |
276 if (local_ssrc == iter->second->send_ssrc) | 273 if (local_ssrc == iter->second->send_ssrc) |
277 return iter->first; | 274 return iter->first; |
278 } | 275 } |
279 return -1; | 276 return -1; |
280 } | 277 } |
281 int GetNumChannels() const { return static_cast<int>(channels_.size()); } | 278 int GetNumChannels() const { return static_cast<int>(channels_.size()); } |
279 uint32_t GetLocalSSRC(int channel) { | |
280 return channels_[channel]->send_ssrc; | |
281 } | |
282 bool GetPlayout(int channel) { | 282 bool GetPlayout(int channel) { |
283 return channels_[channel]->playout; | 283 return channels_[channel]->playout; |
284 } | 284 } |
285 bool GetSend(int channel) { | 285 bool GetSend(int channel) { |
286 return channels_[channel]->send; | 286 return channels_[channel]->send; |
287 } | 287 } |
288 bool GetVAD(int channel) { | 288 bool GetVAD(int channel) { |
289 return channels_[channel]->vad; | 289 return channels_[channel]->vad; |
290 } | 290 } |
291 bool GetOpusDtx(int channel) { | 291 bool GetOpusDtx(int channel) { |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
720 | 720 |
721 WEBRTC_STUB(ReceivedRTCPPacket, (int channel, const void* data, | 721 WEBRTC_STUB(ReceivedRTCPPacket, (int channel, const void* data, |
722 size_t length)); | 722 size_t length)); |
723 | 723 |
724 // webrtc::VoERTP_RTCP | 724 // webrtc::VoERTP_RTCP |
725 WEBRTC_FUNC(SetLocalSSRC, (int channel, unsigned int ssrc)) { | 725 WEBRTC_FUNC(SetLocalSSRC, (int channel, unsigned int ssrc)) { |
726 WEBRTC_CHECK_CHANNEL(channel); | 726 WEBRTC_CHECK_CHANNEL(channel); |
727 channels_[channel]->send_ssrc = ssrc; | 727 channels_[channel]->send_ssrc = ssrc; |
728 return 0; | 728 return 0; |
729 } | 729 } |
730 WEBRTC_FUNC(GetLocalSSRC, (int channel, unsigned int& ssrc)) { | 730 WEBRTC_STUB(GetLocalSSRC, (int channel, unsigned int& ssrc)); |
731 WEBRTC_CHECK_CHANNEL(channel); | |
732 ssrc = channels_[channel]->send_ssrc; | |
733 return 0; | |
734 } | |
735 WEBRTC_STUB(GetRemoteSSRC, (int channel, unsigned int& ssrc)); | 731 WEBRTC_STUB(GetRemoteSSRC, (int channel, unsigned int& ssrc)); |
736 WEBRTC_FUNC(SetSendAudioLevelIndicationStatus, (int channel, bool enable, | 732 WEBRTC_FUNC(SetSendAudioLevelIndicationStatus, (int channel, bool enable, |
737 unsigned char id)) { | 733 unsigned char id)) { |
738 WEBRTC_CHECK_CHANNEL(channel); | 734 WEBRTC_CHECK_CHANNEL(channel); |
739 WEBRTC_CHECK_HEADER_EXTENSION_ID(enable, id); | 735 WEBRTC_CHECK_HEADER_EXTENSION_ID(enable, id); |
740 channels_[channel]->send_audio_level_ext_ = (enable) ? id : -1; | 736 channels_[channel]->send_audio_level_ext_ = (enable) ? id : -1; |
741 return 0; | 737 return 0; |
742 } | 738 } |
743 WEBRTC_FUNC(SetReceiveAudioLevelIndicationStatus, (int channel, bool enable, | 739 WEBRTC_FUNC(SetReceiveAudioLevelIndicationStatus, (int channel, bool enable, |
744 unsigned char id)) { | 740 unsigned char id)) { |
(...skipping 21 matching lines...) Expand all Loading... | |
766 WEBRTC_STUB(GetRTCPStatus, (int channel, bool& enabled)); | 762 WEBRTC_STUB(GetRTCPStatus, (int channel, bool& enabled)); |
767 WEBRTC_STUB(SetRTCP_CNAME, (int channel, const char cname[256])); | 763 WEBRTC_STUB(SetRTCP_CNAME, (int channel, const char cname[256])); |
768 WEBRTC_STUB(GetRTCP_CNAME, (int channel, char cname[256])); | 764 WEBRTC_STUB(GetRTCP_CNAME, (int channel, char cname[256])); |
769 WEBRTC_STUB(GetRemoteRTCP_CNAME, (int channel, char* cname)); | 765 WEBRTC_STUB(GetRemoteRTCP_CNAME, (int channel, char* cname)); |
770 WEBRTC_STUB(GetRemoteRTCPData, (int channel, unsigned int& NTPHigh, | 766 WEBRTC_STUB(GetRemoteRTCPData, (int channel, unsigned int& NTPHigh, |
771 unsigned int& NTPLow, | 767 unsigned int& NTPLow, |
772 unsigned int& timestamp, | 768 unsigned int& timestamp, |
773 unsigned int& playoutTimestamp, | 769 unsigned int& playoutTimestamp, |
774 unsigned int* jitter, | 770 unsigned int* jitter, |
775 unsigned short* fractionLost)); | 771 unsigned short* fractionLost)); |
776 WEBRTC_FUNC(GetRemoteRTCPReportBlocks, | 772 WEBRTC_STUB(GetRemoteRTCPReportBlocks, |
777 (int channel, std::vector<webrtc::ReportBlock>* receive_blocks)) { | 773 (int channel, std::vector<webrtc::ReportBlock>* receive_blocks)); |
778 WEBRTC_CHECK_CHANNEL(channel); | |
779 webrtc::ReportBlock block; | |
780 block.source_SSRC = channels_[channel]->send_ssrc; | |
781 webrtc::CodecInst send_codec = channels_[channel]->send_codec; | |
782 if (send_codec.pltype >= 0) { | |
783 block.fraction_lost = (unsigned char)(kFractionLostStatValue * 256); | |
784 if (send_codec.plfreq / 1000 > 0) { | |
785 block.interarrival_jitter = kIntStatValue * (send_codec.plfreq / 1000); | |
786 } | |
787 block.cumulative_num_packets_lost = kIntStatValue; | |
788 block.extended_highest_sequence_number = kIntStatValue; | |
789 receive_blocks->push_back(block); | |
790 } | |
791 return 0; | |
792 } | |
793 WEBRTC_STUB(GetRTPStatistics, (int channel, unsigned int& averageJitterMs, | 774 WEBRTC_STUB(GetRTPStatistics, (int channel, unsigned int& averageJitterMs, |
794 unsigned int& maxJitterMs, | 775 unsigned int& maxJitterMs, |
795 unsigned int& discardedPackets)); | 776 unsigned int& discardedPackets)); |
796 WEBRTC_FUNC(GetRTCPStatistics, (int channel, webrtc::CallStatistics& stats)) { | 777 WEBRTC_STUB(GetRTCPStatistics, (int channel, webrtc::CallStatistics& stats)); |
797 WEBRTC_CHECK_CHANNEL(channel); | |
798 stats.fractionLost = static_cast<int16_t>(kIntStatValue); | |
799 stats.cumulativeLost = kIntStatValue; | |
800 stats.extendedMax = kIntStatValue; | |
801 stats.jitterSamples = kIntStatValue; | |
802 stats.rttMs = kIntStatValue; | |
803 stats.bytesSent = kIntStatValue; | |
804 stats.packetsSent = kIntStatValue; | |
805 stats.bytesReceived = kIntStatValue; | |
806 stats.packetsReceived = kIntStatValue; | |
807 return 0; | |
808 } | |
809 WEBRTC_FUNC(SetREDStatus, (int channel, bool enable, int redPayloadtype)) { | 778 WEBRTC_FUNC(SetREDStatus, (int channel, bool enable, int redPayloadtype)) { |
810 return SetFECStatus(channel, enable, redPayloadtype); | 779 return SetFECStatus(channel, enable, redPayloadtype); |
811 } | 780 } |
812 // TODO(minyue): remove the below function when transition to SetREDStatus | 781 // TODO(minyue): remove the below function when transition to SetREDStatus |
813 // is finished. | 782 // is finished. |
814 WEBRTC_FUNC(SetFECStatus, (int channel, bool enable, int redPayloadtype)) { | 783 WEBRTC_FUNC(SetFECStatus, (int channel, bool enable, int redPayloadtype)) { |
815 WEBRTC_CHECK_CHANNEL(channel); | 784 WEBRTC_CHECK_CHANNEL(channel); |
816 channels_[channel]->red = enable; | 785 channels_[channel]->red = enable; |
817 channels_[channel]->red_type = redPayloadtype; | 786 channels_[channel]->red_type = redPayloadtype; |
818 return 0; | 787 return 0; |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
924 WEBRTC_STUB(SetRxAgcConfig, (int channel, webrtc::AgcConfig config)); | 893 WEBRTC_STUB(SetRxAgcConfig, (int channel, webrtc::AgcConfig config)); |
925 WEBRTC_STUB(GetRxAgcConfig, (int channel, webrtc::AgcConfig& config)); | 894 WEBRTC_STUB(GetRxAgcConfig, (int channel, webrtc::AgcConfig& config)); |
926 | 895 |
927 WEBRTC_STUB(RegisterRxVadObserver, (int, webrtc::VoERxVadCallback&)); | 896 WEBRTC_STUB(RegisterRxVadObserver, (int, webrtc::VoERxVadCallback&)); |
928 WEBRTC_STUB(DeRegisterRxVadObserver, (int channel)); | 897 WEBRTC_STUB(DeRegisterRxVadObserver, (int channel)); |
929 WEBRTC_STUB(VoiceActivityIndicator, (int channel)); | 898 WEBRTC_STUB(VoiceActivityIndicator, (int channel)); |
930 WEBRTC_FUNC(SetEcMetricsStatus, (bool enable)) { | 899 WEBRTC_FUNC(SetEcMetricsStatus, (bool enable)) { |
931 ec_metrics_enabled_ = enable; | 900 ec_metrics_enabled_ = enable; |
932 return 0; | 901 return 0; |
933 } | 902 } |
934 WEBRTC_FUNC(GetEcMetricsStatus, (bool& enabled)) { | 903 WEBRTC_STUB(GetEcMetricsStatus, (bool& enabled)); |
935 enabled = ec_metrics_enabled_; | |
936 return 0; | |
937 } | |
938 WEBRTC_STUB(GetEchoMetrics, (int& ERL, int& ERLE, int& RERL, int& A_NLP)); | 904 WEBRTC_STUB(GetEchoMetrics, (int& ERL, int& ERLE, int& RERL, int& A_NLP)); |
939 WEBRTC_STUB(GetEcDelayMetrics, (int& delay_median, int& delay_std, | 905 WEBRTC_STUB(GetEcDelayMetrics, (int& delay_median, int& delay_std, |
940 float& fraction_poor_delays)); | 906 float& fraction_poor_delays)); |
941 | 907 |
942 WEBRTC_STUB(StartDebugRecording, (const char* fileNameUTF8)); | 908 WEBRTC_STUB(StartDebugRecording, (const char* fileNameUTF8)); |
943 WEBRTC_STUB(StartDebugRecording, (FILE* handle)); | 909 WEBRTC_STUB(StartDebugRecording, (FILE* handle)); |
944 WEBRTC_STUB(StopDebugRecording, ()); | 910 WEBRTC_STUB(StopDebugRecording, ()); |
945 | 911 |
946 WEBRTC_FUNC(SetTypingDetectionStatus, (bool enable)) { | 912 WEBRTC_FUNC(SetTypingDetectionStatus, (bool enable)) { |
947 typing_detection_enabled_ = enable; | 913 typing_detection_enabled_ = enable; |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1054 int playout_sample_rate_; | 1020 int playout_sample_rate_; |
1055 DtmfInfo dtmf_info_; | 1021 DtmfInfo dtmf_info_; |
1056 FakeAudioProcessing audio_processing_; | 1022 FakeAudioProcessing audio_processing_; |
1057 }; | 1023 }; |
1058 | 1024 |
1059 #undef WEBRTC_CHECK_HEADER_EXTENSION_ID | 1025 #undef WEBRTC_CHECK_HEADER_EXTENSION_ID |
1060 | 1026 |
1061 } // namespace cricket | 1027 } // namespace cricket |
1062 | 1028 |
1063 #endif // TALK_SESSION_PHONE_FAKEWEBRTCVOICEENGINE_H_ | 1029 #endif // TALK_SESSION_PHONE_FAKEWEBRTCVOICEENGINE_H_ |
OLD | NEW |