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

Side by Side Diff: media/cast/logging/encoding_event_subscriber_unittest.cc

Issue 241833002: Cast: Limit number of events/packets in EncodingEventSubscriber protos. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 8 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 "base/memory/ref_counted.h" 5 #include "base/memory/ref_counted.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/test/simple_test_tick_clock.h" 7 #include "base/test/simple_test_tick_clock.h"
8 #include "base/time/tick_clock.h" 8 #include "base/time/tick_clock.h"
9 #include "media/cast/cast_environment.h" 9 #include "media/cast/cast_environment.h"
10 #include "media/cast/logging/encoding_event_subscriber.h" 10 #include "media/cast/logging/encoding_event_subscriber.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 void GetEventsAndReset() { 57 void GetEventsAndReset() {
58 event_subscriber_->GetEventsAndReset( 58 event_subscriber_->GetEventsAndReset(
59 &metadata_, &frame_events_, &packet_events_); 59 &metadata_, &frame_events_, &packet_events_);
60 first_rtp_timestamp_ = metadata_.first_rtp_timestamp(); 60 first_rtp_timestamp_ = metadata_.first_rtp_timestamp();
61 } 61 }
62 62
63 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. 63 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment.
64 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; 64 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_;
65 scoped_refptr<CastEnvironment> cast_environment_; 65 scoped_refptr<CastEnvironment> cast_environment_;
66 scoped_ptr<EncodingEventSubscriber> event_subscriber_; 66 scoped_ptr<EncodingEventSubscriber> event_subscriber_;
67 FrameEventMap frame_events_; 67 FrameEventList frame_events_;
68 PacketEventMap packet_events_; 68 PacketEventList packet_events_;
69 LogMetadata metadata_; 69 LogMetadata metadata_;
70 RtpTimestamp first_rtp_timestamp_; 70 RtpTimestamp first_rtp_timestamp_;
71 }; 71 };
72 72
73 TEST_F(EncodingEventSubscriberTest, FrameEventTruncating) { 73 TEST_F(EncodingEventSubscriberTest, FrameEventTruncating) {
74 Init(VIDEO_EVENT); 74 Init(VIDEO_EVENT);
75 75
76 base::TimeTicks now(testing_clock_->NowTicks()); 76 base::TimeTicks now(testing_clock_->NowTicks());
77 77
78 // Entry with RTP timestamp 0 should get dropped. 78 // Entry with RTP timestamp 0 should get dropped.
79 for (int i = 0; i < 11; i++) { 79 for (int i = 0; i < 11; i++) {
80 cast_environment_->Logging()->InsertFrameEvent(now, 80 cast_environment_->Logging()->InsertFrameEvent(now,
81 kVideoFrameCaptured, 81 kVideoFrameCaptured,
82 i * 100, 82 i * 100,
83 /*frame_id*/ 0); 83 /*frame_id*/ 0);
84 cast_environment_->Logging()->InsertFrameEvent(now, 84 cast_environment_->Logging()->InsertFrameEvent(now,
85 kVideoFrameDecoded, 85 kVideoFrameDecoded,
86 i * 100, 86 i * 100,
87 /*frame_id*/ 0); 87 /*frame_id*/ 0);
88 } 88 }
89 89
90 GetEventsAndReset(); 90 GetEventsAndReset();
91 91
92 ASSERT_EQ(10u, frame_events_.size()); 92 ASSERT_EQ(10u, frame_events_.size());
93 EXPECT_EQ(100u, frame_events_.begin()->first); 93 EXPECT_EQ(100u, frame_events_.front()->relative_rtp_timestamp());
94 EXPECT_EQ(1000u, frame_events_.rbegin()->first); 94 EXPECT_EQ(1000u, frame_events_.back()->relative_rtp_timestamp());
95 } 95 }
96 96
97 TEST_F(EncodingEventSubscriberTest, PacketEventTruncating) { 97 TEST_F(EncodingEventSubscriberTest, PacketEventTruncating) {
98 Init(AUDIO_EVENT); 98 Init(AUDIO_EVENT);
99 99
100 base::TimeTicks now(testing_clock_->NowTicks()); 100 base::TimeTicks now(testing_clock_->NowTicks());
101 101
102 // Entry with RTP timestamp 0 should get dropped. 102 // Entry with RTP timestamp 0 should get dropped.
103 for (int i = 0; i < 11; i++) { 103 for (int i = 0; i < 11; i++) {
104 cast_environment_->Logging()->InsertPacketEvent(now, 104 cast_environment_->Logging()->InsertPacketEvent(now,
105 kAudioPacketReceived, 105 kAudioPacketReceived,
106 /*rtp_timestamp*/ i * 100, 106 /*rtp_timestamp*/ i * 100,
107 /*frame_id*/ 0, 107 /*frame_id*/ 0,
108 /*packet_id*/ i, 108 /*packet_id*/ i,
109 /*max_packet_id*/ 10, 109 /*max_packet_id*/ 10,
110 /*size*/ 123); 110 /*size*/ 123);
111 } 111 }
112 112
113 GetEventsAndReset(); 113 GetEventsAndReset();
114 114
115 ASSERT_EQ(10u, packet_events_.size()); 115 ASSERT_EQ(10u, packet_events_.size());
116 EXPECT_EQ(100u, packet_events_.begin()->first); 116 EXPECT_EQ(100u, packet_events_.front()->relative_rtp_timestamp());
117 EXPECT_EQ(1000u, packet_events_.rbegin()->first); 117 EXPECT_EQ(1000u, packet_events_.back()->relative_rtp_timestamp());
118 } 118 }
119 119
120 TEST_F(EncodingEventSubscriberTest, EventFiltering) { 120 TEST_F(EncodingEventSubscriberTest, EventFiltering) {
121 Init(VIDEO_EVENT); 121 Init(VIDEO_EVENT);
122 122
123 base::TimeTicks now(testing_clock_->NowTicks()); 123 base::TimeTicks now(testing_clock_->NowTicks());
124 RtpTimestamp rtp_timestamp = 100; 124 RtpTimestamp rtp_timestamp = 100;
125 cast_environment_->Logging()->InsertFrameEvent(now, 125 cast_environment_->Logging()->InsertFrameEvent(now,
126 kVideoFrameDecoded, 126 kVideoFrameDecoded,
127 rtp_timestamp, 127 rtp_timestamp,
128 /*frame_id*/ 0); 128 /*frame_id*/ 0);
129 129
130 // This is an AUDIO_EVENT and shouldn't be processed by the subscriber. 130 // This is an AUDIO_EVENT and shouldn't be processed by the subscriber.
131 cast_environment_->Logging()->InsertFrameEvent(now, 131 cast_environment_->Logging()->InsertFrameEvent(now,
132 kAudioFrameDecoded, 132 kAudioFrameDecoded,
133 rtp_timestamp, 133 rtp_timestamp,
134 /*frame_id*/ 0); 134 /*frame_id*/ 0);
135 135
136 GetEventsAndReset(); 136 GetEventsAndReset();
137 137
138 FrameEventMap::iterator frame_it = frame_events_.find(0); 138 ASSERT_EQ(1u, frame_events_.size());
139 ASSERT_TRUE(frame_it != frame_events_.end()); 139 FrameEventList::iterator it = frame_events_.begin();
140 140
141 linked_ptr<AggregatedFrameEvent> frame_event = frame_it->second; 141 linked_ptr<AggregatedFrameEvent> frame_event = *it;
142 142
143 ASSERT_EQ(1, frame_event->event_type_size()); 143 ASSERT_EQ(1, frame_event->event_type_size());
144 EXPECT_EQ(media::cast::proto::VIDEO_FRAME_DECODED, 144 EXPECT_EQ(media::cast::proto::VIDEO_FRAME_DECODED,
145 frame_event->event_type(0)); 145 frame_event->event_type(0));
146 146
147 GetEventsAndReset(); 147 GetEventsAndReset();
148 148
149 EXPECT_TRUE(packet_events_.empty()); 149 EXPECT_TRUE(packet_events_.empty());
150 } 150 }
151 151
152 TEST_F(EncodingEventSubscriberTest, FrameEvent) { 152 TEST_F(EncodingEventSubscriberTest, FrameEvent) {
153 Init(VIDEO_EVENT); 153 Init(VIDEO_EVENT);
154 base::TimeTicks now(testing_clock_->NowTicks()); 154 base::TimeTicks now(testing_clock_->NowTicks());
155 RtpTimestamp rtp_timestamp = 100; 155 RtpTimestamp rtp_timestamp = 100;
156 cast_environment_->Logging()->InsertFrameEvent(now, kVideoFrameDecoded, 156 cast_environment_->Logging()->InsertFrameEvent(now, kVideoFrameDecoded,
157 rtp_timestamp, 157 rtp_timestamp,
158 /*frame_id*/ 0); 158 /*frame_id*/ 0);
159 159
160 GetEventsAndReset(); 160 GetEventsAndReset();
161 161
162 ASSERT_EQ(1u, frame_events_.size()); 162 ASSERT_EQ(1u, frame_events_.size());
163 163
164 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; 164 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
165 FrameEventMap::iterator it = frame_events_.find(relative_rtp_timestamp); 165 FrameEventList::iterator it = frame_events_.begin();
166 ASSERT_TRUE(it != frame_events_.end());
167 166
168 linked_ptr<AggregatedFrameEvent> event = it->second; 167 linked_ptr<AggregatedFrameEvent> event = *it;
169 168
170 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 169 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
171 170
172 ASSERT_EQ(1, event->event_type_size()); 171 ASSERT_EQ(1, event->event_type_size());
173 EXPECT_EQ(media::cast::proto::VIDEO_FRAME_DECODED, event->event_type(0)); 172 EXPECT_EQ(media::cast::proto::VIDEO_FRAME_DECODED, event->event_type(0));
174 ASSERT_EQ(1, event->event_timestamp_ms_size()); 173 ASSERT_EQ(1, event->event_timestamp_ms_size());
175 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0)); 174 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0));
176 175
177 EXPECT_EQ(0, event->encoded_frame_size()); 176 EXPECT_EQ(0, event->encoded_frame_size());
178 EXPECT_EQ(0, event->delay_millis()); 177 EXPECT_EQ(0, event->delay_millis());
179 178
180 GetEventsAndReset(); 179 GetEventsAndReset();
181 EXPECT_TRUE(frame_events_.empty()); 180 EXPECT_TRUE(frame_events_.empty());
182 } 181 }
183 182
184 TEST_F(EncodingEventSubscriberTest, FrameEventDelay) { 183 TEST_F(EncodingEventSubscriberTest, FrameEventDelay) {
185 Init(AUDIO_EVENT); 184 Init(AUDIO_EVENT);
186 base::TimeTicks now(testing_clock_->NowTicks()); 185 base::TimeTicks now(testing_clock_->NowTicks());
187 RtpTimestamp rtp_timestamp = 100; 186 RtpTimestamp rtp_timestamp = 100;
188 int delay_ms = 100; 187 int delay_ms = 100;
189 cast_environment_->Logging()->InsertFrameEventWithDelay( 188 cast_environment_->Logging()->InsertFrameEventWithDelay(
190 now, kAudioPlayoutDelay, rtp_timestamp, 189 now, kAudioPlayoutDelay, rtp_timestamp,
191 /*frame_id*/ 0, base::TimeDelta::FromMilliseconds(delay_ms)); 190 /*frame_id*/ 0, base::TimeDelta::FromMilliseconds(delay_ms));
192 191
193 GetEventsAndReset(); 192 GetEventsAndReset();
194 193
195 ASSERT_EQ(1u, frame_events_.size()); 194 ASSERT_EQ(1u, frame_events_.size());
196 195
197 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; 196 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
198 FrameEventMap::iterator it = frame_events_.find(relative_rtp_timestamp); 197 FrameEventList::iterator it = frame_events_.begin();
199 ASSERT_TRUE(it != frame_events_.end());
200 198
201 linked_ptr<AggregatedFrameEvent> event = it->second; 199 linked_ptr<AggregatedFrameEvent> event = *it;
202 200
203 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 201 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
204 202
205 ASSERT_EQ(1, event->event_type_size()); 203 ASSERT_EQ(1, event->event_type_size());
206 EXPECT_EQ(media::cast::proto::AUDIO_PLAYOUT_DELAY, event->event_type(0)); 204 EXPECT_EQ(media::cast::proto::AUDIO_PLAYOUT_DELAY, event->event_type(0));
207 ASSERT_EQ(1, event->event_timestamp_ms_size()); 205 ASSERT_EQ(1, event->event_timestamp_ms_size());
208 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0)); 206 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0));
209 207
210 EXPECT_EQ(0, event->encoded_frame_size()); 208 EXPECT_EQ(0, event->encoded_frame_size());
211 EXPECT_EQ(100, event->delay_millis()); 209 EXPECT_EQ(100, event->delay_millis());
212 EXPECT_FALSE(event->has_key_frame()); 210 EXPECT_FALSE(event->has_key_frame());
213 } 211 }
214 212
215 TEST_F(EncodingEventSubscriberTest, FrameEventSize) { 213 TEST_F(EncodingEventSubscriberTest, FrameEventSize) {
216 Init(VIDEO_EVENT); 214 Init(VIDEO_EVENT);
217 base::TimeTicks now(testing_clock_->NowTicks()); 215 base::TimeTicks now(testing_clock_->NowTicks());
218 RtpTimestamp rtp_timestamp = 100; 216 RtpTimestamp rtp_timestamp = 100;
219 int size = 123; 217 int size = 123;
220 bool key_frame = true; 218 bool key_frame = true;
221 cast_environment_->Logging()->InsertEncodedFrameEvent( 219 cast_environment_->Logging()->InsertEncodedFrameEvent(
222 now, kVideoFrameEncoded, rtp_timestamp, 220 now, kVideoFrameEncoded, rtp_timestamp,
223 /*frame_id*/ 0, size, key_frame); 221 /*frame_id*/ 0, size, key_frame);
224 222
225 GetEventsAndReset(); 223 GetEventsAndReset();
226 224
227 ASSERT_EQ(1u, frame_events_.size()); 225 ASSERT_EQ(1u, frame_events_.size());
228 226
229 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; 227 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
230 FrameEventMap::iterator it = frame_events_.find(relative_rtp_timestamp); 228 FrameEventList::iterator it = frame_events_.begin();
231 ASSERT_TRUE(it != frame_events_.end());
232 229
233 linked_ptr<AggregatedFrameEvent> event = it->second; 230 linked_ptr<AggregatedFrameEvent> event = *it;
234 231
235 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 232 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
236 233
237 ASSERT_EQ(1, event->event_type_size()); 234 ASSERT_EQ(1, event->event_type_size());
238 EXPECT_EQ(media::cast::proto::VIDEO_FRAME_ENCODED, event->event_type(0)); 235 EXPECT_EQ(media::cast::proto::VIDEO_FRAME_ENCODED, event->event_type(0));
239 ASSERT_EQ(1, event->event_timestamp_ms_size()); 236 ASSERT_EQ(1, event->event_timestamp_ms_size());
240 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0)); 237 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0));
241 238
242 EXPECT_EQ(size, event->encoded_frame_size()); 239 EXPECT_EQ(size, event->encoded_frame_size());
243 EXPECT_EQ(0, event->delay_millis()); 240 EXPECT_EQ(0, event->delay_millis());
(...skipping 19 matching lines...) Expand all
263 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(20)); 260 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(20));
264 base::TimeTicks now3(testing_clock_->NowTicks()); 261 base::TimeTicks now3(testing_clock_->NowTicks());
265 cast_environment_->Logging()->InsertFrameEvent( 262 cast_environment_->Logging()->InsertFrameEvent(
266 now3, kAudioFrameDecoded, rtp_timestamp1, /*frame_id*/ 0); 263 now3, kAudioFrameDecoded, rtp_timestamp1, /*frame_id*/ 0);
267 264
268 GetEventsAndReset(); 265 GetEventsAndReset();
269 266
270 ASSERT_EQ(2u, frame_events_.size()); 267 ASSERT_EQ(2u, frame_events_.size());
271 268
272 RtpTimestamp relative_rtp_timestamp = rtp_timestamp1 - first_rtp_timestamp_; 269 RtpTimestamp relative_rtp_timestamp = rtp_timestamp1 - first_rtp_timestamp_;
273 FrameEventMap::iterator it = frame_events_.find(relative_rtp_timestamp); 270 FrameEventList::iterator it = frame_events_.begin();
274 ASSERT_TRUE(it != frame_events_.end());
275 271
276 linked_ptr<AggregatedFrameEvent> event = it->second; 272 linked_ptr<AggregatedFrameEvent> event = *it;
277 273
278 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 274 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
279 275
280 ASSERT_EQ(2, event->event_type_size()); 276 ASSERT_EQ(2, event->event_type_size());
281 EXPECT_EQ(media::cast::proto::AUDIO_PLAYOUT_DELAY, event->event_type(0)); 277 EXPECT_EQ(media::cast::proto::AUDIO_PLAYOUT_DELAY, event->event_type(0));
282 EXPECT_EQ(media::cast::proto::AUDIO_FRAME_DECODED, event->event_type(1)); 278 EXPECT_EQ(media::cast::proto::AUDIO_FRAME_DECODED, event->event_type(1));
283 279
284 ASSERT_EQ(2, event->event_timestamp_ms_size()); 280 ASSERT_EQ(2, event->event_timestamp_ms_size());
285 EXPECT_EQ(InMilliseconds(now1), event->event_timestamp_ms(0)); 281 EXPECT_EQ(InMilliseconds(now1), event->event_timestamp_ms(0));
286 EXPECT_EQ(InMilliseconds(now3), event->event_timestamp_ms(1)); 282 EXPECT_EQ(InMilliseconds(now3), event->event_timestamp_ms(1));
287 283
288 EXPECT_FALSE(event->has_key_frame()); 284 EXPECT_FALSE(event->has_key_frame());
289 285
290 relative_rtp_timestamp = rtp_timestamp2 - first_rtp_timestamp_; 286 relative_rtp_timestamp = rtp_timestamp2 - first_rtp_timestamp_;
291 it = frame_events_.find(relative_rtp_timestamp); 287 ++it;
292 ASSERT_TRUE(it != frame_events_.end());
293 288
294 event = it->second; 289 event = *it;
295 290
296 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 291 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
297 292
298 ASSERT_EQ(1, event->event_type_size()); 293 ASSERT_EQ(1, event->event_type_size());
299 EXPECT_EQ(media::cast::proto::AUDIO_FRAME_ENCODED, event->event_type(0)); 294 EXPECT_EQ(media::cast::proto::AUDIO_FRAME_ENCODED, event->event_type(0));
300 295
301 ASSERT_EQ(1, event->event_timestamp_ms_size()); 296 ASSERT_EQ(1, event->event_timestamp_ms_size());
302 EXPECT_EQ(InMilliseconds(now2), event->event_timestamp_ms(0)); 297 EXPECT_EQ(InMilliseconds(now2), event->event_timestamp_ms(0));
303 298
304 EXPECT_FALSE(event->has_key_frame()); 299 EXPECT_FALSE(event->has_key_frame());
305 } 300 }
306 301
307 TEST_F(EncodingEventSubscriberTest, PacketEvent) { 302 TEST_F(EncodingEventSubscriberTest, PacketEvent) {
308 Init(AUDIO_EVENT); 303 Init(AUDIO_EVENT);
309 base::TimeTicks now(testing_clock_->NowTicks()); 304 base::TimeTicks now(testing_clock_->NowTicks());
310 RtpTimestamp rtp_timestamp = 100; 305 RtpTimestamp rtp_timestamp = 100;
311 int packet_id = 2; 306 int packet_id = 2;
312 int size = 100; 307 int size = 100;
313 cast_environment_->Logging()->InsertPacketEvent( 308 cast_environment_->Logging()->InsertPacketEvent(
314 now, kAudioPacketReceived, rtp_timestamp, /*frame_id*/ 0, packet_id, 309 now, kAudioPacketReceived, rtp_timestamp, /*frame_id*/ 0, packet_id,
315 /*max_packet_id*/ 10, size); 310 /*max_packet_id*/ 10, size);
316 311
317 GetEventsAndReset(); 312 GetEventsAndReset();
318 313
319 ASSERT_EQ(1u, packet_events_.size()); 314 ASSERT_EQ(1u, packet_events_.size());
320 315
321 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; 316 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
322 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); 317 PacketEventList::iterator it = packet_events_.begin();
323 ASSERT_TRUE(it != packet_events_.end());
324 318
325 linked_ptr<AggregatedPacketEvent> event = it->second; 319 linked_ptr<AggregatedPacketEvent> event = *it;
326 320
327 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 321 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
328 322
329 ASSERT_EQ(1, event->base_packet_event_size()); 323 ASSERT_EQ(1, event->base_packet_event_size());
330 const BasePacketEvent& base_event = event->base_packet_event(0); 324 const BasePacketEvent& base_event = event->base_packet_event(0);
331 EXPECT_EQ(packet_id, base_event.packet_id()); 325 EXPECT_EQ(packet_id, base_event.packet_id());
332 ASSERT_EQ(1, base_event.event_type_size()); 326 ASSERT_EQ(1, base_event.event_type_size());
333 EXPECT_EQ(media::cast::proto::AUDIO_PACKET_RECEIVED, 327 EXPECT_EQ(media::cast::proto::AUDIO_PACKET_RECEIVED,
334 base_event.event_type(0)); 328 base_event.event_type(0));
335 ASSERT_EQ(1, base_event.event_timestamp_ms_size()); 329 ASSERT_EQ(1, base_event.event_timestamp_ms_size());
(...skipping 25 matching lines...) Expand all
361 /*frame_id*/ 0, 355 /*frame_id*/ 0,
362 packet_id, 356 packet_id,
363 /*max_packet_id*/ 10, 357 /*max_packet_id*/ 10,
364 size); 358 size);
365 359
366 GetEventsAndReset(); 360 GetEventsAndReset();
367 361
368 ASSERT_EQ(1u, packet_events_.size()); 362 ASSERT_EQ(1u, packet_events_.size());
369 363
370 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; 364 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
371 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); 365 PacketEventList::iterator it = packet_events_.begin();
372 ASSERT_TRUE(it != packet_events_.end());
373 366
374 linked_ptr<AggregatedPacketEvent> event = it->second; 367 linked_ptr<AggregatedPacketEvent> event = *it;
375 368
376 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 369 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
377 370
378 ASSERT_EQ(1, event->base_packet_event_size()); 371 ASSERT_EQ(1, event->base_packet_event_size());
379 const BasePacketEvent& base_event = event->base_packet_event(0); 372 const BasePacketEvent& base_event = event->base_packet_event(0);
380 EXPECT_EQ(packet_id, base_event.packet_id()); 373 EXPECT_EQ(packet_id, base_event.packet_id());
381 ASSERT_EQ(2, base_event.event_type_size()); 374 ASSERT_EQ(2, base_event.event_type_size());
382 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER, 375 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER,
383 base_event.event_type(0)); 376 base_event.event_type(0));
384 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_NETWORK, 377 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_NETWORK,
(...skipping 26 matching lines...) Expand all
411 /*frame_id*/ 0, 404 /*frame_id*/ 0,
412 packet_id_2, 405 packet_id_2,
413 /*max_packet_id*/ 10, 406 /*max_packet_id*/ 10,
414 size); 407 size);
415 408
416 GetEventsAndReset(); 409 GetEventsAndReset();
417 410
418 ASSERT_EQ(1u, packet_events_.size()); 411 ASSERT_EQ(1u, packet_events_.size());
419 412
420 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; 413 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
421 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); 414 PacketEventList::iterator it = packet_events_.begin();
422 ASSERT_TRUE(it != packet_events_.end());
423 415
424 linked_ptr<AggregatedPacketEvent> event = it->second; 416 linked_ptr<AggregatedPacketEvent> event = *it;
425 417
426 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 418 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
427 419
428 ASSERT_EQ(2, event->base_packet_event_size()); 420 ASSERT_EQ(2, event->base_packet_event_size());
429 const BasePacketEvent& base_event = event->base_packet_event(0); 421 const BasePacketEvent& base_event = event->base_packet_event(0);
430 EXPECT_EQ(packet_id_1, base_event.packet_id()); 422 EXPECT_EQ(packet_id_1, base_event.packet_id());
431 ASSERT_EQ(1, base_event.event_type_size()); 423 ASSERT_EQ(1, base_event.event_type_size());
432 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER, 424 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER,
433 base_event.event_type(0)); 425 base_event.event_type(0));
434 ASSERT_EQ(1, base_event.event_timestamp_ms_size()); 426 ASSERT_EQ(1, base_event.event_timestamp_ms_size());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 /*frame_id*/ 0, 459 /*frame_id*/ 0,
468 packet_id_2, 460 packet_id_2,
469 /*max_packet_id*/ 10, 461 /*max_packet_id*/ 10,
470 size); 462 size);
471 463
472 GetEventsAndReset(); 464 GetEventsAndReset();
473 465
474 ASSERT_EQ(2u, packet_events_.size()); 466 ASSERT_EQ(2u, packet_events_.size());
475 467
476 RtpTimestamp relative_rtp_timestamp = rtp_timestamp_1 - first_rtp_timestamp_; 468 RtpTimestamp relative_rtp_timestamp = rtp_timestamp_1 - first_rtp_timestamp_;
477 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); 469 PacketEventList::iterator it = packet_events_.begin();
478 ASSERT_TRUE(it != packet_events_.end());
479 470
480 linked_ptr<AggregatedPacketEvent> event = it->second; 471 linked_ptr<AggregatedPacketEvent> event = *it;
481 472
482 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 473 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
483 474
484 ASSERT_EQ(1, event->base_packet_event_size()); 475 ASSERT_EQ(1, event->base_packet_event_size());
485 const BasePacketEvent& base_event = event->base_packet_event(0); 476 const BasePacketEvent& base_event = event->base_packet_event(0);
486 EXPECT_EQ(packet_id_1, base_event.packet_id()); 477 EXPECT_EQ(packet_id_1, base_event.packet_id());
487 ASSERT_EQ(1, base_event.event_type_size()); 478 ASSERT_EQ(1, base_event.event_type_size());
488 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER, 479 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER,
489 base_event.event_type(0)); 480 base_event.event_type(0));
490 ASSERT_EQ(1, base_event.event_timestamp_ms_size()); 481 ASSERT_EQ(1, base_event.event_timestamp_ms_size());
491 EXPECT_EQ(InMilliseconds(now1), base_event.event_timestamp_ms(0)); 482 EXPECT_EQ(InMilliseconds(now1), base_event.event_timestamp_ms(0));
492 483
493 relative_rtp_timestamp = rtp_timestamp_2 - first_rtp_timestamp_; 484 relative_rtp_timestamp = rtp_timestamp_2 - first_rtp_timestamp_;
494 it = packet_events_.find(relative_rtp_timestamp); 485 ++it;
495 ASSERT_TRUE(it != packet_events_.end()); 486 ASSERT_TRUE(it != packet_events_.end());
496 487
497 event = it->second; 488 event = *it;
498
499 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 489 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
500 490
501 ASSERT_EQ(1, event->base_packet_event_size()); 491 ASSERT_EQ(1, event->base_packet_event_size());
502 const BasePacketEvent& base_event_2 = event->base_packet_event(0); 492 const BasePacketEvent& base_event_2 = event->base_packet_event(0);
503 EXPECT_EQ(packet_id_2, base_event_2.packet_id()); 493 EXPECT_EQ(packet_id_2, base_event_2.packet_id());
504 ASSERT_EQ(1, base_event_2.event_type_size()); 494 ASSERT_EQ(1, base_event_2.event_type_size());
505 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_RETRANSMITTED, 495 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_RETRANSMITTED,
506 base_event_2.event_type(0)); 496 base_event_2.event_type(0));
507 ASSERT_EQ(1, base_event_2.event_timestamp_ms_size()); 497 ASSERT_EQ(1, base_event_2.event_timestamp_ms_size());
508 EXPECT_EQ(InMilliseconds(now2), base_event_2.event_timestamp_ms(0)); 498 EXPECT_EQ(InMilliseconds(now2), base_event_2.event_timestamp_ms(0));
(...skipping 10 matching lines...) Expand all
519 /*frame_id*/ 0); 509 /*frame_id*/ 0);
520 510
521 cast_environment_->Logging()->InsertFrameEvent(now, 511 cast_environment_->Logging()->InsertFrameEvent(now,
522 kVideoFrameReceived, 512 kVideoFrameReceived,
523 rtp_timestamp + 30, 513 rtp_timestamp + 30,
524 /*frame_id*/ 1); 514 /*frame_id*/ 1);
525 515
526 GetEventsAndReset(); 516 GetEventsAndReset();
527 517
528 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_); 518 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_);
529 FrameEventMap::iterator it = frame_events_.find(0); 519 FrameEventList::iterator it = frame_events_.begin();
530 ASSERT_NE(frame_events_.end(), it); 520 ASSERT_NE(frame_events_.end(), it);
521 EXPECT_EQ(0u, (*it)->relative_rtp_timestamp());
531 522
532 it = frame_events_.find(30); 523 ++it;
533 ASSERT_NE(frame_events_.end(), it); 524 ASSERT_NE(frame_events_.end(), it);
525 EXPECT_EQ(30u, (*it)->relative_rtp_timestamp());
534 526
535 rtp_timestamp = 67890; 527 rtp_timestamp = 67890;
536 528
537 cast_environment_->Logging()->InsertFrameEvent(now, 529 cast_environment_->Logging()->InsertFrameEvent(now,
538 kVideoFrameCaptured, 530 kVideoFrameCaptured,
539 rtp_timestamp, 531 rtp_timestamp,
540 /*frame_id*/ 0); 532 /*frame_id*/ 0);
541 GetEventsAndReset(); 533 GetEventsAndReset();
542 534
543 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_); 535 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_);
(...skipping 10 matching lines...) Expand all
554 /*frame_id*/ 0); 546 /*frame_id*/ 0);
555 547
556 // RtpTimestamp has now wrapped around. 548 // RtpTimestamp has now wrapped around.
557 cast_environment_->Logging()->InsertFrameEvent(now, 549 cast_environment_->Logging()->InsertFrameEvent(now,
558 kVideoFrameReceived, 550 kVideoFrameReceived,
559 rtp_timestamp + 30, 551 rtp_timestamp + 30,
560 /*frame_id*/ 1); 552 /*frame_id*/ 1);
561 553
562 GetEventsAndReset(); 554 GetEventsAndReset();
563 555
564 FrameEventMap::iterator it = frame_events_.find(0); 556 FrameEventList::iterator it = frame_events_.begin();
565 ASSERT_NE(frame_events_.end(), it); 557 ASSERT_NE(frame_events_.end(), it);
558 EXPECT_EQ(0u, (*it)->relative_rtp_timestamp());
566 559
567 it = frame_events_.find(30); 560 ++it;
568 ASSERT_NE(frame_events_.end(), it); 561 ASSERT_NE(frame_events_.end(), it);
562 EXPECT_EQ(30u, (*it)->relative_rtp_timestamp());
563 }
564
565 TEST_F(EncodingEventSubscriberTest, MaxEventsPerProto) {
566 Init(VIDEO_EVENT);
567 RtpTimestamp rtp_timestamp = 100;
568 for (int i = 0; i < kMaxEventsPerProto + 1; i++) {
569 cast_environment_->Logging()->InsertFrameEvent(testing_clock_->NowTicks(),
570 kVideoAckReceived,
571 rtp_timestamp,
572 /*frame_id*/ 0);
573 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(30));
574 }
575
576 GetEventsAndReset();
577
578 ASSERT_EQ(2u, frame_events_.size());
579 FrameEventList::iterator frame_it = frame_events_.begin();
580 ASSERT_TRUE(frame_it != frame_events_.end());
581
582 linked_ptr<AggregatedFrameEvent> frame_event = *frame_it;
583
584 EXPECT_EQ(kMaxEventsPerProto, frame_event->event_type_size());
585
586 for (int i = 0; i < kMaxPacketsPerFrame + 1; i++) {
587 cast_environment_->Logging()->InsertPacketEvent(
588 testing_clock_->NowTicks(),
589 kVideoPacketRetransmitted,
590 rtp_timestamp,
591 /*frame_id*/ 0,
592 i,
593 kMaxPacketsPerFrame,
594 123);
595 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(30));
596 }
597
598 GetEventsAndReset();
599
600 PacketEventList::iterator packet_it = packet_events_.begin();
601 ASSERT_TRUE(packet_it != packet_events_.end());
602
603 linked_ptr<AggregatedPacketEvent> packet_event = *packet_it;
604
605 EXPECT_EQ(kMaxPacketsPerFrame,
606 packet_event->base_packet_event_size());
607
608 for (int j = 0; j < kMaxEventsPerProto + 1; j++) {
609 cast_environment_->Logging()->InsertPacketEvent(
610 testing_clock_->NowTicks(),
611 kVideoPacketRetransmitted,
612 rtp_timestamp,
613 /*frame_id*/ 0,
614 0,
615 0,
616 123);
617 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(30));
618 }
619
620 GetEventsAndReset();
621
622 packet_it = packet_events_.begin();
623 ASSERT_TRUE(packet_it != packet_events_.end());
624
625 packet_event = *packet_it;
626
627 EXPECT_EQ(kMaxEventsPerProto,
628 packet_event->base_packet_event(0).event_type_size());
569 } 629 }
570 630
571 } // namespace cast 631 } // namespace cast
572 } // namespace media 632 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698