From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- third_party/libwebrtc/test/mock_audio_encoder.h | 116 ++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 third_party/libwebrtc/test/mock_audio_encoder.h (limited to 'third_party/libwebrtc/test/mock_audio_encoder.h') diff --git a/third_party/libwebrtc/test/mock_audio_encoder.h b/third_party/libwebrtc/test/mock_audio_encoder.h new file mode 100644 index 0000000000..1f4510e885 --- /dev/null +++ b/third_party/libwebrtc/test/mock_audio_encoder.h @@ -0,0 +1,116 @@ +/* + * Copyright (c) 2014 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 TEST_MOCK_AUDIO_ENCODER_H_ +#define TEST_MOCK_AUDIO_ENCODER_H_ + +#include + +#include "api/array_view.h" +#include "api/audio_codecs/audio_encoder.h" +#include "test/gmock.h" + +namespace webrtc { + +class MockAudioEncoder : public AudioEncoder { + public: + MockAudioEncoder(); + ~MockAudioEncoder(); + MOCK_METHOD(int, SampleRateHz, (), (const, override)); + MOCK_METHOD(size_t, NumChannels, (), (const, override)); + MOCK_METHOD(int, RtpTimestampRateHz, (), (const, override)); + MOCK_METHOD(size_t, Num10MsFramesInNextPacket, (), (const, override)); + MOCK_METHOD(size_t, Max10MsFramesInAPacket, (), (const, override)); + MOCK_METHOD(int, GetTargetBitrate, (), (const, override)); + MOCK_METHOD((absl::optional>), + GetFrameLengthRange, + (), + (const, override)); + + MOCK_METHOD(void, Reset, (), (override)); + MOCK_METHOD(bool, SetFec, (bool enable), (override)); + MOCK_METHOD(bool, SetDtx, (bool enable), (override)); + MOCK_METHOD(bool, SetApplication, (Application application), (override)); + MOCK_METHOD(void, SetMaxPlaybackRate, (int frequency_hz), (override)); + MOCK_METHOD(void, + OnReceivedUplinkBandwidth, + (int target_audio_bitrate_bps, + absl::optional probing_interval_ms), + (override)); + MOCK_METHOD(void, + OnReceivedUplinkPacketLossFraction, + (float uplink_packet_loss_fraction), + (override)); + MOCK_METHOD(void, + OnReceivedOverhead, + (size_t overhead_bytes_per_packet), + (override)); + + MOCK_METHOD(bool, + EnableAudioNetworkAdaptor, + (const std::string& config_string, RtcEventLog*), + (override)); + + // Note, we explicitly chose not to create a mock for the Encode method. + MOCK_METHOD(EncodedInfo, + EncodeImpl, + (uint32_t timestamp, + rtc::ArrayView audio, + rtc::Buffer*), + (override)); + + class FakeEncoding { + public: + // Creates a functor that will return `info` and adjust the rtc::Buffer + // given as input to it, so it is info.encoded_bytes larger. + explicit FakeEncoding(const AudioEncoder::EncodedInfo& info); + + // Shorthand version of the constructor above, for when only setting + // encoded_bytes in the EncodedInfo object matters. + explicit FakeEncoding(size_t encoded_bytes); + + AudioEncoder::EncodedInfo operator()(uint32_t timestamp, + rtc::ArrayView audio, + rtc::Buffer* encoded); + + private: + AudioEncoder::EncodedInfo info_; + }; + + class CopyEncoding { + public: + ~CopyEncoding(); + + // Creates a functor that will return `info` and append the data in the + // payload to the buffer given as input to it. Up to info.encoded_bytes are + // appended - make sure the payload is big enough! Since it uses an + // ArrayView, it _does not_ copy the payload. Make sure it doesn't fall out + // of scope! + CopyEncoding(AudioEncoder::EncodedInfo info, + rtc::ArrayView payload); + + // Shorthand version of the constructor above, for when you wish to append + // the whole payload and do not care about any EncodedInfo attribute other + // than encoded_bytes. + explicit CopyEncoding(rtc::ArrayView payload); + + AudioEncoder::EncodedInfo operator()(uint32_t timestamp, + rtc::ArrayView audio, + rtc::Buffer* encoded); + + private: + AudioEncoder::EncodedInfo info_; + rtc::ArrayView payload_; + }; +}; + +} // namespace webrtc + +#endif // TEST_MOCK_AUDIO_ENCODER_H_ -- cgit v1.2.3