Chromium Code Reviews| Index: webrtc/modules/audio_coding/codecs/mock/mock_audio_encoder.h |
| diff --git a/webrtc/modules/audio_coding/codecs/mock/mock_audio_encoder.h b/webrtc/modules/audio_coding/codecs/mock/mock_audio_encoder.h |
| index 66adde4be159c3af8fd0b404d09f80e8cc95c021..69d45cc0cad420ee7e226691334cffa0868caef3 100644 |
| --- a/webrtc/modules/audio_coding/codecs/mock/mock_audio_encoder.h |
| +++ b/webrtc/modules/audio_coding/codecs/mock/mock_audio_encoder.h |
| @@ -1,5 +1,5 @@ |
| /* |
| - * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. |
| + * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |
|
hlundin-webrtc
2016/02/29 12:46:47
This file is not new, right? Keep the old copyrigh
ossu
2016/02/29 13:23:01
Acknowledged.
|
| * |
| * 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 |
| @@ -11,15 +11,16 @@ |
| #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_MOCK_MOCK_AUDIO_ENCODER_H_ |
| #define WEBRTC_MODULES_AUDIO_CODING_CODECS_MOCK_MOCK_AUDIO_ENCODER_H_ |
| +#include "webrtc/base/array_view.h" |
| #include "webrtc/modules/audio_coding/codecs/audio_encoder.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| namespace webrtc { |
| -class MockAudioEncoder final : public AudioEncoder { |
| +class MockAudioEncoderBase : public AudioEncoder { |
| public: |
| - ~MockAudioEncoder() override { Die(); } |
| + ~MockAudioEncoderBase() override { Die(); } |
| MOCK_METHOD0(Die, void()); |
| MOCK_METHOD1(Mark, void(std::string desc)); |
| MOCK_CONST_METHOD0(MaxEncodedBytes, size_t()); |
| @@ -29,12 +30,6 @@ class MockAudioEncoder final : public AudioEncoder { |
| MOCK_CONST_METHOD0(Num10MsFramesInNextPacket, size_t()); |
| MOCK_CONST_METHOD0(Max10MsFramesInAPacket, size_t()); |
| MOCK_CONST_METHOD0(GetTargetBitrate, int()); |
| - // Note, we explicitly chose not to create a mock for the Encode method. |
| - MOCK_METHOD4(EncodeInternal, |
| - EncodedInfo(uint32_t timestamp, |
| - rtc::ArrayView<const int16_t> audio, |
| - size_t max_encoded_bytes, |
| - uint8_t* encoded)); |
| MOCK_METHOD0(Reset, void()); |
| MOCK_METHOD1(SetFec, bool(bool enable)); |
| MOCK_METHOD1(SetDtx, bool(bool enable)); |
| @@ -46,6 +41,86 @@ class MockAudioEncoder final : public AudioEncoder { |
| MOCK_METHOD1(SetMaxPayloadSize, void(int max_payload_size_bytes)); |
| }; |
| +class MockAudioEncoder final : public MockAudioEncoderBase { |
| + public: |
| + // Note, we explicitly chose not to create a mock for the Encode method. |
| + MOCK_METHOD3(EncodeInternal, |
| + 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. |
| + FakeEncoding(const AudioEncoder::EncodedInfo& info); |
| + |
| + // Shorthand version of the constructor above, for when only setting |
| + // encoded_bytes in the EncodedInfo object matters. |
| + 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: |
| + // 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. |
| + 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_; |
| + }; |
| + |
| +}; |
| + |
| +class MockAudioEncoderDeprecated final : public MockAudioEncoderBase { |
| + public: |
| + // Note, we explicitly chose not to create a mock for the Encode method. |
| + MOCK_METHOD4(EncodeInternal, |
| + EncodedInfo(uint32_t timestamp, |
| + rtc::ArrayView<const int16_t> audio, |
| + size_t max_encoded_bytes, |
| + uint8_t* encoded)); |
| + |
| + // A functor like MockAudioEncoder::CopyEncoding above, but which has the |
| + // deprecated Encode signature. Currently only used in one test and should be |
| + // removed once that backwards compatibility is. |
| + class CopyEncoding { |
| + public: |
| + CopyEncoding(AudioEncoder::EncodedInfo info, |
| + rtc::ArrayView<const uint8_t> payload); |
| + |
| + CopyEncoding(rtc::ArrayView<const uint8_t> payload); |
| + |
| + AudioEncoder::EncodedInfo operator()(uint32_t timestamp, |
| + rtc::ArrayView<const int16_t> audio, |
| + size_t max_bytes_encoded, |
| + uint8_t* encoded); |
| + private: |
| + AudioEncoder::EncodedInfo info_; |
| + rtc::ArrayView<const uint8_t> payload_; |
| + }; |
| +}; |
| + |
| } // namespace webrtc |
| #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_MOCK_MOCK_AUDIO_ENCODER_H_ |