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

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

Issue 1515433002: Replace uses of raw uint32's with a type-checked RtpTimeTicks data type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 19 matching lines...) Expand all
30 30
31 class EncodingEventSubscriberTest : public ::testing::Test { 31 class EncodingEventSubscriberTest : public ::testing::Test {
32 protected: 32 protected:
33 EncodingEventSubscriberTest() 33 EncodingEventSubscriberTest()
34 : testing_clock_(new base::SimpleTestTickClock()), 34 : testing_clock_(new base::SimpleTestTickClock()),
35 task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)), 35 task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)),
36 cast_environment_(new CastEnvironment( 36 cast_environment_(new CastEnvironment(
37 scoped_ptr<base::TickClock>(testing_clock_).Pass(), 37 scoped_ptr<base::TickClock>(testing_clock_).Pass(),
38 task_runner_, 38 task_runner_,
39 task_runner_, 39 task_runner_,
40 task_runner_)), 40 task_runner_)) {}
41 first_rtp_timestamp_(0) {}
42 41
43 void Init(EventMediaType event_media_type) { 42 void Init(EventMediaType event_media_type) {
44 DCHECK(!event_subscriber_); 43 DCHECK(!event_subscriber_);
45 event_subscriber_.reset(new EncodingEventSubscriber(event_media_type, 10)); 44 event_subscriber_.reset(new EncodingEventSubscriber(event_media_type, 10));
46 cast_environment_->logger()->Subscribe(event_subscriber_.get()); 45 cast_environment_->logger()->Subscribe(event_subscriber_.get());
47 } 46 }
48 47
49 ~EncodingEventSubscriberTest() override { 48 ~EncodingEventSubscriberTest() override {
50 if (event_subscriber_) 49 if (event_subscriber_)
51 cast_environment_->logger()->Unsubscribe(event_subscriber_.get()); 50 cast_environment_->logger()->Unsubscribe(event_subscriber_.get());
52 } 51 }
53 52
54 void GetEventsAndReset() { 53 void GetEventsAndReset() {
55 event_subscriber_->GetEventsAndReset( 54 event_subscriber_->GetEventsAndReset(
56 &metadata_, &frame_events_, &packet_events_); 55 &metadata_, &frame_events_, &packet_events_);
57 first_rtp_timestamp_ = metadata_.first_rtp_timestamp(); 56 first_rtp_timestamp_ =
57 RtpTimeTicks().Expand(metadata_.first_rtp_timestamp());
58 } 58 }
59 59
60 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. 60 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment.
61 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; 61 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_;
62 scoped_refptr<CastEnvironment> cast_environment_; 62 scoped_refptr<CastEnvironment> cast_environment_;
63 scoped_ptr<EncodingEventSubscriber> event_subscriber_; 63 scoped_ptr<EncodingEventSubscriber> event_subscriber_;
64 FrameEventList frame_events_; 64 FrameEventList frame_events_;
65 PacketEventList packet_events_; 65 PacketEventList packet_events_;
66 LogMetadata metadata_; 66 LogMetadata metadata_;
67 RtpTimestamp first_rtp_timestamp_; 67 RtpTimeTicks first_rtp_timestamp_;
68 }; 68 };
69 69
70 TEST_F(EncodingEventSubscriberTest, FrameEventTruncating) { 70 TEST_F(EncodingEventSubscriberTest, FrameEventTruncating) {
71 Init(VIDEO_EVENT); 71 Init(VIDEO_EVENT);
72 72
73 base::TimeTicks now(testing_clock_->NowTicks()); 73 base::TimeTicks now(testing_clock_->NowTicks());
74 74
75 // Entry with RTP timestamp 0 should get dropped. 75 // Entry with RTP timestamp 0 should get dropped.
76 int width = 320; 76 int width = 320;
77 int height = 180; 77 int height = 180;
78 for (int i = 0; i < 11; i++) { 78 for (int i = 0; i < 11; i++) {
79 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); 79 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent());
80 capture_begin_event->timestamp = now; 80 capture_begin_event->timestamp = now;
81 capture_begin_event->type = FRAME_CAPTURE_BEGIN; 81 capture_begin_event->type = FRAME_CAPTURE_BEGIN;
82 capture_begin_event->media_type = VIDEO_EVENT; 82 capture_begin_event->media_type = VIDEO_EVENT;
83 capture_begin_event->rtp_timestamp = i * 100; 83 capture_begin_event->rtp_timestamp =
84 RtpTimeTicks().Expand<uint32_t>(i * 100);
84 cast_environment_->logger()->DispatchFrameEvent(capture_begin_event.Pass()); 85 cast_environment_->logger()->DispatchFrameEvent(capture_begin_event.Pass());
85 86
86 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent()); 87 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent());
87 capture_end_event->timestamp = now; 88 capture_end_event->timestamp = now;
88 capture_end_event->type = FRAME_CAPTURE_END; 89 capture_end_event->type = FRAME_CAPTURE_END;
89 capture_end_event->media_type = VIDEO_EVENT; 90 capture_end_event->media_type = VIDEO_EVENT;
90 capture_end_event->rtp_timestamp = i * 100; 91 capture_end_event->rtp_timestamp = RtpTimeTicks().Expand<uint32_t>(i * 100);
91 capture_end_event->width = width; 92 capture_end_event->width = width;
92 capture_end_event->height = height; 93 capture_end_event->height = height;
93 cast_environment_->logger()->DispatchFrameEvent(capture_end_event.Pass()); 94 cast_environment_->logger()->DispatchFrameEvent(capture_end_event.Pass());
94 95
95 scoped_ptr<FrameEvent> decoded_event(new FrameEvent()); 96 scoped_ptr<FrameEvent> decoded_event(new FrameEvent());
96 decoded_event->timestamp = now; 97 decoded_event->timestamp = now;
97 decoded_event->type = FRAME_DECODED; 98 decoded_event->type = FRAME_DECODED;
98 decoded_event->media_type = VIDEO_EVENT; 99 decoded_event->media_type = VIDEO_EVENT;
99 decoded_event->rtp_timestamp = i * 100; 100 decoded_event->rtp_timestamp = RtpTimeTicks().Expand<uint32_t>(i * 100);
100 decoded_event->frame_id = 0; 101 decoded_event->frame_id = 0;
101 cast_environment_->logger()->DispatchFrameEvent(decoded_event.Pass()); 102 cast_environment_->logger()->DispatchFrameEvent(decoded_event.Pass());
102 103
103 width += 160; 104 width += 160;
104 height += 90; 105 height += 90;
105 } 106 }
106 107
107 GetEventsAndReset(); 108 GetEventsAndReset();
108 109
109 ASSERT_EQ(10u, frame_events_.size()); 110 ASSERT_EQ(10u, frame_events_.size());
(...skipping 13 matching lines...) Expand all
123 Init(AUDIO_EVENT); 124 Init(AUDIO_EVENT);
124 125
125 base::TimeTicks now(testing_clock_->NowTicks()); 126 base::TimeTicks now(testing_clock_->NowTicks());
126 127
127 // Entry with RTP timestamp 0 should get dropped. 128 // Entry with RTP timestamp 0 should get dropped.
128 for (int i = 0; i < 11; i++) { 129 for (int i = 0; i < 11; i++) {
129 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); 130 scoped_ptr<PacketEvent> receive_event(new PacketEvent());
130 receive_event->timestamp = now; 131 receive_event->timestamp = now;
131 receive_event->type = PACKET_RECEIVED; 132 receive_event->type = PACKET_RECEIVED;
132 receive_event->media_type = AUDIO_EVENT; 133 receive_event->media_type = AUDIO_EVENT;
133 receive_event->rtp_timestamp = i * 100; 134 receive_event->rtp_timestamp = RtpTimeTicks().Expand<uint32_t>(i * 100);
134 receive_event->frame_id = 0; 135 receive_event->frame_id = 0;
135 receive_event->packet_id = i; 136 receive_event->packet_id = i;
136 receive_event->max_packet_id = 10; 137 receive_event->max_packet_id = 10;
137 receive_event->size = 123; 138 receive_event->size = 123;
138 cast_environment_->logger()->DispatchPacketEvent(receive_event.Pass()); 139 cast_environment_->logger()->DispatchPacketEvent(receive_event.Pass());
139 } 140 }
140 141
141 GetEventsAndReset(); 142 GetEventsAndReset();
142 143
143 ASSERT_EQ(10u, packet_events_.size()); 144 ASSERT_EQ(10u, packet_events_.size());
144 EXPECT_EQ(100u, packet_events_.front()->relative_rtp_timestamp()); 145 EXPECT_EQ(100u, packet_events_.front()->relative_rtp_timestamp());
145 EXPECT_EQ(1000u, packet_events_.back()->relative_rtp_timestamp()); 146 EXPECT_EQ(1000u, packet_events_.back()->relative_rtp_timestamp());
146 } 147 }
147 148
148 TEST_F(EncodingEventSubscriberTest, EventFiltering) { 149 TEST_F(EncodingEventSubscriberTest, EventFiltering) {
149 Init(VIDEO_EVENT); 150 Init(VIDEO_EVENT);
150 151
151 base::TimeTicks now(testing_clock_->NowTicks()); 152 base::TimeTicks now(testing_clock_->NowTicks());
152 RtpTimestamp rtp_timestamp = 100; 153 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100));
153 scoped_ptr<FrameEvent> video_event(new FrameEvent()); 154 scoped_ptr<FrameEvent> video_event(new FrameEvent());
154 video_event->timestamp = now; 155 video_event->timestamp = now;
155 video_event->type = FRAME_DECODED; 156 video_event->type = FRAME_DECODED;
156 video_event->media_type = VIDEO_EVENT; 157 video_event->media_type = VIDEO_EVENT;
157 video_event->rtp_timestamp = rtp_timestamp; 158 video_event->rtp_timestamp = rtp_timestamp;
158 video_event->frame_id = 0; 159 video_event->frame_id = 0;
159 cast_environment_->logger()->DispatchFrameEvent(video_event.Pass()); 160 cast_environment_->logger()->DispatchFrameEvent(video_event.Pass());
160 161
161 // This is an AUDIO_EVENT and shouldn't be processed by the subscriber. 162 // This is an AUDIO_EVENT and shouldn't be processed by the subscriber.
162 scoped_ptr<FrameEvent> audio_event(new FrameEvent()); 163 scoped_ptr<FrameEvent> audio_event(new FrameEvent());
(...skipping 16 matching lines...) Expand all
179 frame_event->event_type(0)); 180 frame_event->event_type(0));
180 181
181 GetEventsAndReset(); 182 GetEventsAndReset();
182 183
183 EXPECT_TRUE(packet_events_.empty()); 184 EXPECT_TRUE(packet_events_.empty());
184 } 185 }
185 186
186 TEST_F(EncodingEventSubscriberTest, FrameEvent) { 187 TEST_F(EncodingEventSubscriberTest, FrameEvent) {
187 Init(VIDEO_EVENT); 188 Init(VIDEO_EVENT);
188 base::TimeTicks now(testing_clock_->NowTicks()); 189 base::TimeTicks now(testing_clock_->NowTicks());
189 RtpTimestamp rtp_timestamp = 100; 190 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100));
190 scoped_ptr<FrameEvent> decode_event(new FrameEvent()); 191 scoped_ptr<FrameEvent> decode_event(new FrameEvent());
191 decode_event->timestamp = now; 192 decode_event->timestamp = now;
192 decode_event->type = FRAME_DECODED; 193 decode_event->type = FRAME_DECODED;
193 decode_event->media_type = VIDEO_EVENT; 194 decode_event->media_type = VIDEO_EVENT;
194 decode_event->rtp_timestamp = rtp_timestamp; 195 decode_event->rtp_timestamp = rtp_timestamp;
195 decode_event->frame_id = 0; 196 decode_event->frame_id = 0;
196 cast_environment_->logger()->DispatchFrameEvent(decode_event.Pass()); 197 cast_environment_->logger()->DispatchFrameEvent(decode_event.Pass());
197 198
198 GetEventsAndReset(); 199 GetEventsAndReset();
199 200
200 ASSERT_EQ(1u, frame_events_.size()); 201 ASSERT_EQ(1u, frame_events_.size());
201 202
202 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
203 FrameEventList::iterator it = frame_events_.begin(); 203 FrameEventList::iterator it = frame_events_.begin();
204 204
205 linked_ptr<AggregatedFrameEvent> event = *it; 205 linked_ptr<AggregatedFrameEvent> event = *it;
206 206
207 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 207 EXPECT_EQ((rtp_timestamp - first_rtp_timestamp_).lower_32_bits(),
208 event->relative_rtp_timestamp());
208 209
209 ASSERT_EQ(1, event->event_type_size()); 210 ASSERT_EQ(1, event->event_type_size());
210 EXPECT_EQ(media::cast::proto::FRAME_DECODED, event->event_type(0)); 211 EXPECT_EQ(media::cast::proto::FRAME_DECODED, event->event_type(0));
211 ASSERT_EQ(1, event->event_timestamp_ms_size()); 212 ASSERT_EQ(1, event->event_timestamp_ms_size());
212 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0)); 213 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0));
213 214
214 EXPECT_EQ(0, event->encoded_frame_size()); 215 EXPECT_EQ(0, event->encoded_frame_size());
215 EXPECT_EQ(0, event->delay_millis()); 216 EXPECT_EQ(0, event->delay_millis());
216 217
217 GetEventsAndReset(); 218 GetEventsAndReset();
218 EXPECT_TRUE(frame_events_.empty()); 219 EXPECT_TRUE(frame_events_.empty());
219 } 220 }
220 221
221 TEST_F(EncodingEventSubscriberTest, FrameEventDelay) { 222 TEST_F(EncodingEventSubscriberTest, FrameEventDelay) {
222 Init(AUDIO_EVENT); 223 Init(AUDIO_EVENT);
223 base::TimeTicks now(testing_clock_->NowTicks()); 224 base::TimeTicks now(testing_clock_->NowTicks());
224 RtpTimestamp rtp_timestamp = 100; 225 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100));
225 int delay_ms = 100; 226 int delay_ms = 100;
226 scoped_ptr<FrameEvent> playout_event(new FrameEvent()); 227 scoped_ptr<FrameEvent> playout_event(new FrameEvent());
227 playout_event->timestamp = now; 228 playout_event->timestamp = now;
228 playout_event->type = FRAME_PLAYOUT; 229 playout_event->type = FRAME_PLAYOUT;
229 playout_event->media_type = AUDIO_EVENT; 230 playout_event->media_type = AUDIO_EVENT;
230 playout_event->rtp_timestamp = rtp_timestamp; 231 playout_event->rtp_timestamp = rtp_timestamp;
231 playout_event->frame_id = 0; 232 playout_event->frame_id = 0;
232 playout_event->delay_delta = base::TimeDelta::FromMilliseconds(delay_ms); 233 playout_event->delay_delta = base::TimeDelta::FromMilliseconds(delay_ms);
233 cast_environment_->logger()->DispatchFrameEvent(playout_event.Pass()); 234 cast_environment_->logger()->DispatchFrameEvent(playout_event.Pass());
234 235
235 GetEventsAndReset(); 236 GetEventsAndReset();
236 237
237 ASSERT_EQ(1u, frame_events_.size()); 238 ASSERT_EQ(1u, frame_events_.size());
238 239
239 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
240 FrameEventList::iterator it = frame_events_.begin(); 240 FrameEventList::iterator it = frame_events_.begin();
241 241
242 linked_ptr<AggregatedFrameEvent> event = *it; 242 linked_ptr<AggregatedFrameEvent> event = *it;
243 243
244 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 244 EXPECT_EQ((rtp_timestamp - first_rtp_timestamp_).lower_32_bits(),
245 event->relative_rtp_timestamp());
245 246
246 ASSERT_EQ(1, event->event_type_size()); 247 ASSERT_EQ(1, event->event_type_size());
247 EXPECT_EQ(media::cast::proto::FRAME_PLAYOUT, event->event_type(0)); 248 EXPECT_EQ(media::cast::proto::FRAME_PLAYOUT, event->event_type(0));
248 ASSERT_EQ(1, event->event_timestamp_ms_size()); 249 ASSERT_EQ(1, event->event_timestamp_ms_size());
249 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0)); 250 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0));
250 251
251 EXPECT_EQ(0, event->encoded_frame_size()); 252 EXPECT_EQ(0, event->encoded_frame_size());
252 EXPECT_EQ(100, event->delay_millis()); 253 EXPECT_EQ(100, event->delay_millis());
253 EXPECT_FALSE(event->has_key_frame()); 254 EXPECT_FALSE(event->has_key_frame());
254 } 255 }
255 256
256 TEST_F(EncodingEventSubscriberTest, FrameEventSize) { 257 TEST_F(EncodingEventSubscriberTest, FrameEventSize) {
257 Init(VIDEO_EVENT); 258 Init(VIDEO_EVENT);
258 base::TimeTicks now(testing_clock_->NowTicks()); 259 base::TimeTicks now(testing_clock_->NowTicks());
259 RtpTimestamp rtp_timestamp = 100; 260 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100));
260 int size = 123; 261 int size = 123;
261 bool key_frame = true; 262 bool key_frame = true;
262 int target_bitrate = 1024; 263 int target_bitrate = 1024;
263 double encoder_cpu_utilization = 0.90; 264 double encoder_cpu_utilization = 0.90;
264 double idealized_bitrate_utilization = 0.42; 265 double idealized_bitrate_utilization = 0.42;
265 scoped_ptr<FrameEvent> encode_event(new FrameEvent()); 266 scoped_ptr<FrameEvent> encode_event(new FrameEvent());
266 encode_event->timestamp = now; 267 encode_event->timestamp = now;
267 encode_event->type = FRAME_ENCODED; 268 encode_event->type = FRAME_ENCODED;
268 encode_event->media_type = VIDEO_EVENT; 269 encode_event->media_type = VIDEO_EVENT;
269 encode_event->rtp_timestamp = rtp_timestamp; 270 encode_event->rtp_timestamp = rtp_timestamp;
270 encode_event->frame_id = 0; 271 encode_event->frame_id = 0;
271 encode_event->size = size; 272 encode_event->size = size;
272 encode_event->key_frame = key_frame; 273 encode_event->key_frame = key_frame;
273 encode_event->target_bitrate = target_bitrate; 274 encode_event->target_bitrate = target_bitrate;
274 encode_event->encoder_cpu_utilization = encoder_cpu_utilization; 275 encode_event->encoder_cpu_utilization = encoder_cpu_utilization;
275 encode_event->idealized_bitrate_utilization = idealized_bitrate_utilization; 276 encode_event->idealized_bitrate_utilization = idealized_bitrate_utilization;
276 cast_environment_->logger()->DispatchFrameEvent(encode_event.Pass()); 277 cast_environment_->logger()->DispatchFrameEvent(encode_event.Pass());
277 278
278 GetEventsAndReset(); 279 GetEventsAndReset();
279 280
280 ASSERT_EQ(1u, frame_events_.size()); 281 ASSERT_EQ(1u, frame_events_.size());
281 282
282 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
283 FrameEventList::iterator it = frame_events_.begin(); 283 FrameEventList::iterator it = frame_events_.begin();
284 284
285 linked_ptr<AggregatedFrameEvent> event = *it; 285 linked_ptr<AggregatedFrameEvent> event = *it;
286 286
287 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 287 EXPECT_EQ((rtp_timestamp - first_rtp_timestamp_).lower_32_bits(),
288 event->relative_rtp_timestamp());
288 289
289 ASSERT_EQ(1, event->event_type_size()); 290 ASSERT_EQ(1, event->event_type_size());
290 EXPECT_EQ(media::cast::proto::FRAME_ENCODED, event->event_type(0)); 291 EXPECT_EQ(media::cast::proto::FRAME_ENCODED, event->event_type(0));
291 ASSERT_EQ(1, event->event_timestamp_ms_size()); 292 ASSERT_EQ(1, event->event_timestamp_ms_size());
292 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0)); 293 EXPECT_EQ(InMilliseconds(now), event->event_timestamp_ms(0));
293 294
294 EXPECT_EQ(size, event->encoded_frame_size()); 295 EXPECT_EQ(size, event->encoded_frame_size());
295 EXPECT_EQ(0, event->delay_millis()); 296 EXPECT_EQ(0, event->delay_millis());
296 EXPECT_TRUE(event->has_key_frame()); 297 EXPECT_TRUE(event->has_key_frame());
297 EXPECT_EQ(key_frame, event->key_frame()); 298 EXPECT_EQ(key_frame, event->key_frame());
298 EXPECT_EQ(target_bitrate, event->target_bitrate()); 299 EXPECT_EQ(target_bitrate, event->target_bitrate());
299 EXPECT_EQ(90, event->encoder_cpu_percent_utilized()); 300 EXPECT_EQ(90, event->encoder_cpu_percent_utilized());
300 EXPECT_EQ(42, event->idealized_bitrate_percent_utilized()); 301 EXPECT_EQ(42, event->idealized_bitrate_percent_utilized());
301 } 302 }
302 303
303 TEST_F(EncodingEventSubscriberTest, MultipleFrameEvents) { 304 TEST_F(EncodingEventSubscriberTest, MultipleFrameEvents) {
304 Init(AUDIO_EVENT); 305 Init(AUDIO_EVENT);
305 RtpTimestamp rtp_timestamp1 = 100; 306 RtpTimeTicks rtp_timestamp1 = RtpTimeTicks().Expand(UINT32_C(100));
Irfan 2015/12/09 21:24:28 Should we add an explicit constructor so we can do
miu 2015/12/10 00:38:36 No. I explicitly want to avoid this since it woul
306 RtpTimestamp rtp_timestamp2 = 200; 307 RtpTimeTicks rtp_timestamp2 = rtp_timestamp1.Expand(UINT32_C(200));
307 base::TimeTicks now1(testing_clock_->NowTicks()); 308 base::TimeTicks now1(testing_clock_->NowTicks());
308 scoped_ptr<FrameEvent> playout_event(new FrameEvent()); 309 scoped_ptr<FrameEvent> playout_event(new FrameEvent());
309 playout_event->timestamp = now1; 310 playout_event->timestamp = now1;
310 playout_event->type = FRAME_PLAYOUT; 311 playout_event->type = FRAME_PLAYOUT;
311 playout_event->media_type = AUDIO_EVENT; 312 playout_event->media_type = AUDIO_EVENT;
312 playout_event->rtp_timestamp = rtp_timestamp1; 313 playout_event->rtp_timestamp = rtp_timestamp1;
313 playout_event->frame_id = 0; 314 playout_event->frame_id = 0;
314 playout_event->delay_delta = base::TimeDelta::FromMilliseconds(100); 315 playout_event->delay_delta = base::TimeDelta::FromMilliseconds(100);
315 cast_environment_->logger()->DispatchFrameEvent(playout_event.Pass()); 316 cast_environment_->logger()->DispatchFrameEvent(playout_event.Pass());
316 317
(...skipping 17 matching lines...) Expand all
334 decode_event->type = FRAME_DECODED; 335 decode_event->type = FRAME_DECODED;
335 decode_event->media_type = AUDIO_EVENT; 336 decode_event->media_type = AUDIO_EVENT;
336 decode_event->rtp_timestamp = rtp_timestamp1; 337 decode_event->rtp_timestamp = rtp_timestamp1;
337 decode_event->frame_id = 0; 338 decode_event->frame_id = 0;
338 cast_environment_->logger()->DispatchFrameEvent(decode_event.Pass()); 339 cast_environment_->logger()->DispatchFrameEvent(decode_event.Pass());
339 340
340 GetEventsAndReset(); 341 GetEventsAndReset();
341 342
342 ASSERT_EQ(2u, frame_events_.size()); 343 ASSERT_EQ(2u, frame_events_.size());
343 344
344 RtpTimestamp relative_rtp_timestamp = rtp_timestamp1 - first_rtp_timestamp_;
345 FrameEventList::iterator it = frame_events_.begin(); 345 FrameEventList::iterator it = frame_events_.begin();
346 346
347 linked_ptr<AggregatedFrameEvent> event = *it; 347 linked_ptr<AggregatedFrameEvent> event = *it;
348 348
349 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 349 EXPECT_EQ((rtp_timestamp1 - first_rtp_timestamp_).lower_32_bits(),
350 event->relative_rtp_timestamp());
350 351
351 ASSERT_EQ(2, event->event_type_size()); 352 ASSERT_EQ(2, event->event_type_size());
352 EXPECT_EQ(media::cast::proto::FRAME_PLAYOUT, event->event_type(0)); 353 EXPECT_EQ(media::cast::proto::FRAME_PLAYOUT, event->event_type(0));
353 EXPECT_EQ(media::cast::proto::FRAME_DECODED, event->event_type(1)); 354 EXPECT_EQ(media::cast::proto::FRAME_DECODED, event->event_type(1));
354 355
355 ASSERT_EQ(2, event->event_timestamp_ms_size()); 356 ASSERT_EQ(2, event->event_timestamp_ms_size());
356 EXPECT_EQ(InMilliseconds(now1), event->event_timestamp_ms(0)); 357 EXPECT_EQ(InMilliseconds(now1), event->event_timestamp_ms(0));
357 EXPECT_EQ(InMilliseconds(now3), event->event_timestamp_ms(1)); 358 EXPECT_EQ(InMilliseconds(now3), event->event_timestamp_ms(1));
358 359
359 EXPECT_FALSE(event->has_key_frame()); 360 EXPECT_FALSE(event->has_key_frame());
360 361
361 relative_rtp_timestamp = rtp_timestamp2 - first_rtp_timestamp_;
362 ++it; 362 ++it;
363 363
364 event = *it; 364 event = *it;
365 365
366 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 366 EXPECT_EQ((rtp_timestamp2 - first_rtp_timestamp_).lower_32_bits(),
367 event->relative_rtp_timestamp());
367 368
368 ASSERT_EQ(1, event->event_type_size()); 369 ASSERT_EQ(1, event->event_type_size());
369 EXPECT_EQ(media::cast::proto::FRAME_ENCODED, event->event_type(0)); 370 EXPECT_EQ(media::cast::proto::FRAME_ENCODED, event->event_type(0));
370 371
371 ASSERT_EQ(1, event->event_timestamp_ms_size()); 372 ASSERT_EQ(1, event->event_timestamp_ms_size());
372 EXPECT_EQ(InMilliseconds(now2), event->event_timestamp_ms(0)); 373 EXPECT_EQ(InMilliseconds(now2), event->event_timestamp_ms(0));
373 374
374 EXPECT_FALSE(event->has_key_frame()); 375 EXPECT_FALSE(event->has_key_frame());
375 EXPECT_EQ(44, event->encoder_cpu_percent_utilized()); 376 EXPECT_EQ(44, event->encoder_cpu_percent_utilized());
376 EXPECT_EQ(55, event->idealized_bitrate_percent_utilized()); 377 EXPECT_EQ(55, event->idealized_bitrate_percent_utilized());
377 } 378 }
378 379
379 TEST_F(EncodingEventSubscriberTest, PacketEvent) { 380 TEST_F(EncodingEventSubscriberTest, PacketEvent) {
380 Init(AUDIO_EVENT); 381 Init(AUDIO_EVENT);
381 base::TimeTicks now(testing_clock_->NowTicks()); 382 base::TimeTicks now(testing_clock_->NowTicks());
382 RtpTimestamp rtp_timestamp = 100; 383 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100));
383 int packet_id = 2; 384 int packet_id = 2;
384 int size = 100; 385 int size = 100;
385 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); 386 scoped_ptr<PacketEvent> receive_event(new PacketEvent());
386 receive_event->timestamp = now; 387 receive_event->timestamp = now;
387 receive_event->type = PACKET_RECEIVED; 388 receive_event->type = PACKET_RECEIVED;
388 receive_event->media_type = AUDIO_EVENT; 389 receive_event->media_type = AUDIO_EVENT;
389 receive_event->rtp_timestamp = rtp_timestamp; 390 receive_event->rtp_timestamp = rtp_timestamp;
390 receive_event->frame_id = 0; 391 receive_event->frame_id = 0;
391 receive_event->packet_id = packet_id; 392 receive_event->packet_id = packet_id;
392 receive_event->max_packet_id = 10; 393 receive_event->max_packet_id = 10;
393 receive_event->size = size; 394 receive_event->size = size;
394 cast_environment_->logger()->DispatchPacketEvent(receive_event.Pass()); 395 cast_environment_->logger()->DispatchPacketEvent(receive_event.Pass());
395 396
396 GetEventsAndReset(); 397 GetEventsAndReset();
397 398
398 ASSERT_EQ(1u, packet_events_.size()); 399 ASSERT_EQ(1u, packet_events_.size());
399 400
400 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
401 PacketEventList::iterator it = packet_events_.begin(); 401 PacketEventList::iterator it = packet_events_.begin();
402 402
403 linked_ptr<AggregatedPacketEvent> event = *it; 403 linked_ptr<AggregatedPacketEvent> event = *it;
404 404
405 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 405 EXPECT_EQ((rtp_timestamp - first_rtp_timestamp_).lower_32_bits(),
406 event->relative_rtp_timestamp());
406 407
407 ASSERT_EQ(1, event->base_packet_event_size()); 408 ASSERT_EQ(1, event->base_packet_event_size());
408 const BasePacketEvent& base_event = event->base_packet_event(0); 409 const BasePacketEvent& base_event = event->base_packet_event(0);
409 EXPECT_EQ(packet_id, base_event.packet_id()); 410 EXPECT_EQ(packet_id, base_event.packet_id());
410 ASSERT_EQ(1, base_event.event_type_size()); 411 ASSERT_EQ(1, base_event.event_type_size());
411 EXPECT_EQ(media::cast::proto::PACKET_RECEIVED, 412 EXPECT_EQ(media::cast::proto::PACKET_RECEIVED,
412 base_event.event_type(0)); 413 base_event.event_type(0));
413 ASSERT_EQ(1, base_event.event_timestamp_ms_size()); 414 ASSERT_EQ(1, base_event.event_timestamp_ms_size());
414 EXPECT_EQ(InMilliseconds(now), base_event.event_timestamp_ms(0)); 415 EXPECT_EQ(InMilliseconds(now), base_event.event_timestamp_ms(0));
415 EXPECT_EQ(size, base_event.size()); 416 EXPECT_EQ(size, base_event.size());
416 417
417 GetEventsAndReset(); 418 GetEventsAndReset();
418 EXPECT_TRUE(packet_events_.empty()); 419 EXPECT_TRUE(packet_events_.empty());
419 } 420 }
420 421
421 TEST_F(EncodingEventSubscriberTest, MultiplePacketEventsForPacket) { 422 TEST_F(EncodingEventSubscriberTest, MultiplePacketEventsForPacket) {
422 Init(VIDEO_EVENT); 423 Init(VIDEO_EVENT);
423 base::TimeTicks now1(testing_clock_->NowTicks()); 424 base::TimeTicks now1(testing_clock_->NowTicks());
424 RtpTimestamp rtp_timestamp = 100; 425 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100));
425 int packet_id = 2; 426 int packet_id = 2;
426 int size = 100; 427 int size = 100;
427 scoped_ptr<PacketEvent> send_event(new PacketEvent()); 428 scoped_ptr<PacketEvent> send_event(new PacketEvent());
428 send_event->timestamp = now1; 429 send_event->timestamp = now1;
429 send_event->type = PACKET_SENT_TO_NETWORK; 430 send_event->type = PACKET_SENT_TO_NETWORK;
430 send_event->media_type = VIDEO_EVENT; 431 send_event->media_type = VIDEO_EVENT;
431 send_event->rtp_timestamp = rtp_timestamp; 432 send_event->rtp_timestamp = rtp_timestamp;
432 send_event->frame_id = 0; 433 send_event->frame_id = 0;
433 send_event->packet_id = packet_id; 434 send_event->packet_id = packet_id;
434 send_event->max_packet_id = 10; 435 send_event->max_packet_id = 10;
(...skipping 10 matching lines...) Expand all
445 retransmit_event->frame_id = 0; 446 retransmit_event->frame_id = 0;
446 retransmit_event->packet_id = packet_id; 447 retransmit_event->packet_id = packet_id;
447 retransmit_event->max_packet_id = 10; 448 retransmit_event->max_packet_id = 10;
448 retransmit_event->size = size; 449 retransmit_event->size = size;
449 cast_environment_->logger()->DispatchPacketEvent(retransmit_event.Pass()); 450 cast_environment_->logger()->DispatchPacketEvent(retransmit_event.Pass());
450 451
451 GetEventsAndReset(); 452 GetEventsAndReset();
452 453
453 ASSERT_EQ(1u, packet_events_.size()); 454 ASSERT_EQ(1u, packet_events_.size());
454 455
455 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
456 PacketEventList::iterator it = packet_events_.begin(); 456 PacketEventList::iterator it = packet_events_.begin();
457 457
458 linked_ptr<AggregatedPacketEvent> event = *it; 458 linked_ptr<AggregatedPacketEvent> event = *it;
459 459
460 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 460 EXPECT_EQ((rtp_timestamp - first_rtp_timestamp_).lower_32_bits(),
461 event->relative_rtp_timestamp());
461 462
462 ASSERT_EQ(1, event->base_packet_event_size()); 463 ASSERT_EQ(1, event->base_packet_event_size());
463 const BasePacketEvent& base_event = event->base_packet_event(0); 464 const BasePacketEvent& base_event = event->base_packet_event(0);
464 EXPECT_EQ(packet_id, base_event.packet_id()); 465 EXPECT_EQ(packet_id, base_event.packet_id());
465 ASSERT_EQ(2, base_event.event_type_size()); 466 ASSERT_EQ(2, base_event.event_type_size());
466 EXPECT_EQ(media::cast::proto::PACKET_SENT_TO_NETWORK, 467 EXPECT_EQ(media::cast::proto::PACKET_SENT_TO_NETWORK,
467 base_event.event_type(0)); 468 base_event.event_type(0));
468 EXPECT_EQ(media::cast::proto::PACKET_RETRANSMITTED, 469 EXPECT_EQ(media::cast::proto::PACKET_RETRANSMITTED,
469 base_event.event_type(1)); 470 base_event.event_type(1));
470 ASSERT_EQ(2, base_event.event_timestamp_ms_size()); 471 ASSERT_EQ(2, base_event.event_timestamp_ms_size());
471 EXPECT_EQ(InMilliseconds(now1), base_event.event_timestamp_ms(0)); 472 EXPECT_EQ(InMilliseconds(now1), base_event.event_timestamp_ms(0));
472 EXPECT_EQ(InMilliseconds(now2), base_event.event_timestamp_ms(1)); 473 EXPECT_EQ(InMilliseconds(now2), base_event.event_timestamp_ms(1));
473 } 474 }
474 475
475 TEST_F(EncodingEventSubscriberTest, MultiplePacketEventsForFrame) { 476 TEST_F(EncodingEventSubscriberTest, MultiplePacketEventsForFrame) {
476 Init(VIDEO_EVENT); 477 Init(VIDEO_EVENT);
477 base::TimeTicks now1(testing_clock_->NowTicks()); 478 base::TimeTicks now1(testing_clock_->NowTicks());
478 RtpTimestamp rtp_timestamp = 100; 479 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100));
479 int packet_id_1 = 2; 480 int packet_id_1 = 2;
480 int packet_id_2 = 3; 481 int packet_id_2 = 3;
481 int size = 100; 482 int size = 100;
482 scoped_ptr<PacketEvent> send_event(new PacketEvent()); 483 scoped_ptr<PacketEvent> send_event(new PacketEvent());
483 send_event->timestamp = now1; 484 send_event->timestamp = now1;
484 send_event->type = PACKET_SENT_TO_NETWORK; 485 send_event->type = PACKET_SENT_TO_NETWORK;
485 send_event->media_type = VIDEO_EVENT; 486 send_event->media_type = VIDEO_EVENT;
486 send_event->rtp_timestamp = rtp_timestamp; 487 send_event->rtp_timestamp = rtp_timestamp;
487 send_event->frame_id = 0; 488 send_event->frame_id = 0;
488 send_event->packet_id = packet_id_1; 489 send_event->packet_id = packet_id_1;
(...skipping 11 matching lines...) Expand all
500 retransmit_event->frame_id = 0; 501 retransmit_event->frame_id = 0;
501 retransmit_event->packet_id = packet_id_2; 502 retransmit_event->packet_id = packet_id_2;
502 retransmit_event->max_packet_id = 10; 503 retransmit_event->max_packet_id = 10;
503 retransmit_event->size = size; 504 retransmit_event->size = size;
504 cast_environment_->logger()->DispatchPacketEvent(retransmit_event.Pass()); 505 cast_environment_->logger()->DispatchPacketEvent(retransmit_event.Pass());
505 506
506 GetEventsAndReset(); 507 GetEventsAndReset();
507 508
508 ASSERT_EQ(1u, packet_events_.size()); 509 ASSERT_EQ(1u, packet_events_.size());
509 510
510 RtpTimestamp relative_rtp_timestamp = rtp_timestamp - first_rtp_timestamp_;
511 PacketEventList::iterator it = packet_events_.begin(); 511 PacketEventList::iterator it = packet_events_.begin();
512 512
513 linked_ptr<AggregatedPacketEvent> event = *it; 513 linked_ptr<AggregatedPacketEvent> event = *it;
514 514
515 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 515 EXPECT_EQ((rtp_timestamp - first_rtp_timestamp_).lower_32_bits(),
516 event->relative_rtp_timestamp());
516 517
517 ASSERT_EQ(2, event->base_packet_event_size()); 518 ASSERT_EQ(2, event->base_packet_event_size());
518 const BasePacketEvent& base_event = event->base_packet_event(0); 519 const BasePacketEvent& base_event = event->base_packet_event(0);
519 EXPECT_EQ(packet_id_1, base_event.packet_id()); 520 EXPECT_EQ(packet_id_1, base_event.packet_id());
520 ASSERT_EQ(1, base_event.event_type_size()); 521 ASSERT_EQ(1, base_event.event_type_size());
521 EXPECT_EQ(media::cast::proto::PACKET_SENT_TO_NETWORK, 522 EXPECT_EQ(media::cast::proto::PACKET_SENT_TO_NETWORK,
522 base_event.event_type(0)); 523 base_event.event_type(0));
523 ASSERT_EQ(1, base_event.event_timestamp_ms_size()); 524 ASSERT_EQ(1, base_event.event_timestamp_ms_size());
524 EXPECT_EQ(InMilliseconds(now1), base_event.event_timestamp_ms(0)); 525 EXPECT_EQ(InMilliseconds(now1), base_event.event_timestamp_ms(0));
525 526
526 const BasePacketEvent& base_event_2 = event->base_packet_event(1); 527 const BasePacketEvent& base_event_2 = event->base_packet_event(1);
527 EXPECT_EQ(packet_id_2, base_event_2.packet_id()); 528 EXPECT_EQ(packet_id_2, base_event_2.packet_id());
528 ASSERT_EQ(1, base_event_2.event_type_size()); 529 ASSERT_EQ(1, base_event_2.event_type_size());
529 EXPECT_EQ(media::cast::proto::PACKET_RETRANSMITTED, 530 EXPECT_EQ(media::cast::proto::PACKET_RETRANSMITTED,
530 base_event_2.event_type(0)); 531 base_event_2.event_type(0));
531 ASSERT_EQ(1, base_event_2.event_timestamp_ms_size()); 532 ASSERT_EQ(1, base_event_2.event_timestamp_ms_size());
532 EXPECT_EQ(InMilliseconds(now2), base_event_2.event_timestamp_ms(0)); 533 EXPECT_EQ(InMilliseconds(now2), base_event_2.event_timestamp_ms(0));
533 } 534 }
534 535
535 TEST_F(EncodingEventSubscriberTest, MultiplePacketEvents) { 536 TEST_F(EncodingEventSubscriberTest, MultiplePacketEvents) {
536 Init(VIDEO_EVENT); 537 Init(VIDEO_EVENT);
537 base::TimeTicks now1(testing_clock_->NowTicks()); 538 base::TimeTicks now1(testing_clock_->NowTicks());
538 RtpTimestamp rtp_timestamp_1 = 100; 539 RtpTimeTicks rtp_timestamp_1 = RtpTimeTicks().Expand(UINT32_C(100));
539 RtpTimestamp rtp_timestamp_2 = 200; 540 RtpTimeTicks rtp_timestamp_2 = rtp_timestamp_1.Expand(UINT32_C(200));
540 int packet_id_1 = 2; 541 int packet_id_1 = 2;
541 int packet_id_2 = 3; 542 int packet_id_2 = 3;
542 int size = 100; 543 int size = 100;
543 scoped_ptr<PacketEvent> send_event(new PacketEvent()); 544 scoped_ptr<PacketEvent> send_event(new PacketEvent());
544 send_event->timestamp = now1; 545 send_event->timestamp = now1;
545 send_event->type = PACKET_SENT_TO_NETWORK; 546 send_event->type = PACKET_SENT_TO_NETWORK;
546 send_event->media_type = VIDEO_EVENT; 547 send_event->media_type = VIDEO_EVENT;
547 send_event->rtp_timestamp = rtp_timestamp_1; 548 send_event->rtp_timestamp = rtp_timestamp_1;
548 send_event->frame_id = 0; 549 send_event->frame_id = 0;
549 send_event->packet_id = packet_id_1; 550 send_event->packet_id = packet_id_1;
(...skipping 11 matching lines...) Expand all
561 retransmit_event->frame_id = 0; 562 retransmit_event->frame_id = 0;
562 retransmit_event->packet_id = packet_id_2; 563 retransmit_event->packet_id = packet_id_2;
563 retransmit_event->max_packet_id = 10; 564 retransmit_event->max_packet_id = 10;
564 retransmit_event->size = size; 565 retransmit_event->size = size;
565 cast_environment_->logger()->DispatchPacketEvent(retransmit_event.Pass()); 566 cast_environment_->logger()->DispatchPacketEvent(retransmit_event.Pass());
566 567
567 GetEventsAndReset(); 568 GetEventsAndReset();
568 569
569 ASSERT_EQ(2u, packet_events_.size()); 570 ASSERT_EQ(2u, packet_events_.size());
570 571
571 RtpTimestamp relative_rtp_timestamp = rtp_timestamp_1 - first_rtp_timestamp_;
572 PacketEventList::iterator it = packet_events_.begin(); 572 PacketEventList::iterator it = packet_events_.begin();
573 573
574 linked_ptr<AggregatedPacketEvent> event = *it; 574 linked_ptr<AggregatedPacketEvent> event = *it;
575 575
576 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 576 EXPECT_EQ((rtp_timestamp_1 - first_rtp_timestamp_).lower_32_bits(),
577 event->relative_rtp_timestamp());
577 578
578 ASSERT_EQ(1, event->base_packet_event_size()); 579 ASSERT_EQ(1, event->base_packet_event_size());
579 const BasePacketEvent& base_event = event->base_packet_event(0); 580 const BasePacketEvent& base_event = event->base_packet_event(0);
580 EXPECT_EQ(packet_id_1, base_event.packet_id()); 581 EXPECT_EQ(packet_id_1, base_event.packet_id());
581 ASSERT_EQ(1, base_event.event_type_size()); 582 ASSERT_EQ(1, base_event.event_type_size());
582 EXPECT_EQ(media::cast::proto::PACKET_SENT_TO_NETWORK, 583 EXPECT_EQ(media::cast::proto::PACKET_SENT_TO_NETWORK,
583 base_event.event_type(0)); 584 base_event.event_type(0));
584 ASSERT_EQ(1, base_event.event_timestamp_ms_size()); 585 ASSERT_EQ(1, base_event.event_timestamp_ms_size());
585 EXPECT_EQ(InMilliseconds(now1), base_event.event_timestamp_ms(0)); 586 EXPECT_EQ(InMilliseconds(now1), base_event.event_timestamp_ms(0));
586 587
587 relative_rtp_timestamp = rtp_timestamp_2 - first_rtp_timestamp_;
588 ++it; 588 ++it;
589 ASSERT_TRUE(it != packet_events_.end()); 589 ASSERT_TRUE(it != packet_events_.end());
590 590
591 event = *it; 591 event = *it;
592 EXPECT_EQ(relative_rtp_timestamp, event->relative_rtp_timestamp()); 592 EXPECT_EQ((rtp_timestamp_2 - first_rtp_timestamp_).lower_32_bits(),
593 event->relative_rtp_timestamp());
593 594
594 ASSERT_EQ(1, event->base_packet_event_size()); 595 ASSERT_EQ(1, event->base_packet_event_size());
595 const BasePacketEvent& base_event_2 = event->base_packet_event(0); 596 const BasePacketEvent& base_event_2 = event->base_packet_event(0);
596 EXPECT_EQ(packet_id_2, base_event_2.packet_id()); 597 EXPECT_EQ(packet_id_2, base_event_2.packet_id());
597 ASSERT_EQ(1, base_event_2.event_type_size()); 598 ASSERT_EQ(1, base_event_2.event_type_size());
598 EXPECT_EQ(media::cast::proto::PACKET_RETRANSMITTED, 599 EXPECT_EQ(media::cast::proto::PACKET_RETRANSMITTED,
599 base_event_2.event_type(0)); 600 base_event_2.event_type(0));
600 ASSERT_EQ(1, base_event_2.event_timestamp_ms_size()); 601 ASSERT_EQ(1, base_event_2.event_timestamp_ms_size());
601 EXPECT_EQ(InMilliseconds(now2), base_event_2.event_timestamp_ms(0)); 602 EXPECT_EQ(InMilliseconds(now2), base_event_2.event_timestamp_ms(0));
602 } 603 }
603 604
604 TEST_F(EncodingEventSubscriberTest, FirstRtpTimestamp) { 605 TEST_F(EncodingEventSubscriberTest, FirstRtpTimeTicks) {
605 Init(VIDEO_EVENT); 606 Init(VIDEO_EVENT);
606 RtpTimestamp rtp_timestamp = 12345; 607 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(12345));
607 base::TimeTicks now(testing_clock_->NowTicks()); 608 base::TimeTicks now(testing_clock_->NowTicks());
608 609
609 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); 610 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent());
610 capture_begin_event->timestamp = now; 611 capture_begin_event->timestamp = now;
611 capture_begin_event->type = FRAME_CAPTURE_BEGIN; 612 capture_begin_event->type = FRAME_CAPTURE_BEGIN;
612 capture_begin_event->media_type = VIDEO_EVENT; 613 capture_begin_event->media_type = VIDEO_EVENT;
613 capture_begin_event->rtp_timestamp = rtp_timestamp; 614 capture_begin_event->rtp_timestamp = rtp_timestamp;
614 cast_environment_->logger()->DispatchFrameEvent(capture_begin_event.Pass()); 615 cast_environment_->logger()->DispatchFrameEvent(capture_begin_event.Pass());
615 616
616 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent()); 617 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent());
617 capture_end_event->timestamp = now; 618 capture_end_event->timestamp = now;
618 capture_end_event->type = FRAME_CAPTURE_END; 619 capture_end_event->type = FRAME_CAPTURE_END;
619 capture_end_event->media_type = VIDEO_EVENT; 620 capture_end_event->media_type = VIDEO_EVENT;
620 capture_end_event->rtp_timestamp = rtp_timestamp + 30; 621 capture_end_event->rtp_timestamp =
622 rtp_timestamp + RtpTimeDelta::FromTicks(30);
621 capture_end_event->width = 1280; 623 capture_end_event->width = 1280;
622 capture_end_event->height = 720; 624 capture_end_event->height = 720;
623 cast_environment_->logger()->DispatchFrameEvent(capture_end_event.Pass()); 625 cast_environment_->logger()->DispatchFrameEvent(capture_end_event.Pass());
624 626
625 GetEventsAndReset(); 627 GetEventsAndReset();
626 628
627 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_); 629 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_);
628 FrameEventList::iterator it = frame_events_.begin(); 630 FrameEventList::iterator it = frame_events_.begin();
629 ASSERT_NE(frame_events_.end(), it); 631 ASSERT_NE(frame_events_.end(), it);
630 EXPECT_EQ(0u, (*it)->relative_rtp_timestamp()); 632 EXPECT_EQ(0u, (*it)->relative_rtp_timestamp());
631 633
632 ++it; 634 ++it;
633 ASSERT_NE(frame_events_.end(), it); 635 ASSERT_NE(frame_events_.end(), it);
634 EXPECT_EQ(30u, (*it)->relative_rtp_timestamp()); 636 EXPECT_EQ(30u, (*it)->relative_rtp_timestamp());
635 EXPECT_EQ(1280, (*it)->width()); 637 EXPECT_EQ(1280, (*it)->width());
636 EXPECT_EQ(720, (*it)->height()); 638 EXPECT_EQ(720, (*it)->height());
637 639
638 rtp_timestamp = 67890; 640 rtp_timestamp = rtp_timestamp.Expand(UINT32_C(67890));
639 641
640 capture_begin_event.reset(new FrameEvent()); 642 capture_begin_event.reset(new FrameEvent());
641 capture_begin_event->timestamp = now; 643 capture_begin_event->timestamp = now;
642 capture_begin_event->type = FRAME_CAPTURE_BEGIN; 644 capture_begin_event->type = FRAME_CAPTURE_BEGIN;
643 capture_begin_event->media_type = VIDEO_EVENT; 645 capture_begin_event->media_type = VIDEO_EVENT;
644 capture_begin_event->rtp_timestamp = rtp_timestamp; 646 capture_begin_event->rtp_timestamp = rtp_timestamp;
645 cast_environment_->logger()->DispatchFrameEvent(capture_begin_event.Pass()); 647 cast_environment_->logger()->DispatchFrameEvent(capture_begin_event.Pass());
646 648
647 GetEventsAndReset(); 649 GetEventsAndReset();
648 650
649 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_); 651 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_);
650 } 652 }
651 653
652 TEST_F(EncodingEventSubscriberTest, RelativeRtpTimestampWrapAround) { 654 TEST_F(EncodingEventSubscriberTest, RelativeRtpTimeTicksWrapAround) {
653 Init(VIDEO_EVENT); 655 Init(VIDEO_EVENT);
654 RtpTimestamp rtp_timestamp = 0xffffffff - 20; 656 RtpTimeTicks rtp_timestamp = RtpTimeTicks() - RtpTimeDelta::FromTicks(20);
655 base::TimeTicks now(testing_clock_->NowTicks()); 657 base::TimeTicks now(testing_clock_->NowTicks());
656 658
657 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); 659 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent());
658 capture_begin_event->timestamp = now; 660 capture_begin_event->timestamp = now;
659 capture_begin_event->type = FRAME_CAPTURE_BEGIN; 661 capture_begin_event->type = FRAME_CAPTURE_BEGIN;
660 capture_begin_event->media_type = VIDEO_EVENT; 662 capture_begin_event->media_type = VIDEO_EVENT;
661 capture_begin_event->rtp_timestamp = rtp_timestamp; 663 capture_begin_event->rtp_timestamp = rtp_timestamp;
662 cast_environment_->logger()->DispatchFrameEvent(capture_begin_event.Pass()); 664 cast_environment_->logger()->DispatchFrameEvent(capture_begin_event.Pass());
663 665
664 // RtpTimestamp has now wrapped around. 666 // RtpTimeTicks has now wrapped around.
665 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent()); 667 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent());
666 capture_end_event->timestamp = now; 668 capture_end_event->timestamp = now;
667 capture_end_event->type = FRAME_CAPTURE_END; 669 capture_end_event->type = FRAME_CAPTURE_END;
668 capture_end_event->media_type = VIDEO_EVENT; 670 capture_end_event->media_type = VIDEO_EVENT;
669 capture_end_event->rtp_timestamp = rtp_timestamp + 30; 671 capture_end_event->rtp_timestamp =
672 rtp_timestamp + RtpTimeDelta::FromTicks(30);
670 capture_end_event->width = 1280; 673 capture_end_event->width = 1280;
671 capture_end_event->height = 720; 674 capture_end_event->height = 720;
672 cast_environment_->logger()->DispatchFrameEvent(capture_end_event.Pass()); 675 cast_environment_->logger()->DispatchFrameEvent(capture_end_event.Pass());
673 676
674 GetEventsAndReset(); 677 GetEventsAndReset();
675 678
676 FrameEventList::iterator it = frame_events_.begin(); 679 FrameEventList::iterator it = frame_events_.begin();
677 ASSERT_NE(frame_events_.end(), it); 680 ASSERT_NE(frame_events_.end(), it);
678 EXPECT_EQ(0u, (*it)->relative_rtp_timestamp()); 681 EXPECT_EQ(0u, (*it)->relative_rtp_timestamp());
679 682
680 ++it; 683 ++it;
681 ASSERT_NE(frame_events_.end(), it); 684 ASSERT_NE(frame_events_.end(), it);
682 EXPECT_EQ(30u, (*it)->relative_rtp_timestamp()); 685 EXPECT_EQ(30u, (*it)->relative_rtp_timestamp());
683 EXPECT_EQ(1280, (*it)->width()); 686 EXPECT_EQ(1280, (*it)->width());
684 EXPECT_EQ(720, (*it)->height()); 687 EXPECT_EQ(720, (*it)->height());
685 } 688 }
686 689
687 TEST_F(EncodingEventSubscriberTest, MaxEventsPerProto) { 690 TEST_F(EncodingEventSubscriberTest, MaxEventsPerProto) {
688 Init(VIDEO_EVENT); 691 Init(VIDEO_EVENT);
689 RtpTimestamp rtp_timestamp = 100; 692 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100));
690 for (int i = 0; i < kMaxEventsPerProto + 1; i++) { 693 for (int i = 0; i < kMaxEventsPerProto + 1; i++) {
691 scoped_ptr<FrameEvent> ack_event(new FrameEvent()); 694 scoped_ptr<FrameEvent> ack_event(new FrameEvent());
692 ack_event->timestamp = testing_clock_->NowTicks(); 695 ack_event->timestamp = testing_clock_->NowTicks();
693 ack_event->type = FRAME_ACK_RECEIVED; 696 ack_event->type = FRAME_ACK_RECEIVED;
694 ack_event->media_type = VIDEO_EVENT; 697 ack_event->media_type = VIDEO_EVENT;
695 ack_event->rtp_timestamp = rtp_timestamp; 698 ack_event->rtp_timestamp = rtp_timestamp;
696 ack_event->frame_id = 0; 699 ack_event->frame_id = 0;
697 cast_environment_->logger()->DispatchFrameEvent(ack_event.Pass()); 700 cast_environment_->logger()->DispatchFrameEvent(ack_event.Pass());
698 701
699 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(30)); 702 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(30));
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 EXPECT_EQ(kMaxEventsPerProto, 769 EXPECT_EQ(kMaxEventsPerProto,
767 packet_event->base_packet_event(0).event_type_size()); 770 packet_event->base_packet_event(0).event_type_size());
768 771
769 ++packet_it; 772 ++packet_it;
770 packet_event = *packet_it; 773 packet_event = *packet_it;
771 EXPECT_EQ(1, packet_event->base_packet_event(0).event_type_size()); 774 EXPECT_EQ(1, packet_event->base_packet_event(0).event_type_size());
772 } 775 }
773 776
774 } // namespace cast 777 } // namespace cast
775 } // namespace media 778 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698