diff options
Diffstat (limited to 'third_party/libwebrtc/webrtc/test/mock_audio_encoder.h')
-rw-r--r-- | third_party/libwebrtc/webrtc/test/mock_audio_encoder.h | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/third_party/libwebrtc/webrtc/test/mock_audio_encoder.h b/third_party/libwebrtc/webrtc/test/mock_audio_encoder.h new file mode 100644 index 0000000000..8196cf18a7 --- /dev/null +++ b/third_party/libwebrtc/webrtc/test/mock_audio_encoder.h @@ -0,0 +1,107 @@ +/* + * 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 <string> + +#include "api/array_view.h" +#include "api/audio_codecs/audio_encoder.h" +#include "test/gmock.h" + +namespace webrtc { + +class MockAudioEncoder : public AudioEncoder { + public: + // TODO(nisse): Valid overrides commented out, because the gmock + // methods don't use any override declarations, and we want to avoid + // warnings from -Winconsistent-missing-override. See + // http://crbug.com/428099. + MockAudioEncoder(); + ~MockAudioEncoder(); + MOCK_METHOD0(Die, void()); + MOCK_METHOD1(Mark, void(std::string desc)); + MOCK_CONST_METHOD0(SampleRateHz, int()); + MOCK_CONST_METHOD0(NumChannels, size_t()); + MOCK_CONST_METHOD0(RtpTimestampRateHz, int()); + MOCK_CONST_METHOD0(Num10MsFramesInNextPacket, size_t()); + MOCK_CONST_METHOD0(Max10MsFramesInAPacket, size_t()); + MOCK_CONST_METHOD0(GetTargetBitrate, int()); + MOCK_METHOD0(Reset, void()); + MOCK_METHOD1(SetFec, bool(bool enable)); + MOCK_METHOD1(SetDtx, bool(bool enable)); + MOCK_METHOD1(SetApplication, bool(Application application)); + MOCK_METHOD1(SetMaxPlaybackRate, void(int frequency_hz)); + MOCK_METHOD1(SetMaxBitrate, void(int max_bps)); + MOCK_METHOD1(SetMaxPayloadSize, void(int max_payload_size_bytes)); + MOCK_METHOD2(OnReceivedUplinkBandwidth, + void(int target_audio_bitrate_bps, + rtc::Optional<int64_t> probing_interval_ms)); + MOCK_METHOD1(OnReceivedUplinkPacketLossFraction, + void(float uplink_packet_loss_fraction)); + + MOCK_METHOD2(EnableAudioNetworkAdaptor, + bool(const std::string& config_string, RtcEventLog* event_log)); + + // Note, we explicitly chose not to create a mock for the Encode method. + MOCK_METHOD3(EncodeImpl, + EncodedInfo(uint32_t timestamp, + rtc::ArrayView<const int16_t> audio, + rtc::Buffer* encoded)); + + 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<const int16_t> 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<const uint8_t> 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<const uint8_t> payload); + + AudioEncoder::EncodedInfo operator()(uint32_t timestamp, + rtc::ArrayView<const int16_t> audio, + rtc::Buffer* encoded); + + private: + AudioEncoder::EncodedInfo info_; + rtc::ArrayView<const uint8_t> payload_; + }; +}; + +} // namespace webrtc + +#endif // TEST_MOCK_AUDIO_ENCODER_H_ |