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

Unified Diff: webrtc/test/fake_voice_engine.h

Issue 1390753002: Implement AudioReceiveStream::GetStats(). (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: merge master Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/test/call_test.cc ('k') | webrtc/test/webrtc_test_common.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/test/fake_voice_engine.h
diff --git a/webrtc/test/fake_voice_engine.h b/webrtc/test/fake_voice_engine.h
new file mode 100644
index 0000000000000000000000000000000000000000..72f6b27dd2e3c6d995427e4aa4ae9c53ee238926
--- /dev/null
+++ b/webrtc/test/fake_voice_engine.h
@@ -0,0 +1,421 @@
+/*
+ * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS. All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef WEBRTC_AUDIO_FAKE_VOICE_ENGINE_H_
+#define WEBRTC_AUDIO_FAKE_VOICE_ENGINE_H_
+
+#include <vector>
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+#include "webrtc/voice_engine/voice_engine_impl.h"
+
+namespace webrtc {
+namespace test {
+
+// NOTE: This class inherits from VoiceEngineImpl so that its clients will be
+// able to get the various interfaces as usual, via T::GetInterface().
+class FakeVoiceEngine final : public VoiceEngineImpl {
+ public:
+ const int kSendChannelId = 1;
+ const int kReceiveChannelId = 2;
+
+ const int kRecvJitterBufferDelay = -7;
+ const int kRecvPlayoutBufferDelay = 302;
+ const unsigned int kRecvSpeechOutputLevel = 99;
+
+ FakeVoiceEngine() : VoiceEngineImpl(new Config(), true) {
+ // Increase ref count so this object isn't automatically deleted whenever
+ // interfaces are Release():d.
+ ++_ref_count;
+ }
+ ~FakeVoiceEngine() override {
+ // Decrease ref count before base class d-tor is called; otherwise it will
+ // trigger an assertion.
+ --_ref_count;
+ }
+
+ const CallStatistics& GetRecvCallStats() const {
+ static const CallStatistics kStats = {
+ 345, 678, 901, 234, -1, 0, 0, 567, 890, 123
+ };
+ return kStats;
+ }
+
+ const CodecInst& GetRecvRecCodecInst() const {
+ static const CodecInst kStats = {
+ 123, "codec_name", 96000, -1, -1, -1
+ };
+ return kStats;
+ }
+
+ const NetworkStatistics& GetRecvNetworkStats() const {
+ static const NetworkStatistics kStats = {
+ 123, 456, false, 0, 0, 789, 12, 345, 678, 901, -1, -1, -1, -1, -1, 0
+ };
+ return kStats;
+ }
+
+ const AudioDecodingCallStats& GetRecvAudioDecodingCallStats() const {
+ static AudioDecodingCallStats stats;
+ if (stats.calls_to_silence_generator == 0) {
+ stats.calls_to_silence_generator = 234;
+ stats.calls_to_neteq = 567;
+ stats.decoded_normal = 890;
+ stats.decoded_plc = 123;
+ stats.decoded_cng = 456;
+ stats.decoded_plc_cng = 789;
+ }
+ return stats;
+ }
+
+ // VoEBase
+ int RegisterVoiceEngineObserver(VoiceEngineObserver& observer) override {
+ return -1;
+ }
+ int DeRegisterVoiceEngineObserver() override { return -1; }
+ int Init(AudioDeviceModule* external_adm = NULL,
+ AudioProcessing* audioproc = NULL) override { return -1; }
+ AudioProcessing* audio_processing() override { return nullptr; }
+ int Terminate() override { return -1; }
+ int CreateChannel() override { return -1; }
+ int CreateChannel(const Config& config) override { return -1; }
+ int DeleteChannel(int channel) override { return -1; }
+ int StartReceive(int channel) override { return -1; }
+ int StopReceive(int channel) override { return -1; }
+ int StartPlayout(int channel) override { return -1; }
+ int StopPlayout(int channel) override { return -1; }
+ int StartSend(int channel) override { return -1; }
+ int StopSend(int channel) override { return -1; }
+ int GetVersion(char version[1024]) override { return -1; }
+ int LastError() override { return -1; }
+ AudioTransport* audio_transport() { return nullptr; }
+ int AssociateSendChannel(int channel, int accociate_send_channel) override {
+ return -1;
+ }
+
+ // VoECodec
+ int NumOfCodecs() override { return -1; }
+ int GetCodec(int index, CodecInst& codec) override { return -1; }
+ int SetSendCodec(int channel, const CodecInst& codec) override { return -1; }
+ int GetSendCodec(int channel, CodecInst& codec) override { return -1; }
+ int SetBitRate(int channel, int bitrate_bps) override { return -1; }
+ int GetRecCodec(int channel, CodecInst& codec) override {
+ EXPECT_EQ(channel, kReceiveChannelId);
+ codec = GetRecvRecCodecInst();
+ return 0;
+ }
+ int SetRecPayloadType(int channel, const CodecInst& codec) override {
+ return -1;
+ }
+ int GetRecPayloadType(int channel, CodecInst& codec) override { return -1; }
+ int SetSendCNPayloadType(int channel, int type,
+ PayloadFrequencies frequency = kFreq16000Hz) override { return -1; }
+ int SetVADStatus(int channel,
+ bool enable,
+ VadModes mode = kVadConventional,
+ bool disableDTX = false) override { return -1; }
+ int GetVADStatus(int channel,
+ bool& enabled,
+ VadModes& mode,
+ bool& disabledDTX) override { return -1; }
+ int SetOpusMaxPlaybackRate(int channel, int frequency_hz) override {
+ return -1;
+ }
+ int SetOpusDtx(int channel, bool enable_dtx) override { return -1; }
+ RtcEventLog* GetEventLog() override { return nullptr; }
+
+ // VoEDtmf
+ int SendTelephoneEvent(int channel,
+ int eventCode,
+ bool outOfBand = true,
+ int lengthMs = 160,
+ int attenuationDb = 10) override { return -1; }
+ int SetSendTelephoneEventPayloadType(int channel,
+ unsigned char type) override {
+ return -1;
+ }
+ int GetSendTelephoneEventPayloadType(int channel,
+ unsigned char& type) override {
+ return -1;
+ }
+ int SetDtmfFeedbackStatus(bool enable,
+ bool directFeedback = false) override { return -1; }
+ int GetDtmfFeedbackStatus(bool& enabled, bool& directFeedback) override {
+ return -1;
+ }
+ int PlayDtmfTone(int eventCode,
+ int lengthMs = 200,
+ int attenuationDb = 10) override { return -1; }
+
+ // VoEExternalMedia
+ int RegisterExternalMediaProcessing(
+ int channel,
+ ProcessingTypes type,
+ VoEMediaProcess& processObject) override { return -1; }
+ int DeRegisterExternalMediaProcessing(int channel,
+ ProcessingTypes type) override {
+ return -1;
+ }
+ int GetAudioFrame(int channel,
+ int desired_sample_rate_hz,
+ AudioFrame* frame) override { return -1; }
+ int SetExternalMixing(int channel, bool enable) override { return -1; }
+
+ // VoEFile
+ int StartPlayingFileLocally(
+ int channel,
+ const char fileNameUTF8[1024],
+ bool loop = false,
+ FileFormats format = kFileFormatPcm16kHzFile,
+ float volumeScaling = 1.0,
+ int startPointMs = 0,
+ int stopPointMs = 0) override { return -1; }
+ int StartPlayingFileLocally(
+ int channel,
+ InStream* stream,
+ FileFormats format = kFileFormatPcm16kHzFile,
+ float volumeScaling = 1.0,
+ int startPointMs = 0,
+ int stopPointMs = 0) override { return -1; }
+ int StopPlayingFileLocally(int channel) override { return -1; }
+ int IsPlayingFileLocally(int channel) override { return -1; }
+ int StartPlayingFileAsMicrophone(
+ int channel,
+ const char fileNameUTF8[1024],
+ bool loop = false,
+ bool mixWithMicrophone = false,
+ FileFormats format = kFileFormatPcm16kHzFile,
+ float volumeScaling = 1.0) override { return -1; }
+ int StartPlayingFileAsMicrophone(
+ int channel,
+ InStream* stream,
+ bool mixWithMicrophone = false,
+ FileFormats format = kFileFormatPcm16kHzFile,
+ float volumeScaling = 1.0) override { return -1; }
+ int StopPlayingFileAsMicrophone(int channel) override { return -1; }
+ int IsPlayingFileAsMicrophone(int channel) override { return -1; }
+ int StartRecordingPlayout(int channel,
+ const char* fileNameUTF8,
+ CodecInst* compression = NULL,
+ int maxSizeBytes = -1) override { return -1; }
+ int StopRecordingPlayout(int channel) override { return -1; }
+ int StartRecordingPlayout(int channel,
+ OutStream* stream,
+ CodecInst* compression = NULL) override {
+ return -1;
+ }
+ int StartRecordingMicrophone(const char* fileNameUTF8,
+ CodecInst* compression = NULL,
+ int maxSizeBytes = -1) override { return -1; }
+ int StartRecordingMicrophone(OutStream* stream,
+ CodecInst* compression = NULL) override {
+ return -1;
+ }
+ int StopRecordingMicrophone() override { return -1; }
+
+ // VoEHardware
+ int GetNumOfRecordingDevices(int& devices) override { return -1; }
+
+ // Gets the number of audio devices available for playout.
+ int GetNumOfPlayoutDevices(int& devices) override { return -1; }
+
+ // Gets the name of a specific recording device given by an |index|.
+ // On Windows Vista/7, it also retrieves an additional unique ID
+ // (GUID) for the recording device.
+ int GetRecordingDeviceName(int index,
+ char strNameUTF8[128],
+ char strGuidUTF8[128]) override { return -1; }
+
+ // Gets the name of a specific playout device given by an |index|.
+ // On Windows Vista/7, it also retrieves an additional unique ID
+ // (GUID) for the playout device.
+ int GetPlayoutDeviceName(int index,
+ char strNameUTF8[128],
+ char strGuidUTF8[128]) override { return -1; }
+
+ // Sets the audio device used for recording.
+ int SetRecordingDevice(
+ int index,
+ StereoChannel recordingChannel = kStereoBoth) override { return -1; }
+
+ // Sets the audio device used for playout.
+ int SetPlayoutDevice(int index) override { return -1; }
+
+ // Sets the type of audio device layer to use.
+ int SetAudioDeviceLayer(AudioLayers audioLayer) override { return -1; }
+
+ // Gets the currently used (active) audio device layer.
+ int GetAudioDeviceLayer(AudioLayers& audioLayer) override { return -1; }
+
+ // Native sample rate controls (samples/sec)
+ int SetRecordingSampleRate(unsigned int samples_per_sec) override {
+ return -1;
+ }
+ int RecordingSampleRate(unsigned int* samples_per_sec) const override {
+ return -1;
+ }
+ int SetPlayoutSampleRate(unsigned int samples_per_sec) override {
+ return -1;
+ }
+ int PlayoutSampleRate(unsigned int* samples_per_sec) const override {
+ return -1;
+ }
+
+ // Queries and controls platform audio effects on Android devices.
+ bool BuiltInAECIsAvailable() const override { return false; }
+ int EnableBuiltInAEC(bool enable) override { return -1; }
+ bool BuiltInAGCIsAvailable() const override { return false; }
+ int EnableBuiltInAGC(bool enable) override { return -1; }
+ bool BuiltInNSIsAvailable() const override { return false; }
+ int EnableBuiltInNS(bool enable) override { return -1; }
+
+ // VoENetwork
+ int RegisterExternalTransport(int channel, Transport& transport) override {
+ return -1;
+ }
+ int DeRegisterExternalTransport(int channel) override { return -1; }
+ int ReceivedRTPPacket(int channel,
+ const void* data,
+ size_t length) override { return -1; }
+ int ReceivedRTPPacket(int channel,
+ const void* data,
+ size_t length,
+ const PacketTime& packet_time) override { return -1; }
+ int ReceivedRTCPPacket(int channel,
+ const void* data,
+ size_t length) { return -1; }
+
+ // VoENetEqStats
+ int GetNetworkStatistics(int channel, NetworkStatistics& stats) override {
+ EXPECT_EQ(channel, kReceiveChannelId);
+ stats = GetRecvNetworkStats();
+ return 0;
+ }
+ int GetDecodingCallStatistics(int channel,
+ AudioDecodingCallStats* stats) const override {
+ EXPECT_EQ(channel, kReceiveChannelId);
+ EXPECT_NE(nullptr, stats);
+ *stats = GetRecvAudioDecodingCallStats();
+ return 0;
+ }
+
+ // VoERTP_RTCP
+ int SetLocalSSRC(int channel, unsigned int ssrc) override { return -1; }
+ int GetLocalSSRC(int channel, unsigned int& ssrc) override { return -1; }
+ int GetRemoteSSRC(int channel, unsigned int& ssrc) override {
+ EXPECT_EQ(channel, kReceiveChannelId);
+ ssrc = 0;
+ return 0;
+ }
+ int SetSendAudioLevelIndicationStatus(int channel,
+ bool enable,
+ unsigned char id = 1) override {
+ return -1;
+ }
+ int SetSendAbsoluteSenderTimeStatus(int channel,
+ bool enable,
+ unsigned char id) override { return -1; }
+ int SetReceiveAbsoluteSenderTimeStatus(int channel,
+ bool enable,
+ unsigned char id) override {
+ return -1;
+ }
+ int SetRTCPStatus(int channel, bool enable) override { return -1; }
+ int GetRTCPStatus(int channel, bool& enabled) override { return -1; }
+ int SetRTCP_CNAME(int channel, const char cName[256]) override { return -1; }
+ int GetRTCP_CNAME(int channel, char cName[256]) { return -1; }
+ int GetRemoteRTCP_CNAME(int channel, char cName[256]) override { return -1; }
+ int GetRemoteRTCPData(int channel,
+ unsigned int& NTPHigh,
+ unsigned int& NTPLow,
+ unsigned int& timestamp,
+ unsigned int& playoutTimestamp,
+ unsigned int* jitter = NULL,
+ unsigned short* fractionLost = NULL) override {
+ return -1;
+ }
+ int GetRTPStatistics(int channel,
+ unsigned int& averageJitterMs,
+ unsigned int& maxJitterMs,
+ unsigned int& discardedPackets) override { return -1; }
+ int GetRTCPStatistics(int channel, CallStatistics& stats) override {
+ EXPECT_EQ(channel, kReceiveChannelId);
+ stats = GetRecvCallStats();
+ return 0;
+ }
+ int GetRemoteRTCPReportBlocks(
+ int channel,
+ std::vector<ReportBlock>* receive_blocks) override { return -1; }
+ int SetNACKStatus(int channel, bool enable, int maxNoPackets) override {
+ return -1;
+ }
+
+ // VoEVideoSync
+ int GetPlayoutBufferSize(int& buffer_ms) override { return -1; }
+ int SetMinimumPlayoutDelay(int channel, int delay_ms) override { return -1; }
+ int SetInitialPlayoutDelay(int channel, int delay_ms) override { return -1; }
+ int GetDelayEstimate(int channel,
+ int* jitter_buffer_delay_ms,
+ int* playout_buffer_delay_ms) override {
+ EXPECT_EQ(channel, kReceiveChannelId);
+ *jitter_buffer_delay_ms = kRecvJitterBufferDelay;
+ *playout_buffer_delay_ms = kRecvPlayoutBufferDelay;
+ return 0;
+ }
+ int GetLeastRequiredDelayMs(int channel) const override { return -1; }
+ int SetInitTimestamp(int channel, unsigned int timestamp) override {
+ return -1;
+ }
+ int SetInitSequenceNumber(int channel, short sequenceNumber) override {
+ return -1;
+ }
+ int GetPlayoutTimestamp(int channel, unsigned int& timestamp) override {
+ return -1;
+ }
+ int GetRtpRtcp(int channel,
+ RtpRtcp** rtpRtcpModule,
+ RtpReceiver** rtp_receiver) override { return -1; }
+
+ // VoEVolumeControl
+ int SetSpeakerVolume(unsigned int volume) override { return -1; }
+ int GetSpeakerVolume(unsigned int& volume) override { return -1; }
+ int SetMicVolume(unsigned int volume) override { return -1; }
+ int GetMicVolume(unsigned int& volume) override { return -1; }
+ int SetInputMute(int channel, bool enable) override { return -1; }
+ int GetInputMute(int channel, bool& enabled) override { return -1; }
+ int GetSpeechInputLevel(unsigned int& level) override { return -1; }
+ int GetSpeechOutputLevel(int channel, unsigned int& level) override {
+ return -1;
+ }
+ int GetSpeechInputLevelFullRange(unsigned int& level) override { return -1; }
+ int GetSpeechOutputLevelFullRange(int channel,
+ unsigned int& level) override {
+ EXPECT_EQ(channel, kReceiveChannelId);
+ level = kRecvSpeechOutputLevel;
+ return 0;
+ }
+ int SetChannelOutputVolumeScaling(int channel, float scaling) override {
+ return -1;
+ }
+ int GetChannelOutputVolumeScaling(int channel, float& scaling) override {
+ return -1;
+ }
+ int SetOutputVolumePan(int channel, float left, float right) override {
+ return -1;
+ }
+ int GetOutputVolumePan(int channel, float& left, float& right) override {
+ return -1;
+ }
+};
+} // namespace test
+} // namespace webrtc
+
+#endif // WEBRTC_AUDIO_FAKE_VOICE_ENGINE_H_
« no previous file with comments | « webrtc/test/call_test.cc ('k') | webrtc/test/webrtc_test_common.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698