blob: fc1cecbdcaeadaca4535220818d01921f37e300c [file] [log] [blame]
solenberg13725082015-11-25 16:16:521/*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3 *
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
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Fredrik Solenberga8b7c7f2018-01-17 10:18:3111#ifndef AUDIO_MOCK_VOE_CHANNEL_PROXY_H_
12#define AUDIO_MOCK_VOE_CHANNEL_PROXY_H_
solenberg13725082015-11-25 16:16:5213
Fredrik Solenberga8b7c7f2018-01-17 10:18:3114#include <map>
15#include <memory>
solenberg13725082015-11-25 16:16:5216#include <string>
Fredrik Solenbergf693bfa2018-12-11 11:22:1017#include <utility>
Fredrik Solenberga8b7c7f2018-01-17 10:18:3118#include <vector>
kwibergac9f8762016-10-01 05:29:4319
Tommie0972822021-06-14 06:11:1020#include "api/crypto/frame_decryptor_interface.h"
Benjamin Wright78410ad2018-10-25 16:52:5721#include "api/test/mock_frame_encryptor.h"
Niels Möller349ade32018-11-16 08:50:4222#include "audio/channel_receive.h"
Niels Möllerdced9f62018-11-19 09:27:0723#include "audio/channel_send.h"
Mirko Bonadei92ea95e2017-09-15 04:47:3124#include "modules/rtp_rtcp/source/rtp_packet_received.h"
25#include "test/gmock.h"
solenberg13725082015-11-25 16:16:5226
27namespace webrtc {
28namespace test {
29
Niels Möller349ade32018-11-16 08:50:4230class MockChannelReceive : public voe::ChannelReceiveInterface {
Niels Möllerb222f492018-10-03 14:50:0831 public:
Danil Chapovalovf9c6b682020-05-15 09:40:4432 MOCK_METHOD(void, SetNACKStatus, (bool enable, int max_packets), (override));
Philipp Hanckebad99ab2024-05-13 15:49:4233 MOCK_METHOD(void, SetRtcpMode, (RtcpMode mode), (override));
Ivo Creusen2562cf02021-09-03 14:51:2234 MOCK_METHOD(void, SetNonSenderRttMeasurement, (bool enabled), (override));
Danil Chapovalovf9c6b682020-05-15 09:40:4435 MOCK_METHOD(void,
36 RegisterReceiverCongestionControlObjects,
37 (PacketRouter*),
38 (override));
39 MOCK_METHOD(void, ResetReceiverCongestionControlObjects, (), (override));
40 MOCK_METHOD(CallReceiveStatistics, GetRTCPStatistics, (), (const, override));
Niels Möller6b4d9622020-09-14 08:47:5041 MOCK_METHOD(NetworkStatistics,
42 GetNetworkStatistics,
43 (bool),
44 (const, override));
Danil Chapovalovf9c6b682020-05-15 09:40:4445 MOCK_METHOD(AudioDecodingCallStats,
46 GetDecodingCallStatistics,
47 (),
48 (const, override));
49 MOCK_METHOD(int, GetSpeechOutputLevelFullRange, (), (const, override));
50 MOCK_METHOD(double, GetTotalOutputEnergy, (), (const, override));
51 MOCK_METHOD(double, GetTotalOutputDuration, (), (const, override));
52 MOCK_METHOD(uint32_t, GetDelayEstimate, (), (const, override));
53 MOCK_METHOD(void, SetSink, (AudioSinkInterface*), (override));
54 MOCK_METHOD(void, OnRtpPacket, (const RtpPacketReceived& packet), (override));
55 MOCK_METHOD(void,
56 ReceivedRTCPPacket,
57 (const uint8_t*, size_t length),
58 (override));
59 MOCK_METHOD(void, SetChannelOutputVolumeScaling, (float scaling), (override));
60 MOCK_METHOD(AudioMixer::Source::AudioFrameInfo,
61 GetAudioFrameWithInfo,
62 (int sample_rate_hz, AudioFrame*),
63 (override));
64 MOCK_METHOD(int, PreferredSampleRate, (), (const, override));
Jakob Ivarsson010c1892024-09-04 11:24:1665 MOCK_METHOD(std::vector<RtpSource>, GetSources, (), (const, override));
Danil Chapovalovf9c6b682020-05-15 09:40:4466 MOCK_METHOD(void,
67 SetAssociatedSendChannel,
68 (const voe::ChannelSendInterface*),
69 (override));
70 MOCK_METHOD(bool,
71 GetPlayoutRtpTimestamp,
72 (uint32_t*, int64_t*),
73 (const, override));
74 MOCK_METHOD(void,
75 SetEstimatedPlayoutNtpTimestampMs,
76 (int64_t ntp_timestamp_ms, int64_t time_ms),
77 (override));
Florent Castelli8037fc62024-08-29 13:00:4078 MOCK_METHOD(std::optional<int64_t>,
Danil Chapovalovf9c6b682020-05-15 09:40:4479 GetCurrentEstimatedPlayoutNtpTimestampMs,
80 (int64_t now_ms),
81 (const, override));
Florent Castelli8037fc62024-08-29 13:00:4082 MOCK_METHOD(std::optional<Syncable::Info>,
Danil Chapovalovf9c6b682020-05-15 09:40:4483 GetSyncInfo,
84 (),
85 (const, override));
Ivo Creusenbef7b052020-09-08 14:30:2586 MOCK_METHOD(bool, SetMinimumPlayoutDelay, (int delay_ms), (override));
Danil Chapovalovf9c6b682020-05-15 09:40:4487 MOCK_METHOD(bool, SetBaseMinimumPlayoutDelayMs, (int delay_ms), (override));
88 MOCK_METHOD(int, GetBaseMinimumPlayoutDelayMs, (), (const, override));
Florent Castelli8037fc62024-08-29 13:00:4089 MOCK_METHOD((std::optional<std::pair<int, SdpAudioFormat>>),
Danil Chapovalovf9c6b682020-05-15 09:40:4490 GetReceiveCodec,
91 (),
92 (const, override));
93 MOCK_METHOD(void,
94 SetReceiveCodecs,
95 ((const std::map<int, SdpAudioFormat>& codecs)),
96 (override));
97 MOCK_METHOD(void, StartPlayout, (), (override));
98 MOCK_METHOD(void, StopPlayout, (), (override));
99 MOCK_METHOD(
100 void,
101 SetDepacketizerToDecoderFrameTransformer,
102 (rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer),
103 (override));
Tommie0972822021-06-14 06:11:10104 MOCK_METHOD(
105 void,
106 SetFrameDecryptor,
107 (rtc::scoped_refptr<webrtc::FrameDecryptorInterface> frame_decryptor),
108 (override));
Tommi08be9ba2021-06-15 21:01:57109 MOCK_METHOD(void, OnLocalSsrcChange, (uint32_t local_ssrc), (override));
110 MOCK_METHOD(uint32_t, GetLocalSsrc, (), (const, override));
Niels Möllerb222f492018-10-03 14:50:08111};
112
Niels Möllerdced9f62018-11-19 09:27:07113class MockChannelSend : public voe::ChannelSendInterface {
solenberg13725082015-11-25 16:16:52114 public:
Danil Chapovalovf9c6b682020-05-15 09:40:44115 MOCK_METHOD(void,
116 SetEncoder,
Philipp Hancked2098932023-11-01 18:18:32117 (int payload_type,
118 const SdpAudioFormat& encoder_format,
119 std::unique_ptr<AudioEncoder> encoder),
Danil Chapovalovf9c6b682020-05-15 09:40:44120 (override));
121 MOCK_METHOD(
122 void,
ossu20a4b3f2017-04-27 09:08:52123 ModifyEncoder,
Danil Chapovalovf9c6b682020-05-15 09:40:44124 (rtc::FunctionView<void(std::unique_ptr<AudioEncoder>*)> modifier),
125 (override));
126 MOCK_METHOD(void,
127 CallEncoder,
128 (rtc::FunctionView<void(AudioEncoder*)> modifier),
129 (override));
130 MOCK_METHOD(void, SetRTCP_CNAME, (absl::string_view c_name), (override));
131 MOCK_METHOD(void,
132 SetSendAudioLevelIndicationStatus,
133 (bool enable, int id),
134 (override));
135 MOCK_METHOD(void,
136 RegisterSenderCongestionControlObjects,
Danil Chapovalova2cf8ee2023-05-16 11:26:33137 (RtpTransportControllerSendInterface*),
Danil Chapovalovf9c6b682020-05-15 09:40:44138 (override));
139 MOCK_METHOD(void, ResetSenderCongestionControlObjects, (), (override));
140 MOCK_METHOD(CallSendStatistics, GetRTCPStatistics, (), (const, override));
Danil Chapovalova9b9d4e2023-05-03 11:20:11141 MOCK_METHOD(std::vector<ReportBlockData>,
Danil Chapovalovf9c6b682020-05-15 09:40:44142 GetRemoteRTCPReportBlocks,
143 (),
144 (const, override));
145 MOCK_METHOD(ANAStats, GetANAStatistics, (), (const, override));
146 MOCK_METHOD(void,
147 RegisterCngPayloadType,
148 (int payload_type, int payload_frequency),
149 (override));
150 MOCK_METHOD(void,
151 SetSendTelephoneEventPayloadType,
152 (int payload_type, int payload_frequency),
153 (override));
154 MOCK_METHOD(bool,
155 SendTelephoneEventOutband,
156 (int event, int duration_ms),
157 (override));
158 MOCK_METHOD(void,
159 OnBitrateAllocation,
160 (BitrateAllocationUpdate update),
161 (override));
162 MOCK_METHOD(void, SetInputMute, (bool muted), (override));
163 MOCK_METHOD(void,
164 ReceivedRTCPPacket,
165 (const uint8_t*, size_t length),
166 (override));
167 MOCK_METHOD(void,
168 ProcessAndEncodeAudio,
169 (std::unique_ptr<AudioFrame>),
170 (override));
Tomas Gunnarssonf25761d2020-06-03 20:55:33171 MOCK_METHOD(RtpRtcpInterface*, GetRtpRtcp, (), (const, override));
Jakob Ivarssonbf087452021-11-11 12:43:49172 MOCK_METHOD(int, GetTargetBitrate, (), (const, override));
Danil Chapovalovf9c6b682020-05-15 09:40:44173 MOCK_METHOD(int64_t, GetRTT, (), (const, override));
174 MOCK_METHOD(void, StartSend, (), (override));
175 MOCK_METHOD(void, StopSend, (), (override));
176 MOCK_METHOD(void,
177 SetFrameEncryptor,
178 (rtc::scoped_refptr<FrameEncryptorInterface> frame_encryptor),
179 (override));
180 MOCK_METHOD(
181 void,
182 SetEncoderToPacketizerFrameTransformer,
183 (rtc::scoped_refptr<webrtc::FrameTransformerInterface> frame_transformer),
184 (override));
Florent Castelli8037fc62024-08-29 13:00:40185 MOCK_METHOD(std::optional<DataRate>, GetUsedRate, (), (const, override));
Dan Tan2406aaf2024-08-05 20:53:31186 MOCK_METHOD(void,
187 RegisterPacketOverhead,
188 (int packet_byte_overhead),
189 (override));
solenberg13725082015-11-25 16:16:52190};
191} // namespace test
192} // namespace webrtc
193
Fredrik Solenberga8b7c7f2018-01-17 10:18:31194#endif // AUDIO_MOCK_VOE_CHANNEL_PROXY_H_