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

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

Issue 2799033006: Injectable audio encoders: Moved audio encoder, factory and builtin factory to api/. (Closed)
Patch Set: More backwards-compatibility! Created 3 years, 7 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
(Empty)
1 /*
2 * Copyright (c) 2014 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
11 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_MOCK_MOCK_AUDIO_ENCODER_H_
12 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_MOCK_MOCK_AUDIO_ENCODER_H_
13
14 #include <string>
15
16 #include "webrtc/base/array_view.h"
17 #include "webrtc/modules/audio_coding/codecs/audio_encoder.h"
18 #include "webrtc/test/gmock.h"
19
20 namespace webrtc {
21
22 class MockAudioEncoder : public AudioEncoder {
23 public:
24 // TODO(nisse): Valid overrides commented out, because the gmock
25 // methods don't use any override declarations, and we want to avoid
26 // warnings from -Winconsistent-missing-override. See
27 // http://crbug.com/428099.
28 ~MockAudioEncoder() /* override */ { Die(); }
29 MOCK_METHOD0(Die, void());
30 MOCK_METHOD1(Mark, void(std::string desc));
31 MOCK_CONST_METHOD0(SampleRateHz, int());
32 MOCK_CONST_METHOD0(NumChannels, size_t());
33 MOCK_CONST_METHOD0(RtpTimestampRateHz, int());
34 MOCK_CONST_METHOD0(Num10MsFramesInNextPacket, size_t());
35 MOCK_CONST_METHOD0(Max10MsFramesInAPacket, size_t());
36 MOCK_CONST_METHOD0(GetTargetBitrate, int());
37 MOCK_METHOD0(Reset, void());
38 MOCK_METHOD1(SetFec, bool(bool enable));
39 MOCK_METHOD1(SetDtx, bool(bool enable));
40 MOCK_METHOD1(SetApplication, bool(Application application));
41 MOCK_METHOD1(SetMaxPlaybackRate, void(int frequency_hz));
42 MOCK_METHOD1(SetMaxBitrate, void(int max_bps));
43 MOCK_METHOD1(SetMaxPayloadSize, void(int max_payload_size_bytes));
44 MOCK_METHOD2(OnReceivedUplinkBandwidth,
45 void(int target_audio_bitrate_bps,
46 rtc::Optional<int64_t> probing_interval_ms));
47 MOCK_METHOD1(OnReceivedUplinkPacketLossFraction,
48 void(float uplink_packet_loss_fraction));
49
50 MOCK_METHOD2(EnableAudioNetworkAdaptor,
51 bool(const std::string& config_string,
52 RtcEventLog* event_log));
53
54 // Note, we explicitly chose not to create a mock for the Encode method.
55 MOCK_METHOD3(EncodeImpl,
56 EncodedInfo(uint32_t timestamp,
57 rtc::ArrayView<const int16_t> audio,
58 rtc::Buffer* encoded));
59
60 class FakeEncoding {
61 public:
62 // Creates a functor that will return |info| and adjust the rtc::Buffer
63 // given as input to it, so it is info.encoded_bytes larger.
64 explicit FakeEncoding(const AudioEncoder::EncodedInfo& info);
65
66 // Shorthand version of the constructor above, for when only setting
67 // encoded_bytes in the EncodedInfo object matters.
68 explicit FakeEncoding(size_t encoded_bytes);
69
70 AudioEncoder::EncodedInfo operator()(uint32_t timestamp,
71 rtc::ArrayView<const int16_t> audio,
72 rtc::Buffer* encoded);
73
74 private:
75 AudioEncoder::EncodedInfo info_;
76 };
77
78 class CopyEncoding {
79 public:
80 // Creates a functor that will return |info| and append the data in the
81 // payload to the buffer given as input to it. Up to info.encoded_bytes are
82 // appended - make sure the payload is big enough! Since it uses an
83 // ArrayView, it _does not_ copy the payload. Make sure it doesn't fall out
84 // of scope!
85 CopyEncoding(AudioEncoder::EncodedInfo info,
86 rtc::ArrayView<const uint8_t> payload);
87
88 // Shorthand version of the constructor above, for when you wish to append
89 // the whole payload and do not care about any EncodedInfo attribute other
90 // than encoded_bytes.
91 explicit CopyEncoding(rtc::ArrayView<const uint8_t> payload);
92
93 AudioEncoder::EncodedInfo operator()(uint32_t timestamp,
94 rtc::ArrayView<const int16_t> audio,
95 rtc::Buffer* encoded);
96
97 private:
98 AudioEncoder::EncodedInfo info_;
99 rtc::ArrayView<const uint8_t> payload_;
100 };
101 };
102
103 } // namespace webrtc
104
105 #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_MOCK_MOCK_AUDIO_ENCODER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698