OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
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 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 int DeletePacketsAndReturnOk(PacketList* packet_list) { | 50 int DeletePacketsAndReturnOk(PacketList* packet_list) { |
51 PacketBuffer::DeleteAllPackets(packet_list); | 51 PacketBuffer::DeleteAllPackets(packet_list); |
52 return PacketBuffer::kOK; | 52 return PacketBuffer::kOK; |
53 } | 53 } |
54 | 54 |
55 class NetEqImplTest : public ::testing::Test { | 55 class NetEqImplTest : public ::testing::Test { |
56 protected: | 56 protected: |
57 NetEqImplTest() | 57 NetEqImplTest() |
58 : neteq_(NULL), | 58 : neteq_(NULL), |
59 config_(), | 59 config_(), |
| 60 tick_timer_(new TickTimer), |
60 mock_buffer_level_filter_(NULL), | 61 mock_buffer_level_filter_(NULL), |
61 buffer_level_filter_(NULL), | 62 buffer_level_filter_(NULL), |
62 use_mock_buffer_level_filter_(true), | 63 use_mock_buffer_level_filter_(true), |
63 mock_decoder_database_(NULL), | 64 mock_decoder_database_(NULL), |
64 decoder_database_(NULL), | 65 decoder_database_(NULL), |
65 use_mock_decoder_database_(true), | 66 use_mock_decoder_database_(true), |
66 mock_delay_peak_detector_(NULL), | 67 mock_delay_peak_detector_(NULL), |
67 delay_peak_detector_(NULL), | 68 delay_peak_detector_(NULL), |
68 use_mock_delay_peak_detector_(true), | 69 use_mock_delay_peak_detector_(true), |
69 mock_delay_manager_(NULL), | 70 mock_delay_manager_(NULL), |
(...skipping 24 matching lines...) Expand all Loading... |
94 } | 95 } |
95 if (use_mock_decoder_database_) { | 96 if (use_mock_decoder_database_) { |
96 mock_decoder_database_ = new MockDecoderDatabase; | 97 mock_decoder_database_ = new MockDecoderDatabase; |
97 EXPECT_CALL(*mock_decoder_database_, GetActiveCngDecoder()) | 98 EXPECT_CALL(*mock_decoder_database_, GetActiveCngDecoder()) |
98 .WillOnce(ReturnNull()); | 99 .WillOnce(ReturnNull()); |
99 decoder_database_ = mock_decoder_database_; | 100 decoder_database_ = mock_decoder_database_; |
100 } else { | 101 } else { |
101 decoder_database_ = new DecoderDatabase; | 102 decoder_database_ = new DecoderDatabase; |
102 } | 103 } |
103 if (use_mock_delay_peak_detector_) { | 104 if (use_mock_delay_peak_detector_) { |
104 mock_delay_peak_detector_ = new MockDelayPeakDetector; | 105 mock_delay_peak_detector_ = new MockDelayPeakDetector(*tick_timer_); |
105 EXPECT_CALL(*mock_delay_peak_detector_, Reset()).Times(1); | 106 EXPECT_CALL(*mock_delay_peak_detector_, Reset()).Times(1); |
106 delay_peak_detector_ = mock_delay_peak_detector_; | 107 delay_peak_detector_ = mock_delay_peak_detector_; |
107 } else { | 108 } else { |
108 delay_peak_detector_ = new DelayPeakDetector; | 109 delay_peak_detector_ = new DelayPeakDetector(*tick_timer_); |
109 } | 110 } |
110 if (use_mock_delay_manager_) { | 111 if (use_mock_delay_manager_) { |
111 mock_delay_manager_ = new MockDelayManager(config_.max_packets_in_buffer, | 112 mock_delay_manager_ = new MockDelayManager( |
112 delay_peak_detector_); | 113 config_.max_packets_in_buffer, delay_peak_detector_, *tick_timer_); |
113 EXPECT_CALL(*mock_delay_manager_, set_streaming_mode(false)).Times(1); | 114 EXPECT_CALL(*mock_delay_manager_, set_streaming_mode(false)).Times(1); |
114 delay_manager_ = mock_delay_manager_; | 115 delay_manager_ = mock_delay_manager_; |
115 } else { | 116 } else { |
116 delay_manager_ = | 117 delay_manager_ = new DelayManager(config_.max_packets_in_buffer, |
117 new DelayManager(config_.max_packets_in_buffer, delay_peak_detector_); | 118 delay_peak_detector_, *tick_timer_); |
118 } | 119 } |
119 if (use_mock_dtmf_buffer_) { | 120 if (use_mock_dtmf_buffer_) { |
120 mock_dtmf_buffer_ = new MockDtmfBuffer(config_.sample_rate_hz); | 121 mock_dtmf_buffer_ = new MockDtmfBuffer(config_.sample_rate_hz); |
121 dtmf_buffer_ = mock_dtmf_buffer_; | 122 dtmf_buffer_ = mock_dtmf_buffer_; |
122 } else { | 123 } else { |
123 dtmf_buffer_ = new DtmfBuffer(config_.sample_rate_hz); | 124 dtmf_buffer_ = new DtmfBuffer(config_.sample_rate_hz); |
124 } | 125 } |
125 if (use_mock_dtmf_tone_generator_) { | 126 if (use_mock_dtmf_tone_generator_) { |
126 mock_dtmf_tone_generator_ = new MockDtmfToneGenerator; | 127 mock_dtmf_tone_generator_ = new MockDtmfToneGenerator; |
127 dtmf_tone_generator_ = mock_dtmf_tone_generator_; | 128 dtmf_tone_generator_ = mock_dtmf_tone_generator_; |
128 } else { | 129 } else { |
129 dtmf_tone_generator_ = new DtmfToneGenerator; | 130 dtmf_tone_generator_ = new DtmfToneGenerator; |
130 } | 131 } |
131 if (use_mock_packet_buffer_) { | 132 if (use_mock_packet_buffer_) { |
132 mock_packet_buffer_ = new MockPacketBuffer(config_.max_packets_in_buffer); | 133 mock_packet_buffer_ = |
| 134 new MockPacketBuffer(config_.max_packets_in_buffer, *tick_timer_); |
133 packet_buffer_ = mock_packet_buffer_; | 135 packet_buffer_ = mock_packet_buffer_; |
134 } else { | 136 } else { |
135 packet_buffer_ = new PacketBuffer(config_.max_packets_in_buffer); | 137 packet_buffer_ = |
| 138 new PacketBuffer(config_.max_packets_in_buffer, *tick_timer_); |
136 } | 139 } |
137 if (use_mock_payload_splitter_) { | 140 if (use_mock_payload_splitter_) { |
138 mock_payload_splitter_ = new MockPayloadSplitter; | 141 mock_payload_splitter_ = new MockPayloadSplitter; |
139 payload_splitter_ = mock_payload_splitter_; | 142 payload_splitter_ = mock_payload_splitter_; |
140 } else { | 143 } else { |
141 payload_splitter_ = new PayloadSplitter; | 144 payload_splitter_ = new PayloadSplitter; |
142 } | 145 } |
143 timestamp_scaler_ = new TimestampScaler(*decoder_database_); | 146 timestamp_scaler_ = new TimestampScaler(*decoder_database_); |
144 AccelerateFactory* accelerate_factory = new AccelerateFactory; | 147 AccelerateFactory* accelerate_factory = new AccelerateFactory; |
145 ExpandFactory* expand_factory = new ExpandFactory; | 148 ExpandFactory* expand_factory = new ExpandFactory; |
146 PreemptiveExpandFactory* preemptive_expand_factory = | 149 PreemptiveExpandFactory* preemptive_expand_factory = |
147 new PreemptiveExpandFactory; | 150 new PreemptiveExpandFactory; |
148 | 151 |
149 neteq_ = new NetEqImpl(config_, | 152 neteq_ = |
150 buffer_level_filter_, | 153 new NetEqImpl(config_, std::move(tick_timer_), buffer_level_filter_, |
151 decoder_database_, | 154 decoder_database_, delay_manager_, delay_peak_detector_, |
152 delay_manager_, | 155 dtmf_buffer_, dtmf_tone_generator_, packet_buffer_, |
153 delay_peak_detector_, | 156 payload_splitter_, timestamp_scaler_, accelerate_factory, |
154 dtmf_buffer_, | 157 expand_factory, preemptive_expand_factory); |
155 dtmf_tone_generator_, | |
156 packet_buffer_, | |
157 payload_splitter_, | |
158 timestamp_scaler_, | |
159 accelerate_factory, | |
160 expand_factory, | |
161 preemptive_expand_factory); | |
162 ASSERT_TRUE(neteq_ != NULL); | 158 ASSERT_TRUE(neteq_ != NULL); |
163 } | 159 } |
164 | 160 |
165 void UseNoMocks() { | 161 void UseNoMocks() { |
166 ASSERT_TRUE(neteq_ == NULL) << "Must call UseNoMocks before CreateInstance"; | 162 ASSERT_TRUE(neteq_ == NULL) << "Must call UseNoMocks before CreateInstance"; |
167 use_mock_buffer_level_filter_ = false; | 163 use_mock_buffer_level_filter_ = false; |
168 use_mock_decoder_database_ = false; | 164 use_mock_decoder_database_ = false; |
169 use_mock_delay_peak_detector_ = false; | 165 use_mock_delay_peak_detector_ = false; |
170 use_mock_delay_manager_ = false; | 166 use_mock_delay_manager_ = false; |
171 use_mock_dtmf_buffer_ = false; | 167 use_mock_dtmf_buffer_ = false; |
(...skipping 22 matching lines...) Expand all Loading... |
194 EXPECT_CALL(*mock_dtmf_tone_generator_, Die()).Times(1); | 190 EXPECT_CALL(*mock_dtmf_tone_generator_, Die()).Times(1); |
195 } | 191 } |
196 if (use_mock_packet_buffer_) { | 192 if (use_mock_packet_buffer_) { |
197 EXPECT_CALL(*mock_packet_buffer_, Die()).Times(1); | 193 EXPECT_CALL(*mock_packet_buffer_, Die()).Times(1); |
198 } | 194 } |
199 delete neteq_; | 195 delete neteq_; |
200 } | 196 } |
201 | 197 |
202 NetEqImpl* neteq_; | 198 NetEqImpl* neteq_; |
203 NetEq::Config config_; | 199 NetEq::Config config_; |
| 200 std::unique_ptr<TickTimer> tick_timer_; |
204 MockBufferLevelFilter* mock_buffer_level_filter_; | 201 MockBufferLevelFilter* mock_buffer_level_filter_; |
205 BufferLevelFilter* buffer_level_filter_; | 202 BufferLevelFilter* buffer_level_filter_; |
206 bool use_mock_buffer_level_filter_; | 203 bool use_mock_buffer_level_filter_; |
207 MockDecoderDatabase* mock_decoder_database_; | 204 MockDecoderDatabase* mock_decoder_database_; |
208 DecoderDatabase* decoder_database_; | 205 DecoderDatabase* decoder_database_; |
209 bool use_mock_decoder_database_; | 206 bool use_mock_decoder_database_; |
210 MockDelayPeakDetector* mock_delay_peak_detector_; | 207 MockDelayPeakDetector* mock_delay_peak_detector_; |
211 DelayPeakDetector* delay_peak_detector_; | 208 DelayPeakDetector* delay_peak_detector_; |
212 bool use_mock_delay_peak_detector_; | 209 bool use_mock_delay_peak_detector_; |
213 MockDelayManager* mock_delay_manager_; | 210 MockDelayManager* mock_delay_manager_; |
(...skipping 978 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1192 // Tests that the return value from last_output_sample_rate_hz() is equal to the | 1189 // Tests that the return value from last_output_sample_rate_hz() is equal to the |
1193 // configured inital sample rate. | 1190 // configured inital sample rate. |
1194 TEST_F(NetEqImplTest, InitialLastOutputSampleRate) { | 1191 TEST_F(NetEqImplTest, InitialLastOutputSampleRate) { |
1195 UseNoMocks(); | 1192 UseNoMocks(); |
1196 config_.sample_rate_hz = 48000; | 1193 config_.sample_rate_hz = 48000; |
1197 CreateInstance(); | 1194 CreateInstance(); |
1198 EXPECT_EQ(48000, neteq_->last_output_sample_rate_hz()); | 1195 EXPECT_EQ(48000, neteq_->last_output_sample_rate_hz()); |
1199 } | 1196 } |
1200 | 1197 |
1201 }// namespace webrtc | 1198 }// namespace webrtc |
OLD | NEW |