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

Side by Side Diff: webrtc/modules/audio_coding/codecs/mock/mock_audio_encoder.h

Issue 1725143003: Changed AudioEncoder::Encode to take an rtc::Buffer* instead of uint8_t* and a maximum size. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Removed use of <functional> and moved MockAudioEncoderHelper things into the respective MockAudioEn… Created 4 years, 9 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2 * 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.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_MOCK_MOCK_AUDIO_ENCODER_H_ 11 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_MOCK_MOCK_AUDIO_ENCODER_H_
12 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_MOCK_MOCK_AUDIO_ENCODER_H_ 12 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_MOCK_MOCK_AUDIO_ENCODER_H_
13 13
14 #include "webrtc/base/array_view.h"
14 #include "webrtc/modules/audio_coding/codecs/audio_encoder.h" 15 #include "webrtc/modules/audio_coding/codecs/audio_encoder.h"
15 16
16 #include "testing/gmock/include/gmock/gmock.h" 17 #include "testing/gmock/include/gmock/gmock.h"
17 18
18 namespace webrtc { 19 namespace webrtc {
19 20
20 class MockAudioEncoder final : public AudioEncoder { 21 class MockAudioEncoderBase : public AudioEncoder {
21 public: 22 public:
22 ~MockAudioEncoder() override { Die(); } 23 ~MockAudioEncoderBase() override { Die(); }
23 MOCK_METHOD0(Die, void()); 24 MOCK_METHOD0(Die, void());
24 MOCK_METHOD1(Mark, void(std::string desc)); 25 MOCK_METHOD1(Mark, void(std::string desc));
25 MOCK_CONST_METHOD0(MaxEncodedBytes, size_t()); 26 MOCK_CONST_METHOD0(MaxEncodedBytes, size_t());
26 MOCK_CONST_METHOD0(SampleRateHz, int()); 27 MOCK_CONST_METHOD0(SampleRateHz, int());
27 MOCK_CONST_METHOD0(NumChannels, size_t()); 28 MOCK_CONST_METHOD0(NumChannels, size_t());
28 MOCK_CONST_METHOD0(RtpTimestampRateHz, int()); 29 MOCK_CONST_METHOD0(RtpTimestampRateHz, int());
29 MOCK_CONST_METHOD0(Num10MsFramesInNextPacket, size_t()); 30 MOCK_CONST_METHOD0(Num10MsFramesInNextPacket, size_t());
30 MOCK_CONST_METHOD0(Max10MsFramesInAPacket, size_t()); 31 MOCK_CONST_METHOD0(Max10MsFramesInAPacket, size_t());
31 MOCK_CONST_METHOD0(GetTargetBitrate, int()); 32 MOCK_CONST_METHOD0(GetTargetBitrate, int());
32 // Note, we explicitly chose not to create a mock for the Encode method.
33 MOCK_METHOD4(EncodeInternal,
34 EncodedInfo(uint32_t timestamp,
35 rtc::ArrayView<const int16_t> audio,
36 size_t max_encoded_bytes,
37 uint8_t* encoded));
38 MOCK_METHOD0(Reset, void()); 33 MOCK_METHOD0(Reset, void());
39 MOCK_METHOD1(SetFec, bool(bool enable)); 34 MOCK_METHOD1(SetFec, bool(bool enable));
40 MOCK_METHOD1(SetDtx, bool(bool enable)); 35 MOCK_METHOD1(SetDtx, bool(bool enable));
41 MOCK_METHOD1(SetApplication, bool(Application application)); 36 MOCK_METHOD1(SetApplication, bool(Application application));
42 MOCK_METHOD1(SetMaxPlaybackRate, void(int frequency_hz)); 37 MOCK_METHOD1(SetMaxPlaybackRate, void(int frequency_hz));
43 MOCK_METHOD1(SetProjectedPacketLossRate, void(double fraction)); 38 MOCK_METHOD1(SetProjectedPacketLossRate, void(double fraction));
44 MOCK_METHOD1(SetTargetBitrate, void(int target_bps)); 39 MOCK_METHOD1(SetTargetBitrate, void(int target_bps));
45 MOCK_METHOD1(SetMaxBitrate, void(int max_bps)); 40 MOCK_METHOD1(SetMaxBitrate, void(int max_bps));
46 MOCK_METHOD1(SetMaxPayloadSize, void(int max_payload_size_bytes)); 41 MOCK_METHOD1(SetMaxPayloadSize, void(int max_payload_size_bytes));
47 }; 42 };
48 43
44 class MockAudioEncoder final : public MockAudioEncoderBase {
45 public:
46 // Note, we explicitly chose not to create a mock for the Encode method.
47 MOCK_METHOD3(EncodeInternal,
48 EncodedInfo(uint32_t timestamp,
49 rtc::ArrayView<const int16_t> audio,
50 rtc::Buffer* encoded));
51
52 class FakeEncoding {
53 public:
54 // Creates a functor that will return |info| and adjust the rtc::Buffer
55 // given as input to it, so it is info.encoded_bytes larger.
56 FakeEncoding(const AudioEncoder::EncodedInfo& info);
57
58 // Shorthand version of the constructor above, for when only setting
59 // encoded_bytes in the EncodedInfo object matters.
60 FakeEncoding(size_t encoded_bytes);
61
62 AudioEncoder::EncodedInfo operator()(uint32_t timestamp,
63 rtc::ArrayView<const int16_t> audio,
64 rtc::Buffer* encoded);
65
66 private:
67 AudioEncoder::EncodedInfo info_;
68 };
69
70 class CopyEncoding {
71 public:
72 // Creates a functor that will return |info| and append the data in the
73 // payload to the buffer given as input to it. Up to info.encoded_bytes are
74 // appended - make sure the payload is big enough! Since it uses an
75 // ArrayView, it _does not_ copy the payload. Make sure it doesn't fall out
76 // of scope!
77 CopyEncoding(AudioEncoder::EncodedInfo info,
78 rtc::ArrayView<const uint8_t> payload);
79
80 // Shorthand version of the constructor above, for when you wish to append
81 // the whole payload and do not care about any EncodedInfo attribute other
82 // than encoded_bytes.
83 CopyEncoding(rtc::ArrayView<const uint8_t> payload);
84
85 AudioEncoder::EncodedInfo operator()(uint32_t timestamp,
86 rtc::ArrayView<const int16_t> audio,
87 rtc::Buffer* encoded);
88 private:
89 AudioEncoder::EncodedInfo info_;
90 rtc::ArrayView<const uint8_t> payload_;
91 };
92
93 };
94
95 class MockAudioEncoderDeprecated final : public MockAudioEncoderBase {
96 public:
97 // Note, we explicitly chose not to create a mock for the Encode method.
98 MOCK_METHOD4(EncodeInternal,
99 EncodedInfo(uint32_t timestamp,
100 rtc::ArrayView<const int16_t> audio,
101 size_t max_encoded_bytes,
102 uint8_t* encoded));
103
104 // A functor like MockAudioEncoder::CopyEncoding above, but which has the
105 // deprecated Encode signature. Currently only used in one test and should be
106 // removed once that backwards compatibility is.
107 class CopyEncoding {
108 public:
109 CopyEncoding(AudioEncoder::EncodedInfo info,
110 rtc::ArrayView<const uint8_t> payload);
111
112 CopyEncoding(rtc::ArrayView<const uint8_t> payload);
113
114 AudioEncoder::EncodedInfo operator()(uint32_t timestamp,
115 rtc::ArrayView<const int16_t> audio,
116 size_t max_bytes_encoded,
117 uint8_t* encoded);
118 private:
119 AudioEncoder::EncodedInfo info_;
120 rtc::ArrayView<const uint8_t> payload_;
121 };
122 };
123
49 } // namespace webrtc 124 } // namespace webrtc
50 125
51 #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_MOCK_MOCK_AUDIO_ENCODER_H_ 126 #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_MOCK_MOCK_AUDIO_ENCODER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698