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

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: fix merge 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
« no previous file with comments | « media/cast/logging/encoding_event_subscriber.cc ('k') | media/cast/logging/log_deserializer.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 int target_bitrate = 1024; 219 int target_bitrate = 1024;
222 cast_environment_->Logging()->InsertEncodedFrameEvent( 220 cast_environment_->Logging()->InsertEncodedFrameEvent(
223 now, kVideoFrameEncoded, rtp_timestamp, 221 now, kVideoFrameEncoded, rtp_timestamp,
224 /*frame_id*/ 0, size, key_frame, target_bitrate); 222 /*frame_id*/ 0, size, key_frame, target_bitrate);
225 223
226 GetEventsAndReset(); 224 GetEventsAndReset();
227 225
228 ASSERT_EQ(1u, frame_events_.size()); 226 ASSERT_EQ(1u, frame_events_.size());
229 227
230 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; 228 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
231 FrameEventMap::iterator it = frame_events_.find(relative_rtp_timestamp); 229 FrameEventList::iterator it = frame_events_.begin();
232 ASSERT_TRUE(it != frame_events_.end());
233 230
234 linked_ptr<AggregatedFrameEvent> event = it->second; 231 linked_ptr<AggregatedFrameEvent> event = *it;
235 232
236 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 233 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
237 234
238 ASSERT_EQ(1, event->event_type_size()); 235 ASSERT_EQ(1, event->event_type_size());
239 EXPECT_EQ(media::cast::proto::VIDEO_FRAME_ENCODED, event->event_type(0)); 236 EXPECT_EQ(media::cast::proto::VIDEO_FRAME_ENCODED, event->event_type(0));
240 ASSERT_EQ(1, event->event_timestamp_ms_size()); 237 ASSERT_EQ(1, event->event_timestamp_ms_size());
241 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0)); 238 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0));
242 239
243 EXPECT_EQ(size, event->encoded_frame_size()); 240 EXPECT_EQ(size, event->encoded_frame_size());
244 EXPECT_EQ(0, event->delay_millis()); 241 EXPECT_EQ(0, event->delay_millis());
(...skipping 21 matching lines...) Expand all
266 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(20)); 263 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(20));
267 base::TimeTicks now3(testing_clock_->NowTicks()); 264 base::TimeTicks now3(testing_clock_->NowTicks());
268 cast_environment_->Logging()->InsertFrameEvent( 265 cast_environment_->Logging()->InsertFrameEvent(
269 now3, kAudioFrameDecoded, rtp_timestamp1, /*frame_id*/ 0); 266 now3, kAudioFrameDecoded, rtp_timestamp1, /*frame_id*/ 0);
270 267
271 GetEventsAndReset(); 268 GetEventsAndReset();
272 269
273 ASSERT_EQ(2u, frame_events_.size()); 270 ASSERT_EQ(2u, frame_events_.size());
274 271
275 RtpTimestamp relative_rtp_timestamp = rtp_timestamp1 - first_rtp_timestamp_; 272 RtpTimestamp relative_rtp_timestamp = rtp_timestamp1 - first_rtp_timestamp_;
276 FrameEventMap::iterator it = frame_events_.find(relative_rtp_timestamp); 273 FrameEventList::iterator it = frame_events_.begin();
277 ASSERT_TRUE(it != frame_events_.end());
278 274
279 linked_ptr<AggregatedFrameEvent> event = it->second; 275 linked_ptr<AggregatedFrameEvent> event = *it;
280 276
281 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 277 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
282 278
283 ASSERT_EQ(2, event->event_type_size()); 279 ASSERT_EQ(2, event->event_type_size());
284 EXPECT_EQ(media::cast::proto::AUDIO_PLAYOUT_DELAY, event->event_type(0)); 280 EXPECT_EQ(media::cast::proto::AUDIO_PLAYOUT_DELAY, event->event_type(0));
285 EXPECT_EQ(media::cast::proto::AUDIO_FRAME_DECODED, event->event_type(1)); 281 EXPECT_EQ(media::cast::proto::AUDIO_FRAME_DECODED, event->event_type(1));
286 282
287 ASSERT_EQ(2, event->event_timestamp_ms_size()); 283 ASSERT_EQ(2, event->event_timestamp_ms_size());
288 EXPECT_EQ(InMilliseconds(now1), event->event_timestamp_ms(0)); 284 EXPECT_EQ(InMilliseconds(now1), event->event_timestamp_ms(0));
289 EXPECT_EQ(InMilliseconds(now3), event->event_timestamp_ms(1)); 285 EXPECT_EQ(InMilliseconds(now3), event->event_timestamp_ms(1));
290 286
291 EXPECT_FALSE(event->has_key_frame()); 287 EXPECT_FALSE(event->has_key_frame());
292 288
293 relative_rtp_timestamp = rtp_timestamp2 - first_rtp_timestamp_; 289 relative_rtp_timestamp = rtp_timestamp2 - first_rtp_timestamp_;
294 it = frame_events_.find(relative_rtp_timestamp); 290 ++it;
295 ASSERT_TRUE(it != frame_events_.end());
296 291
297 event = it->second; 292 event = *it;
298 293
299 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 294 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
300 295
301 ASSERT_EQ(1, event->event_type_size()); 296 ASSERT_EQ(1, event->event_type_size());
302 EXPECT_EQ(media::cast::proto::AUDIO_FRAME_ENCODED, event->event_type(0)); 297 EXPECT_EQ(media::cast::proto::AUDIO_FRAME_ENCODED, event->event_type(0));
303 298
304 ASSERT_EQ(1, event->event_timestamp_ms_size()); 299 ASSERT_EQ(1, event->event_timestamp_ms_size());
305 EXPECT_EQ(InMilliseconds(now2), event->event_timestamp_ms(0)); 300 EXPECT_EQ(InMilliseconds(now2), event->event_timestamp_ms(0));
306 301
307 EXPECT_FALSE(event->has_key_frame()); 302 EXPECT_FALSE(event->has_key_frame());
308 } 303 }
309 304
310 TEST_F(EncodingEventSubscriberTest, PacketEvent) { 305 TEST_F(EncodingEventSubscriberTest, PacketEvent) {
311 Init(AUDIO_EVENT); 306 Init(AUDIO_EVENT);
312 base::TimeTicks now(testing_clock_->NowTicks()); 307 base::TimeTicks now(testing_clock_->NowTicks());
313 RtpTimestamp rtp_timestamp = 100; 308 RtpTimestamp rtp_timestamp = 100;
314 int packet_id = 2; 309 int packet_id = 2;
315 int size = 100; 310 int size = 100;
316 cast_environment_->Logging()->InsertPacketEvent( 311 cast_environment_->Logging()->InsertPacketEvent(
317 now, kAudioPacketReceived, rtp_timestamp, /*frame_id*/ 0, packet_id, 312 now, kAudioPacketReceived, rtp_timestamp, /*frame_id*/ 0, packet_id,
318 /*max_packet_id*/ 10, size); 313 /*max_packet_id*/ 10, size);
319 314
320 GetEventsAndReset(); 315 GetEventsAndReset();
321 316
322 ASSERT_EQ(1u, packet_events_.size()); 317 ASSERT_EQ(1u, packet_events_.size());
323 318
324 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; 319 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
325 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); 320 PacketEventList::iterator it = packet_events_.begin();
326 ASSERT_TRUE(it != packet_events_.end());
327 321
328 linked_ptr<AggregatedPacketEvent> event = it->second; 322 linked_ptr<AggregatedPacketEvent> event = *it;
329 323
330 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 324 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
331 325
332 ASSERT_EQ(1, event->base_packet_event_size()); 326 ASSERT_EQ(1, event->base_packet_event_size());
333 const BasePacketEvent& base_event = event->base_packet_event(0); 327 const BasePacketEvent& base_event = event->base_packet_event(0);
334 EXPECT_EQ(packet_id, base_event.packet_id()); 328 EXPECT_EQ(packet_id, base_event.packet_id());
335 ASSERT_EQ(1, base_event.event_type_size()); 329 ASSERT_EQ(1, base_event.event_type_size());
336 EXPECT_EQ(media::cast::proto::AUDIO_PACKET_RECEIVED, 330 EXPECT_EQ(media::cast::proto::AUDIO_PACKET_RECEIVED,
337 base_event.event_type(0)); 331 base_event.event_type(0));
338 ASSERT_EQ(1, base_event.event_timestamp_ms_size()); 332 ASSERT_EQ(1, base_event.event_timestamp_ms_size());
(...skipping 25 matching lines...) Expand all
364 /*frame_id*/ 0, 358 /*frame_id*/ 0,
365 packet_id, 359 packet_id,
366 /*max_packet_id*/ 10, 360 /*max_packet_id*/ 10,
367 size); 361 size);
368 362
369 GetEventsAndReset(); 363 GetEventsAndReset();
370 364
371 ASSERT_EQ(1u, packet_events_.size()); 365 ASSERT_EQ(1u, packet_events_.size());
372 366
373 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; 367 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
374 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); 368 PacketEventList::iterator it = packet_events_.begin();
375 ASSERT_TRUE(it != packet_events_.end());
376 369
377 linked_ptr<AggregatedPacketEvent> event = it->second; 370 linked_ptr<AggregatedPacketEvent> event = *it;
378 371
379 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 372 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
380 373
381 ASSERT_EQ(1, event->base_packet_event_size()); 374 ASSERT_EQ(1, event->base_packet_event_size());
382 const BasePacketEvent& base_event = event->base_packet_event(0); 375 const BasePacketEvent& base_event = event->base_packet_event(0);
383 EXPECT_EQ(packet_id, base_event.packet_id()); 376 EXPECT_EQ(packet_id, base_event.packet_id());
384 ASSERT_EQ(2, base_event.event_type_size()); 377 ASSERT_EQ(2, base_event.event_type_size());
385 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER, 378 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER,
386 base_event.event_type(0)); 379 base_event.event_type(0));
387 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_NETWORK, 380 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_NETWORK,
(...skipping 26 matching lines...) Expand all
414 /*frame_id*/ 0, 407 /*frame_id*/ 0,
415 packet_id_2, 408 packet_id_2,
416 /*max_packet_id*/ 10, 409 /*max_packet_id*/ 10,
417 size); 410 size);
418 411
419 GetEventsAndReset(); 412 GetEventsAndReset();
420 413
421 ASSERT_EQ(1u, packet_events_.size()); 414 ASSERT_EQ(1u, packet_events_.size());
422 415
423 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_; 416 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
424 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); 417 PacketEventList::iterator it = packet_events_.begin();
425 ASSERT_TRUE(it != packet_events_.end());
426 418
427 linked_ptr<AggregatedPacketEvent> event = it->second; 419 linked_ptr<AggregatedPacketEvent> event = *it;
428 420
429 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 421 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
430 422
431 ASSERT_EQ(2, event->base_packet_event_size()); 423 ASSERT_EQ(2, event->base_packet_event_size());
432 const BasePacketEvent& base_event = event->base_packet_event(0); 424 const BasePacketEvent& base_event = event->base_packet_event(0);
433 EXPECT_EQ(packet_id_1, base_event.packet_id()); 425 EXPECT_EQ(packet_id_1, base_event.packet_id());
434 ASSERT_EQ(1, base_event.event_type_size()); 426 ASSERT_EQ(1, base_event.event_type_size());
435 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER, 427 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER,
436 base_event.event_type(0)); 428 base_event.event_type(0));
437 ASSERT_EQ(1, base_event.event_timestamp_ms_size()); 429 ASSERT_EQ(1, base_event.event_timestamp_ms_size());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 /*frame_id*/ 0, 462 /*frame_id*/ 0,
471 packet_id_2, 463 packet_id_2,
472 /*max_packet_id*/ 10, 464 /*max_packet_id*/ 10,
473 size); 465 size);
474 466
475 GetEventsAndReset(); 467 GetEventsAndReset();
476 468
477 ASSERT_EQ(2u, packet_events_.size()); 469 ASSERT_EQ(2u, packet_events_.size());
478 470
479 RtpTimestamp relative_rtp_timestamp = rtp_timestamp_1 - first_rtp_timestamp_; 471 RtpTimestamp relative_rtp_timestamp = rtp_timestamp_1 - first_rtp_timestamp_;
480 PacketEventMap::iterator it = packet_events_.find(relative_rtp_timestamp); 472 PacketEventList::iterator it = packet_events_.begin();
481 ASSERT_TRUE(it != packet_events_.end());
482 473
483 linked_ptr<AggregatedPacketEvent> event = it->second; 474 linked_ptr<AggregatedPacketEvent> event = *it;
484 475
485 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 476 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
486 477
487 ASSERT_EQ(1, event->base_packet_event_size()); 478 ASSERT_EQ(1, event->base_packet_event_size());
488 const BasePacketEvent& base_event = event->base_packet_event(0); 479 const BasePacketEvent& base_event = event->base_packet_event(0);
489 EXPECT_EQ(packet_id_1, base_event.packet_id()); 480 EXPECT_EQ(packet_id_1, base_event.packet_id());
490 ASSERT_EQ(1, base_event.event_type_size()); 481 ASSERT_EQ(1, base_event.event_type_size());
491 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER, 482 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_SENT_TO_PACER,
492 base_event.event_type(0)); 483 base_event.event_type(0));
493 ASSERT_EQ(1, base_event.event_timestamp_ms_size()); 484 ASSERT_EQ(1, base_event.event_timestamp_ms_size());
494 EXPECT_EQ(InMilliseconds(now1), base_event.event_timestamp_ms(0)); 485 EXPECT_EQ(InMilliseconds(now1), base_event.event_timestamp_ms(0));
495 486
496 relative_rtp_timestamp = rtp_timestamp_2 - first_rtp_timestamp_; 487 relative_rtp_timestamp = rtp_timestamp_2 - first_rtp_timestamp_;
497 it = packet_events_.find(relative_rtp_timestamp); 488 ++it;
498 ASSERT_TRUE(it != packet_events_.end()); 489 ASSERT_TRUE(it != packet_events_.end());
499 490
500 event = it->second; 491 event = *it;
501
502 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 492 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp());
503 493
504 ASSERT_EQ(1, event->base_packet_event_size()); 494 ASSERT_EQ(1, event->base_packet_event_size());
505 const BasePacketEvent& base_event_2 = event->base_packet_event(0); 495 const BasePacketEvent& base_event_2 = event->base_packet_event(0);
506 EXPECT_EQ(packet_id_2, base_event_2.packet_id()); 496 EXPECT_EQ(packet_id_2, base_event_2.packet_id());
507 ASSERT_EQ(1, base_event_2.event_type_size()); 497 ASSERT_EQ(1, base_event_2.event_type_size());
508 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_RETRANSMITTED, 498 EXPECT_EQ(media::cast::proto::VIDEO_PACKET_RETRANSMITTED,
509 base_event_2.event_type(0)); 499 base_event_2.event_type(0));
510 ASSERT_EQ(1, base_event_2.event_timestamp_ms_size()); 500 ASSERT_EQ(1, base_event_2.event_timestamp_ms_size());
511 EXPECT_EQ(InMilliseconds(now2), base_event_2.event_timestamp_ms(0)); 501 EXPECT_EQ(InMilliseconds(now2), base_event_2.event_timestamp_ms(0));
(...skipping 10 matching lines...) Expand all
522 /*frame_id*/ 0); 512 /*frame_id*/ 0);
523 513
524 cast_environment_->Logging()->InsertFrameEvent(now, 514 cast_environment_->Logging()->InsertFrameEvent(now,
525 kVideoFrameReceived, 515 kVideoFrameReceived,
526 rtp_timestamp + 30, 516 rtp_timestamp + 30,
527 /*frame_id*/ 1); 517 /*frame_id*/ 1);
528 518
529 GetEventsAndReset(); 519 GetEventsAndReset();
530 520
531 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_); 521 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_);
532 FrameEventMap::iterator it = frame_events_.find(0); 522 FrameEventList::iterator it = frame_events_.begin();
533 ASSERT_NE(frame_events_.end(), it); 523 ASSERT_NE(frame_events_.end(), it);
524 EXPECT_EQ(0u, (*it)->relative_rtp_timestamp());
534 525
535 it = frame_events_.find(30); 526 ++it;
536 ASSERT_NE(frame_events_.end(), it); 527 ASSERT_NE(frame_events_.end(), it);
528 EXPECT_EQ(30u, (*it)->relative_rtp_timestamp());
537 529
538 rtp_timestamp = 67890; 530 rtp_timestamp = 67890;
539 531
540 cast_environment_->Logging()->InsertFrameEvent(now, 532 cast_environment_->Logging()->InsertFrameEvent(now,
541 kVideoFrameCaptured, 533 kVideoFrameCaptured,
542 rtp_timestamp, 534 rtp_timestamp,
543 /*frame_id*/ 0); 535 /*frame_id*/ 0);
544 GetEventsAndReset(); 536 GetEventsAndReset();
545 537
546 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_); 538 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_);
(...skipping 10 matching lines...) Expand all
557 /*frame_id*/ 0); 549 /*frame_id*/ 0);
558 550
559 // RtpTimestamp has now wrapped around. 551 // RtpTimestamp has now wrapped around.
560 cast_environment_->Logging()->InsertFrameEvent(now, 552 cast_environment_->Logging()->InsertFrameEvent(now,
561 kVideoFrameReceived, 553 kVideoFrameReceived,
562 rtp_timestamp + 30, 554 rtp_timestamp + 30,
563 /*frame_id*/ 1); 555 /*frame_id*/ 1);
564 556
565 GetEventsAndReset(); 557 GetEventsAndReset();
566 558
567 FrameEventMap::iterator it = frame_events_.find(0); 559 FrameEventList::iterator it = frame_events_.begin();
568 ASSERT_NE(frame_events_.end(), it); 560 ASSERT_NE(frame_events_.end(), it);
561 EXPECT_EQ(0u, (*it)->relative_rtp_timestamp());
569 562
570 it = frame_events_.find(30); 563 ++it;
571 ASSERT_NE(frame_events_.end(), it); 564 ASSERT_NE(frame_events_.end(), it);
565 EXPECT_EQ(30u, (*it)->relative_rtp_timestamp());
566 }
567
568 TEST_F(EncodingEventSubscriberTest, MaxEventsPerProto) {
569 Init(VIDEO_EVENT);
570 RtpTimestamp rtp_timestamp = 100;
571 for (int i = 0; i < kMaxEventsPerProto + 1; i++) {
572 cast_environment_->Logging()->InsertFrameEvent(testing_clock_->NowTicks(),
573 kVideoAckReceived,
574 rtp_timestamp,
575 /*frame_id*/ 0);
576 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(30));
577 }
578
579 GetEventsAndReset();
580
581 ASSERT_EQ(2u, frame_events_.size());
582 FrameEventList::iterator frame_it = frame_events_.begin();
583 ASSERT_TRUE(frame_it != frame_events_.end());
584
585 linked_ptr<AggregatedFrameEvent> frame_event = *frame_it;
586
587 EXPECT_EQ(kMaxEventsPerProto, frame_event->event_type_size());
588
589 for (int i = 0; i < kMaxPacketsPerFrame + 1; i++) {
590 cast_environment_->Logging()->InsertPacketEvent(
591 testing_clock_->NowTicks(),
592 kVideoPacketRetransmitted,
593 rtp_timestamp,
594 /*frame_id*/ 0,
595 i,
596 kMaxPacketsPerFrame,
597 123);
598 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(30));
599 }
600
601 GetEventsAndReset();
602
603 EXPECT_EQ(2u, packet_events_.size());
604
605 PacketEventList::iterator packet_it = packet_events_.begin();
606 ASSERT_TRUE(packet_it != packet_events_.end());
607
608 linked_ptr<AggregatedPacketEvent> packet_event = *packet_it;
609
610 EXPECT_EQ(kMaxPacketsPerFrame,
611 packet_event->base_packet_event_size());
612
613 ++packet_it;
614 packet_event = *packet_it;
615 EXPECT_EQ(1, packet_event->base_packet_event_size());
616
617 for (int j = 0; j < kMaxEventsPerProto + 1; j++) {
618 cast_environment_->Logging()->InsertPacketEvent(
619 testing_clock_->NowTicks(),
620 kVideoPacketRetransmitted,
621 rtp_timestamp,
622 /*frame_id*/ 0,
623 0,
624 0,
625 123);
626 testing_clock_->Advance(base::TimeDelta::FromMilliseconds(30));
627 }
628
629 GetEventsAndReset();
630
631 EXPECT_EQ(2u, packet_events_.size());
632 packet_it = packet_events_.begin();
633 ASSERT_TRUE(packet_it != packet_events_.end());
634
635 packet_event = *packet_it;
636
637 EXPECT_EQ(kMaxEventsPerProto,
638 packet_event->base_packet_event(0).event_type_size());
639
640 ++packet_it;
641 packet_event = *packet_it;
642 EXPECT_EQ(1, packet_event->base_packet_event(0).event_type_size());
572 } 643 }
573 644
574 } // namespace cast 645 } // namespace cast
575 } // namespace media 646 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/logging/encoding_event_subscriber.cc ('k') | media/cast/logging/log_deserializer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698