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

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