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

Side by Side Diff: media/filters/audio_clock_unittest.cc

Issue 518613002: Have AudioRendererImpl advance time until it's told to stop. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/base/audio_timestamp_helper.h" 5 #include "media/base/audio_timestamp_helper.h"
6 #include "media/base/buffers.h" 6 #include "media/base/buffers.h"
7 #include "media/filters/audio_clock.h" 7 #include "media/filters/audio_clock.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace media { 10 namespace media {
(...skipping 14 matching lines...) Expand all
25 } 25 }
26 26
27 int CurrentMediaTimestampInDays() { 27 int CurrentMediaTimestampInDays() {
28 return clock_.current_media_timestamp().InDays(); 28 return clock_.current_media_timestamp().InDays();
29 } 29 }
30 30
31 int CurrentMediaTimestampInMilliseconds() { 31 int CurrentMediaTimestampInMilliseconds() {
32 return clock_.current_media_timestamp().InMilliseconds(); 32 return clock_.current_media_timestamp().InMilliseconds();
33 } 33 }
34 34
35 int LatestMediaTimestampInMilliseconds() {
36 return clock_.latest_media_timestamp().InMilliseconds();
37 }
38
35 int CurrentMediaTimestampSinceLastWritingInMilliseconds(int milliseconds) { 39 int CurrentMediaTimestampSinceLastWritingInMilliseconds(int milliseconds) {
36 return clock_.CurrentMediaTimestampSinceWriting( 40 return clock_.CurrentMediaTimestampSinceWriting(
37 base::TimeDelta::FromMilliseconds(milliseconds)) 41 base::TimeDelta::FromMilliseconds(milliseconds))
38 .InMilliseconds(); 42 .InMilliseconds();
39 } 43 }
40 44
41 int ContiguousAudioDataBufferedInDays() { 45 int ContiguousAudioDataBufferedInDays() {
42 return clock_.contiguous_audio_data_buffered().InDays(); 46 return clock_.contiguous_audio_data_buffered().InDays();
43 } 47 }
44 48
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 81
78 TEST_F(AudioClockTest, ContiguousAudioDataBufferedStartsAtZero) { 82 TEST_F(AudioClockTest, ContiguousAudioDataBufferedStartsAtZero) {
79 EXPECT_EQ(base::TimeDelta(), clock_.contiguous_audio_data_buffered()); 83 EXPECT_EQ(base::TimeDelta(), clock_.contiguous_audio_data_buffered());
80 } 84 }
81 85
82 TEST_F(AudioClockTest, ContiguousAudioDataBufferedAtSameRateStartsAtZero) { 86 TEST_F(AudioClockTest, ContiguousAudioDataBufferedAtSameRateStartsAtZero) {
83 EXPECT_EQ(base::TimeDelta(), 87 EXPECT_EQ(base::TimeDelta(),
84 clock_.contiguous_audio_data_buffered_at_same_rate()); 88 clock_.contiguous_audio_data_buffered_at_same_rate());
85 } 89 }
86 90
87 TEST_F(AudioClockTest, AudioDataBufferedStartsAtFalse) {
88 EXPECT_FALSE(clock_.audio_data_buffered());
89 }
90
91 TEST_F(AudioClockTest, Playback) { 91 TEST_F(AudioClockTest, Playback) {
92 // The first time we write data we should still expect our start timestamp 92 // The first time we write data we should still expect our start timestamp
93 // due to delay. 93 // due to delay.
94 WroteAudio(10, 10, 20, 1.0); 94 WroteAudio(10, 10, 20, 1.0);
95 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); 95 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds());
96 EXPECT_EQ(1000, LatestMediaTimestampInMilliseconds());
96 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); 97 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds());
97 EXPECT_EQ(0, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 98 EXPECT_EQ(0, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
98 EXPECT_TRUE(clock_.audio_data_buffered());
99 99
100 // The media time should remain at start timestamp as we write data. 100 // The media time should remain at start timestamp as we write data.
101 WroteAudio(10, 10, 20, 1.0); 101 WroteAudio(10, 10, 20, 1.0);
102 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); 102 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds());
103 EXPECT_EQ(2000, LatestMediaTimestampInMilliseconds());
103 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); 104 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds());
104 EXPECT_EQ(0, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 105 EXPECT_EQ(0, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
105 106
106 WroteAudio(10, 10, 20, 1.0); 107 WroteAudio(10, 10, 20, 1.0);
107 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); 108 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds());
109 EXPECT_EQ(3000, LatestMediaTimestampInMilliseconds());
108 EXPECT_EQ(3000, ContiguousAudioDataBufferedInMilliseconds()); 110 EXPECT_EQ(3000, ContiguousAudioDataBufferedInMilliseconds());
109 EXPECT_EQ(3000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 111 EXPECT_EQ(3000, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
110 112
111 // The media time should now start advanced now that delay has been covered. 113 // The media time should now start advanced now that delay has been covered.
112 WroteAudio(10, 10, 20, 1.0); 114 WroteAudio(10, 10, 20, 1.0);
113 EXPECT_EQ(1000, CurrentMediaTimestampInMilliseconds()); 115 EXPECT_EQ(1000, CurrentMediaTimestampInMilliseconds());
116 EXPECT_EQ(4000, LatestMediaTimestampInMilliseconds());
114 EXPECT_EQ(3000, ContiguousAudioDataBufferedInMilliseconds()); 117 EXPECT_EQ(3000, ContiguousAudioDataBufferedInMilliseconds());
115 EXPECT_EQ(3000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 118 EXPECT_EQ(3000, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
116 119
117 WroteAudio(10, 10, 20, 1.0); 120 WroteAudio(10, 10, 20, 1.0);
118 EXPECT_EQ(2000, CurrentMediaTimestampInMilliseconds()); 121 EXPECT_EQ(2000, CurrentMediaTimestampInMilliseconds());
122 EXPECT_EQ(5000, LatestMediaTimestampInMilliseconds());
119 EXPECT_EQ(3000, ContiguousAudioDataBufferedInMilliseconds()); 123 EXPECT_EQ(3000, ContiguousAudioDataBufferedInMilliseconds());
120 EXPECT_EQ(3000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 124 EXPECT_EQ(3000, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
121 125
122 // Introduce a rate change to slow down time: 126 // Introduce a rate change to slow down time:
123 // - Current time will advance by one second until it hits rate change 127 // - Current time will advance by one second until it hits rate change
124 // - Contiguous audio data will start shrinking immediately 128 // - Contiguous audio data will start shrinking immediately
125 WroteAudio(10, 10, 20, 0.5); 129 WroteAudio(10, 10, 20, 0.5);
126 EXPECT_EQ(3000, CurrentMediaTimestampInMilliseconds()); 130 EXPECT_EQ(3000, CurrentMediaTimestampInMilliseconds());
131 EXPECT_EQ(5500, LatestMediaTimestampInMilliseconds());
127 EXPECT_EQ(2500, ContiguousAudioDataBufferedInMilliseconds()); 132 EXPECT_EQ(2500, ContiguousAudioDataBufferedInMilliseconds());
128 EXPECT_EQ(2000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 133 EXPECT_EQ(2000, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
129 134
130 WroteAudio(10, 10, 20, 0.5); 135 WroteAudio(10, 10, 20, 0.5);
131 EXPECT_EQ(4000, CurrentMediaTimestampInMilliseconds()); 136 EXPECT_EQ(4000, CurrentMediaTimestampInMilliseconds());
137 EXPECT_EQ(6000, LatestMediaTimestampInMilliseconds());
132 EXPECT_EQ(2000, ContiguousAudioDataBufferedInMilliseconds()); 138 EXPECT_EQ(2000, ContiguousAudioDataBufferedInMilliseconds());
133 EXPECT_EQ(1000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 139 EXPECT_EQ(1000, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
134 140
135 WroteAudio(10, 10, 20, 0.5); 141 WroteAudio(10, 10, 20, 0.5);
136 EXPECT_EQ(5000, CurrentMediaTimestampInMilliseconds()); 142 EXPECT_EQ(5000, CurrentMediaTimestampInMilliseconds());
143 EXPECT_EQ(6500, LatestMediaTimestampInMilliseconds());
137 EXPECT_EQ(1500, ContiguousAudioDataBufferedInMilliseconds()); 144 EXPECT_EQ(1500, ContiguousAudioDataBufferedInMilliseconds());
138 EXPECT_EQ(1500, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 145 EXPECT_EQ(1500, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
139 146
140 WroteAudio(10, 10, 20, 0.5); 147 WroteAudio(10, 10, 20, 0.5);
141 EXPECT_EQ(5500, CurrentMediaTimestampInMilliseconds()); 148 EXPECT_EQ(5500, CurrentMediaTimestampInMilliseconds());
149 EXPECT_EQ(7000, LatestMediaTimestampInMilliseconds());
142 EXPECT_EQ(1500, ContiguousAudioDataBufferedInMilliseconds()); 150 EXPECT_EQ(1500, ContiguousAudioDataBufferedInMilliseconds());
143 EXPECT_EQ(1500, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 151 EXPECT_EQ(1500, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
144 152
145 // Introduce a rate change to speed up time: 153 // Introduce a rate change to speed up time:
146 // - Current time will advance by half a second until it hits rate change 154 // - Current time will advance by half a second until it hits rate change
147 // - Contiguous audio data will start growing immediately 155 // - Contiguous audio data will start growing immediately
148 WroteAudio(10, 10, 20, 2); 156 WroteAudio(10, 10, 20, 2);
149 EXPECT_EQ(6000, CurrentMediaTimestampInMilliseconds()); 157 EXPECT_EQ(6000, CurrentMediaTimestampInMilliseconds());
158 EXPECT_EQ(9000, LatestMediaTimestampInMilliseconds());
150 EXPECT_EQ(3000, ContiguousAudioDataBufferedInMilliseconds()); 159 EXPECT_EQ(3000, ContiguousAudioDataBufferedInMilliseconds());
151 EXPECT_EQ(1000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 160 EXPECT_EQ(1000, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
152 161
153 WroteAudio(10, 10, 20, 2); 162 WroteAudio(10, 10, 20, 2);
154 EXPECT_EQ(6500, CurrentMediaTimestampInMilliseconds()); 163 EXPECT_EQ(6500, CurrentMediaTimestampInMilliseconds());
164 EXPECT_EQ(11000, LatestMediaTimestampInMilliseconds());
155 EXPECT_EQ(4500, ContiguousAudioDataBufferedInMilliseconds()); 165 EXPECT_EQ(4500, ContiguousAudioDataBufferedInMilliseconds());
156 EXPECT_EQ(500, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 166 EXPECT_EQ(500, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
157 167
158 WroteAudio(10, 10, 20, 2); 168 WroteAudio(10, 10, 20, 2);
159 EXPECT_EQ(7000, CurrentMediaTimestampInMilliseconds()); 169 EXPECT_EQ(7000, CurrentMediaTimestampInMilliseconds());
170 EXPECT_EQ(13000, LatestMediaTimestampInMilliseconds());
160 EXPECT_EQ(6000, ContiguousAudioDataBufferedInMilliseconds()); 171 EXPECT_EQ(6000, ContiguousAudioDataBufferedInMilliseconds());
161 EXPECT_EQ(6000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 172 EXPECT_EQ(6000, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
162 173
163 WroteAudio(10, 10, 20, 2); 174 WroteAudio(10, 10, 20, 2);
164 EXPECT_EQ(9000, CurrentMediaTimestampInMilliseconds()); 175 EXPECT_EQ(9000, CurrentMediaTimestampInMilliseconds());
176 EXPECT_EQ(15000, LatestMediaTimestampInMilliseconds());
165 EXPECT_EQ(6000, ContiguousAudioDataBufferedInMilliseconds()); 177 EXPECT_EQ(6000, ContiguousAudioDataBufferedInMilliseconds());
166 EXPECT_EQ(6000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 178 EXPECT_EQ(6000, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
167 179
168 // Write silence to simulate reaching end of stream: 180 // Write silence to simulate reaching end of stream:
169 // - Current time will advance by half a second until it hits silence 181 // - Current time will advance by half a second until it hits silence
170 // - Contiguous audio data will start shrinking towards zero 182 // - Contiguous audio data will start shrinking towards zero
171 WroteAudio(0, 10, 20, 2); 183 WroteAudio(0, 10, 20, 2);
172 EXPECT_EQ(11000, CurrentMediaTimestampInMilliseconds()); 184 EXPECT_EQ(11000, CurrentMediaTimestampInMilliseconds());
185 EXPECT_EQ(15000, LatestMediaTimestampInMilliseconds());
173 EXPECT_EQ(4000, ContiguousAudioDataBufferedInMilliseconds()); 186 EXPECT_EQ(4000, ContiguousAudioDataBufferedInMilliseconds());
174 EXPECT_EQ(4000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 187 EXPECT_EQ(4000, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
175 188
176 WroteAudio(0, 10, 20, 2); 189 WroteAudio(0, 10, 20, 2);
177 EXPECT_EQ(13000, CurrentMediaTimestampInMilliseconds()); 190 EXPECT_EQ(13000, CurrentMediaTimestampInMilliseconds());
191 EXPECT_EQ(15000, LatestMediaTimestampInMilliseconds());
178 EXPECT_EQ(2000, ContiguousAudioDataBufferedInMilliseconds()); 192 EXPECT_EQ(2000, ContiguousAudioDataBufferedInMilliseconds());
179 EXPECT_EQ(2000, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 193 EXPECT_EQ(2000, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
180 EXPECT_TRUE(clock_.audio_data_buffered()); // Still audio data buffered.
181 194
182 WroteAudio(0, 10, 20, 2); 195 WroteAudio(0, 10, 20, 2);
183 EXPECT_EQ(15000, CurrentMediaTimestampInMilliseconds()); 196 EXPECT_EQ(15000, CurrentMediaTimestampInMilliseconds());
197 EXPECT_EQ(15000, LatestMediaTimestampInMilliseconds());
184 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); 198 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds());
185 EXPECT_EQ(0, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 199 EXPECT_EQ(0, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
186 EXPECT_FALSE(clock_.audio_data_buffered()); // No more audio data buffered.
187 200
188 // At this point media time should stop increasing. 201 // At this point media time should stop increasing.
189 WroteAudio(0, 10, 20, 2); 202 WroteAudio(0, 10, 20, 2);
190 EXPECT_EQ(15000, CurrentMediaTimestampInMilliseconds()); 203 EXPECT_EQ(15000, CurrentMediaTimestampInMilliseconds());
204 EXPECT_EQ(15000, LatestMediaTimestampInMilliseconds());
191 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); 205 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds());
192 EXPECT_EQ(0, ContiguousAudioDataBufferedAtSameRateInMilliseconds()); 206 EXPECT_EQ(0, ContiguousAudioDataBufferedAtSameRateInMilliseconds());
193 EXPECT_FALSE(clock_.audio_data_buffered());
194 } 207 }
195 208
196 TEST_F(AudioClockTest, AlternatingAudioAndSilence) { 209 TEST_F(AudioClockTest, AlternatingAudioAndSilence) {
197 // Buffer #1: [0, 1000) 210 // Buffer #1: [0, 1000)
198 WroteAudio(10, 10, 20, 1.0); 211 WroteAudio(10, 10, 20, 1.0);
199 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); 212 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds());
213 EXPECT_EQ(1000, LatestMediaTimestampInMilliseconds());
200 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); 214 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds());
201 215
202 // Buffer #2: 1000ms of silence 216 // Buffer #2: 1000ms of silence
203 WroteAudio(0, 10, 20, 1.0); 217 WroteAudio(0, 10, 20, 1.0);
204 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); 218 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds());
219 EXPECT_EQ(1000, LatestMediaTimestampInMilliseconds());
205 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); 220 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds());
206 221
207 // Buffer #3: [1000, 2000): 222 // Buffer #3: [1000, 2000):
208 // - Buffer #1 is at front with 1000ms of contiguous audio data 223 // - Buffer #1 is at front with 1000ms of contiguous audio data
209 WroteAudio(10, 10, 20, 1.0); 224 WroteAudio(10, 10, 20, 1.0);
210 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); 225 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds());
226 EXPECT_EQ(2000, LatestMediaTimestampInMilliseconds());
211 EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds()); 227 EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds());
212 228
213 // Buffer #4: 1000ms of silence 229 // Buffer #4: 1000ms of silence
214 // - Buffer #1 has been played out 230 // - Buffer #1 has been played out
215 // - Buffer #2 of silence leaves us with 0ms of contiguous audio data 231 // - Buffer #2 of silence leaves us with 0ms of contiguous audio data
216 WroteAudio(0, 10, 20, 1.0); 232 WroteAudio(0, 10, 20, 1.0);
217 EXPECT_EQ(1000, CurrentMediaTimestampInMilliseconds()); 233 EXPECT_EQ(1000, CurrentMediaTimestampInMilliseconds());
234 EXPECT_EQ(2000, LatestMediaTimestampInMilliseconds());
218 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); 235 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds());
219 236
220 // Buffer #5: [2000, 3000): 237 // Buffer #5: [2000, 3000):
221 // - Buffer #3 is at front with 1000ms of contiguous audio data 238 // - Buffer #3 is at front with 1000ms of contiguous audio data
222 WroteAudio(10, 10, 20, 1.0); 239 WroteAudio(10, 10, 20, 1.0);
223 EXPECT_EQ(1000, CurrentMediaTimestampInMilliseconds()); 240 EXPECT_EQ(1000, CurrentMediaTimestampInMilliseconds());
241 EXPECT_EQ(3000, LatestMediaTimestampInMilliseconds());
224 EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds()); 242 EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds());
225 } 243 }
226 244
227 TEST_F(AudioClockTest, ZeroDelay) { 245 TEST_F(AudioClockTest, ZeroDelay) {
228 // The first time we write data we should expect the first timestamp 246 // The first time we write data we should expect the first timestamp
229 // immediately. 247 // immediately.
230 WroteAudio(10, 10, 0, 1.0); 248 WroteAudio(10, 10, 0, 1.0);
231 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds()); 249 EXPECT_EQ(0, CurrentMediaTimestampInMilliseconds());
250 EXPECT_EQ(1000, LatestMediaTimestampInMilliseconds());
232 EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds()); 251 EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds());
233 252
234 // Ditto for all subsequent buffers. 253 // Ditto for all subsequent buffers.
235 WroteAudio(10, 10, 0, 1.0); 254 WroteAudio(10, 10, 0, 1.0);
236 EXPECT_EQ(1000, CurrentMediaTimestampInMilliseconds()); 255 EXPECT_EQ(1000, CurrentMediaTimestampInMilliseconds());
256 EXPECT_EQ(2000, LatestMediaTimestampInMilliseconds());
237 EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds()); 257 EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds());
238 258
239 WroteAudio(10, 10, 0, 1.0); 259 WroteAudio(10, 10, 0, 1.0);
240 EXPECT_EQ(2000, CurrentMediaTimestampInMilliseconds()); 260 EXPECT_EQ(2000, CurrentMediaTimestampInMilliseconds());
261 EXPECT_EQ(3000, LatestMediaTimestampInMilliseconds());
241 EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds()); 262 EXPECT_EQ(1000, ContiguousAudioDataBufferedInMilliseconds());
242 263
243 // Ditto for silence. 264 // Ditto for silence.
244 WroteAudio(0, 10, 0, 1.0); 265 WroteAudio(0, 10, 0, 1.0);
245 EXPECT_EQ(3000, CurrentMediaTimestampInMilliseconds()); 266 EXPECT_EQ(3000, CurrentMediaTimestampInMilliseconds());
267 EXPECT_EQ(3000, LatestMediaTimestampInMilliseconds());
246 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); 268 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds());
247 269
248 WroteAudio(0, 10, 0, 1.0); 270 WroteAudio(0, 10, 0, 1.0);
249 EXPECT_EQ(3000, CurrentMediaTimestampInMilliseconds()); 271 EXPECT_EQ(3000, CurrentMediaTimestampInMilliseconds());
272 EXPECT_EQ(3000, LatestMediaTimestampInMilliseconds());
250 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds()); 273 EXPECT_EQ(0, ContiguousAudioDataBufferedInMilliseconds());
251 } 274 }
252 275
253 TEST_F(AudioClockTest, CurrentMediaTimestampSinceLastWriting) { 276 TEST_F(AudioClockTest, CurrentMediaTimestampSinceLastWriting) {
254 // Construct an audio clock with the following representation: 277 // Construct an audio clock with the following representation:
255 // 278 //
256 // +-------------------+----------------+------------------+----------------+ 279 // +-------------------+----------------+------------------+----------------+
257 // | 10 frames silence | 10 frames @ 1x | 10 frames @ 0.5x | 10 frames @ 2x | 280 // | 10 frames silence | 10 frames @ 1x | 10 frames @ 0.5x | 10 frames @ 2x |
258 // +-------------------+----------------+------------------+----------------+ 281 // +-------------------+----------------+------------------+----------------+
259 // Media timestamp: 0 1000 1500 3500 282 // Media timestamp: 0 1000 1500 3500
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 EXPECT_EQ(huge.InDays(), ContiguousAudioDataBufferedInDays()); 337 EXPECT_EQ(huge.InDays(), ContiguousAudioDataBufferedInDays());
315 338
316 // Use huge delay to test calculation of buffered data. 339 // Use huge delay to test calculation of buffered data.
317 WroteAudio( 340 WroteAudio(
318 huge_amount_of_frames, huge_amount_of_frames, huge_amount_of_frames, 1.0); 341 huge_amount_of_frames, huge_amount_of_frames, huge_amount_of_frames, 1.0);
319 EXPECT_EQ((huge * 3).InDays(), CurrentMediaTimestampInDays()); 342 EXPECT_EQ((huge * 3).InDays(), CurrentMediaTimestampInDays());
320 EXPECT_EQ((huge * 2).InDays(), ContiguousAudioDataBufferedInDays()); 343 EXPECT_EQ((huge * 2).InDays(), ContiguousAudioDataBufferedInDays());
321 } 344 }
322 345
323 } // namespace media 346 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698