OLD | NEW |
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 |
| 9 #include <memory> |
8 #include <utility> | 10 #include <utility> |
9 | 11 |
10 #include "base/memory/ref_counted.h" | 12 #include "base/memory/ref_counted.h" |
11 #include "base/memory/scoped_ptr.h" | |
12 #include "base/test/simple_test_tick_clock.h" | 13 #include "base/test/simple_test_tick_clock.h" |
13 #include "base/time/tick_clock.h" | 14 #include "base/time/tick_clock.h" |
14 #include "media/base/fake_single_thread_task_runner.h" | 15 #include "media/base/fake_single_thread_task_runner.h" |
15 #include "media/cast/cast_environment.h" | 16 #include "media/cast/cast_environment.h" |
16 #include "media/cast/logging/logging_defines.h" | 17 #include "media/cast/logging/logging_defines.h" |
17 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" |
18 | 19 |
19 using media::cast::proto::AggregatedFrameEvent; | 20 using media::cast::proto::AggregatedFrameEvent; |
20 using media::cast::proto::AggregatedPacketEvent; | 21 using media::cast::proto::AggregatedPacketEvent; |
21 using media::cast::proto::BasePacketEvent; | 22 using media::cast::proto::BasePacketEvent; |
22 using media::cast::proto::LogMetadata; | 23 using media::cast::proto::LogMetadata; |
23 | 24 |
24 namespace { | 25 namespace { |
25 | 26 |
26 int64_t InMilliseconds(base::TimeTicks event_time) { | 27 int64_t InMilliseconds(base::TimeTicks event_time) { |
27 return (event_time - base::TimeTicks()).InMilliseconds(); | 28 return (event_time - base::TimeTicks()).InMilliseconds(); |
28 } | 29 } |
29 | 30 |
30 } | 31 } |
31 | 32 |
32 namespace media { | 33 namespace media { |
33 namespace cast { | 34 namespace cast { |
34 | 35 |
35 class EncodingEventSubscriberTest : public ::testing::Test { | 36 class EncodingEventSubscriberTest : public ::testing::Test { |
36 protected: | 37 protected: |
37 EncodingEventSubscriberTest() | 38 EncodingEventSubscriberTest() |
38 : testing_clock_(new base::SimpleTestTickClock()), | 39 : testing_clock_(new base::SimpleTestTickClock()), |
39 task_runner_(new FakeSingleThreadTaskRunner(testing_clock_)), | 40 task_runner_(new FakeSingleThreadTaskRunner(testing_clock_)), |
40 cast_environment_( | 41 cast_environment_(new CastEnvironment( |
41 new CastEnvironment(scoped_ptr<base::TickClock>(testing_clock_), | 42 std::unique_ptr<base::TickClock>(testing_clock_), |
42 task_runner_, | 43 task_runner_, |
43 task_runner_, | 44 task_runner_, |
44 task_runner_)) {} | 45 task_runner_)) {} |
45 | 46 |
46 void Init(EventMediaType event_media_type) { | 47 void Init(EventMediaType event_media_type) { |
47 DCHECK(!event_subscriber_); | 48 DCHECK(!event_subscriber_); |
48 event_subscriber_.reset(new EncodingEventSubscriber(event_media_type, 10)); | 49 event_subscriber_.reset(new EncodingEventSubscriber(event_media_type, 10)); |
49 cast_environment_->logger()->Subscribe(event_subscriber_.get()); | 50 cast_environment_->logger()->Subscribe(event_subscriber_.get()); |
50 } | 51 } |
51 | 52 |
52 ~EncodingEventSubscriberTest() override { | 53 ~EncodingEventSubscriberTest() override { |
53 if (event_subscriber_) | 54 if (event_subscriber_) |
54 cast_environment_->logger()->Unsubscribe(event_subscriber_.get()); | 55 cast_environment_->logger()->Unsubscribe(event_subscriber_.get()); |
55 } | 56 } |
56 | 57 |
57 void GetEventsAndReset() { | 58 void GetEventsAndReset() { |
58 event_subscriber_->GetEventsAndReset( | 59 event_subscriber_->GetEventsAndReset( |
59 &metadata_, &frame_events_, &packet_events_); | 60 &metadata_, &frame_events_, &packet_events_); |
60 first_rtp_timestamp_ = | 61 first_rtp_timestamp_ = |
61 RtpTimeTicks().Expand(metadata_.first_rtp_timestamp()); | 62 RtpTimeTicks().Expand(metadata_.first_rtp_timestamp()); |
62 } | 63 } |
63 | 64 |
64 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. | 65 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. |
65 scoped_refptr<FakeSingleThreadTaskRunner> task_runner_; | 66 scoped_refptr<FakeSingleThreadTaskRunner> task_runner_; |
66 scoped_refptr<CastEnvironment> cast_environment_; | 67 scoped_refptr<CastEnvironment> cast_environment_; |
67 scoped_ptr<EncodingEventSubscriber> event_subscriber_; | 68 std::unique_ptr<EncodingEventSubscriber> event_subscriber_; |
68 FrameEventList frame_events_; | 69 FrameEventList frame_events_; |
69 PacketEventList packet_events_; | 70 PacketEventList packet_events_; |
70 LogMetadata metadata_; | 71 LogMetadata metadata_; |
71 RtpTimeTicks first_rtp_timestamp_; | 72 RtpTimeTicks first_rtp_timestamp_; |
72 }; | 73 }; |
73 | 74 |
74 TEST_F(EncodingEventSubscriberTest, FrameEventTruncating) { | 75 TEST_F(EncodingEventSubscriberTest, FrameEventTruncating) { |
75 Init(VIDEO_EVENT); | 76 Init(VIDEO_EVENT); |
76 | 77 |
77 base::TimeTicks now(testing_clock_->NowTicks()); | 78 base::TimeTicks now(testing_clock_->NowTicks()); |
78 | 79 |
79 // Entry with RTP timestamp 0 should get dropped. | 80 // Entry with RTP timestamp 0 should get dropped. |
80 int width = 320; | 81 int width = 320; |
81 int height = 180; | 82 int height = 180; |
82 for (int i = 0; i < 11; i++) { | 83 for (int i = 0; i < 11; i++) { |
83 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); | 84 std::unique_ptr<FrameEvent> capture_begin_event(new FrameEvent()); |
84 capture_begin_event->timestamp = now; | 85 capture_begin_event->timestamp = now; |
85 capture_begin_event->type = FRAME_CAPTURE_BEGIN; | 86 capture_begin_event->type = FRAME_CAPTURE_BEGIN; |
86 capture_begin_event->media_type = VIDEO_EVENT; | 87 capture_begin_event->media_type = VIDEO_EVENT; |
87 capture_begin_event->rtp_timestamp = | 88 capture_begin_event->rtp_timestamp = |
88 RtpTimeTicks().Expand<uint32_t>(i * 100); | 89 RtpTimeTicks().Expand<uint32_t>(i * 100); |
89 cast_environment_->logger()->DispatchFrameEvent( | 90 cast_environment_->logger()->DispatchFrameEvent( |
90 std::move(capture_begin_event)); | 91 std::move(capture_begin_event)); |
91 | 92 |
92 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent()); | 93 std::unique_ptr<FrameEvent> capture_end_event(new FrameEvent()); |
93 capture_end_event->timestamp = now; | 94 capture_end_event->timestamp = now; |
94 capture_end_event->type = FRAME_CAPTURE_END; | 95 capture_end_event->type = FRAME_CAPTURE_END; |
95 capture_end_event->media_type = VIDEO_EVENT; | 96 capture_end_event->media_type = VIDEO_EVENT; |
96 capture_end_event->rtp_timestamp = RtpTimeTicks().Expand<uint32_t>(i * 100); | 97 capture_end_event->rtp_timestamp = RtpTimeTicks().Expand<uint32_t>(i * 100); |
97 capture_end_event->width = width; | 98 capture_end_event->width = width; |
98 capture_end_event->height = height; | 99 capture_end_event->height = height; |
99 cast_environment_->logger()->DispatchFrameEvent( | 100 cast_environment_->logger()->DispatchFrameEvent( |
100 std::move(capture_end_event)); | 101 std::move(capture_end_event)); |
101 | 102 |
102 scoped_ptr<FrameEvent> decoded_event(new FrameEvent()); | 103 std::unique_ptr<FrameEvent> decoded_event(new FrameEvent()); |
103 decoded_event->timestamp = now; | 104 decoded_event->timestamp = now; |
104 decoded_event->type = FRAME_DECODED; | 105 decoded_event->type = FRAME_DECODED; |
105 decoded_event->media_type = VIDEO_EVENT; | 106 decoded_event->media_type = VIDEO_EVENT; |
106 decoded_event->rtp_timestamp = RtpTimeTicks().Expand<uint32_t>(i * 100); | 107 decoded_event->rtp_timestamp = RtpTimeTicks().Expand<uint32_t>(i * 100); |
107 decoded_event->frame_id = 0; | 108 decoded_event->frame_id = 0; |
108 cast_environment_->logger()->DispatchFrameEvent(std::move(decoded_event)); | 109 cast_environment_->logger()->DispatchFrameEvent(std::move(decoded_event)); |
109 | 110 |
110 width += 160; | 111 width += 160; |
111 height += 90; | 112 height += 90; |
112 } | 113 } |
(...skipping 13 matching lines...) Expand all Loading... |
126 } | 127 } |
127 } | 128 } |
128 | 129 |
129 TEST_F(EncodingEventSubscriberTest, PacketEventTruncating) { | 130 TEST_F(EncodingEventSubscriberTest, PacketEventTruncating) { |
130 Init(AUDIO_EVENT); | 131 Init(AUDIO_EVENT); |
131 | 132 |
132 base::TimeTicks now(testing_clock_->NowTicks()); | 133 base::TimeTicks now(testing_clock_->NowTicks()); |
133 | 134 |
134 // Entry with RTP timestamp 0 should get dropped. | 135 // Entry with RTP timestamp 0 should get dropped. |
135 for (int i = 0; i < 11; i++) { | 136 for (int i = 0; i < 11; i++) { |
136 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); | 137 std::unique_ptr<PacketEvent> receive_event(new PacketEvent()); |
137 receive_event->timestamp = now; | 138 receive_event->timestamp = now; |
138 receive_event->type = PACKET_RECEIVED; | 139 receive_event->type = PACKET_RECEIVED; |
139 receive_event->media_type = AUDIO_EVENT; | 140 receive_event->media_type = AUDIO_EVENT; |
140 receive_event->rtp_timestamp = RtpTimeTicks().Expand<uint32_t>(i * 100); | 141 receive_event->rtp_timestamp = RtpTimeTicks().Expand<uint32_t>(i * 100); |
141 receive_event->frame_id = 0; | 142 receive_event->frame_id = 0; |
142 receive_event->packet_id = i; | 143 receive_event->packet_id = i; |
143 receive_event->max_packet_id = 10; | 144 receive_event->max_packet_id = 10; |
144 receive_event->size = 123; | 145 receive_event->size = 123; |
145 cast_environment_->logger()->DispatchPacketEvent(std::move(receive_event)); | 146 cast_environment_->logger()->DispatchPacketEvent(std::move(receive_event)); |
146 } | 147 } |
147 | 148 |
148 GetEventsAndReset(); | 149 GetEventsAndReset(); |
149 | 150 |
150 ASSERT_EQ(10u, packet_events_.size()); | 151 ASSERT_EQ(10u, packet_events_.size()); |
151 EXPECT_EQ(100u, packet_events_.front()->relative_rtp_timestamp()); | 152 EXPECT_EQ(100u, packet_events_.front()->relative_rtp_timestamp()); |
152 EXPECT_EQ(1000u, packet_events_.back()->relative_rtp_timestamp()); | 153 EXPECT_EQ(1000u, packet_events_.back()->relative_rtp_timestamp()); |
153 } | 154 } |
154 | 155 |
155 TEST_F(EncodingEventSubscriberTest, TooManyProtos) { | 156 TEST_F(EncodingEventSubscriberTest, TooManyProtos) { |
156 Init(VIDEO_EVENT); | 157 Init(VIDEO_EVENT); |
157 size_t num_frame_event_protos = 3; | 158 size_t num_frame_event_protos = 3; |
158 size_t num_packet_event_protos = kMaxProtosPerFrame - num_frame_event_protos; | 159 size_t num_packet_event_protos = kMaxProtosPerFrame - num_frame_event_protos; |
159 base::TimeTicks now(testing_clock_->NowTicks()); | 160 base::TimeTicks now(testing_clock_->NowTicks()); |
160 | 161 |
161 for (size_t i = 0; i < num_frame_event_protos; i++) { | 162 for (size_t i = 0; i < num_frame_event_protos; i++) { |
162 for (int j = 0; j < kMaxEventsPerProto; j++) { | 163 for (int j = 0; j < kMaxEventsPerProto; j++) { |
163 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); | 164 std::unique_ptr<FrameEvent> capture_begin_event(new FrameEvent()); |
164 capture_begin_event->timestamp = now; | 165 capture_begin_event->timestamp = now; |
165 capture_begin_event->type = FRAME_CAPTURE_BEGIN; | 166 capture_begin_event->type = FRAME_CAPTURE_BEGIN; |
166 capture_begin_event->media_type = VIDEO_EVENT; | 167 capture_begin_event->media_type = VIDEO_EVENT; |
167 capture_begin_event->rtp_timestamp = RtpTimeTicks(); | 168 capture_begin_event->rtp_timestamp = RtpTimeTicks(); |
168 cast_environment_->logger()->DispatchFrameEvent( | 169 cast_environment_->logger()->DispatchFrameEvent( |
169 std::move(capture_begin_event)); | 170 std::move(capture_begin_event)); |
170 } | 171 } |
171 } | 172 } |
172 | 173 |
173 for (size_t i = 0; i < num_packet_event_protos; i++) { | 174 for (size_t i = 0; i < num_packet_event_protos; i++) { |
174 for (int j = 0; j < kMaxEventsPerProto; j++) { | 175 for (int j = 0; j < kMaxEventsPerProto; j++) { |
175 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); | 176 std::unique_ptr<PacketEvent> receive_event(new PacketEvent()); |
176 receive_event->timestamp = now; | 177 receive_event->timestamp = now; |
177 receive_event->type = PACKET_RECEIVED; | 178 receive_event->type = PACKET_RECEIVED; |
178 receive_event->media_type = VIDEO_EVENT; | 179 receive_event->media_type = VIDEO_EVENT; |
179 receive_event->rtp_timestamp = RtpTimeTicks(); | 180 receive_event->rtp_timestamp = RtpTimeTicks(); |
180 receive_event->frame_id = 0; | 181 receive_event->frame_id = 0; |
181 receive_event->packet_id = 0; | 182 receive_event->packet_id = 0; |
182 receive_event->max_packet_id = 10; | 183 receive_event->max_packet_id = 10; |
183 receive_event->size = 123; | 184 receive_event->size = 123; |
184 cast_environment_->logger()->DispatchPacketEvent( | 185 cast_environment_->logger()->DispatchPacketEvent( |
185 std::move(receive_event)); | 186 std::move(receive_event)); |
186 } | 187 } |
187 } | 188 } |
188 | 189 |
189 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); | 190 std::unique_ptr<FrameEvent> capture_begin_event(new FrameEvent()); |
190 capture_begin_event->timestamp = now; | 191 capture_begin_event->timestamp = now; |
191 capture_begin_event->type = FRAME_CAPTURE_BEGIN; | 192 capture_begin_event->type = FRAME_CAPTURE_BEGIN; |
192 capture_begin_event->media_type = VIDEO_EVENT; | 193 capture_begin_event->media_type = VIDEO_EVENT; |
193 capture_begin_event->rtp_timestamp = RtpTimeTicks(); | 194 capture_begin_event->rtp_timestamp = RtpTimeTicks(); |
194 cast_environment_->logger()->DispatchFrameEvent( | 195 cast_environment_->logger()->DispatchFrameEvent( |
195 std::move(capture_begin_event)); | 196 std::move(capture_begin_event)); |
196 | 197 |
197 GetEventsAndReset(); | 198 GetEventsAndReset(); |
198 EXPECT_EQ(num_frame_event_protos, frame_events_.size()); | 199 EXPECT_EQ(num_frame_event_protos, frame_events_.size()); |
199 EXPECT_EQ(num_packet_event_protos, packet_events_.size()); | 200 EXPECT_EQ(num_packet_event_protos, packet_events_.size()); |
200 } | 201 } |
201 | 202 |
202 TEST_F(EncodingEventSubscriberTest, EventFiltering) { | 203 TEST_F(EncodingEventSubscriberTest, EventFiltering) { |
203 Init(VIDEO_EVENT); | 204 Init(VIDEO_EVENT); |
204 | 205 |
205 base::TimeTicks now(testing_clock_->NowTicks()); | 206 base::TimeTicks now(testing_clock_->NowTicks()); |
206 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); | 207 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); |
207 scoped_ptr<FrameEvent> video_event(new FrameEvent()); | 208 std::unique_ptr<FrameEvent> video_event(new FrameEvent()); |
208 video_event->timestamp = now; | 209 video_event->timestamp = now; |
209 video_event->type = FRAME_DECODED; | 210 video_event->type = FRAME_DECODED; |
210 video_event->media_type = VIDEO_EVENT; | 211 video_event->media_type = VIDEO_EVENT; |
211 video_event->rtp_timestamp = rtp_timestamp; | 212 video_event->rtp_timestamp = rtp_timestamp; |
212 video_event->frame_id = 0; | 213 video_event->frame_id = 0; |
213 cast_environment_->logger()->DispatchFrameEvent(std::move(video_event)); | 214 cast_environment_->logger()->DispatchFrameEvent(std::move(video_event)); |
214 | 215 |
215 // This is an AUDIO_EVENT and shouldn't be processed by the subscriber. | 216 // This is an AUDIO_EVENT and shouldn't be processed by the subscriber. |
216 scoped_ptr<FrameEvent> audio_event(new FrameEvent()); | 217 std::unique_ptr<FrameEvent> audio_event(new FrameEvent()); |
217 audio_event->timestamp = now; | 218 audio_event->timestamp = now; |
218 audio_event->type = FRAME_DECODED; | 219 audio_event->type = FRAME_DECODED; |
219 audio_event->media_type = AUDIO_EVENT; | 220 audio_event->media_type = AUDIO_EVENT; |
220 audio_event->rtp_timestamp = rtp_timestamp; | 221 audio_event->rtp_timestamp = rtp_timestamp; |
221 audio_event->frame_id = 0; | 222 audio_event->frame_id = 0; |
222 cast_environment_->logger()->DispatchFrameEvent(std::move(audio_event)); | 223 cast_environment_->logger()->DispatchFrameEvent(std::move(audio_event)); |
223 | 224 |
224 GetEventsAndReset(); | 225 GetEventsAndReset(); |
225 | 226 |
226 ASSERT_EQ(1u, frame_events_.size()); | 227 ASSERT_EQ(1u, frame_events_.size()); |
227 FrameEventList::iterator it = frame_events_.begin(); | 228 FrameEventList::iterator it = frame_events_.begin(); |
228 | 229 |
229 linked_ptr<AggregatedFrameEvent> frame_event = *it; | 230 linked_ptr<AggregatedFrameEvent> frame_event = *it; |
230 | 231 |
231 ASSERT_EQ(1, frame_event->event_type_size()); | 232 ASSERT_EQ(1, frame_event->event_type_size()); |
232 EXPECT_EQ(media::cast::proto::FRAME_DECODED, | 233 EXPECT_EQ(media::cast::proto::FRAME_DECODED, |
233 frame_event->event_type(0)); | 234 frame_event->event_type(0)); |
234 | 235 |
235 GetEventsAndReset(); | 236 GetEventsAndReset(); |
236 | 237 |
237 EXPECT_TRUE(packet_events_.empty()); | 238 EXPECT_TRUE(packet_events_.empty()); |
238 } | 239 } |
239 | 240 |
240 TEST_F(EncodingEventSubscriberTest, FrameEvent) { | 241 TEST_F(EncodingEventSubscriberTest, FrameEvent) { |
241 Init(VIDEO_EVENT); | 242 Init(VIDEO_EVENT); |
242 base::TimeTicks now(testing_clock_->NowTicks()); | 243 base::TimeTicks now(testing_clock_->NowTicks()); |
243 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); | 244 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); |
244 scoped_ptr<FrameEvent> decode_event(new FrameEvent()); | 245 std::unique_ptr<FrameEvent> decode_event(new FrameEvent()); |
245 decode_event->timestamp = now; | 246 decode_event->timestamp = now; |
246 decode_event->type = FRAME_DECODED; | 247 decode_event->type = FRAME_DECODED; |
247 decode_event->media_type = VIDEO_EVENT; | 248 decode_event->media_type = VIDEO_EVENT; |
248 decode_event->rtp_timestamp = rtp_timestamp; | 249 decode_event->rtp_timestamp = rtp_timestamp; |
249 decode_event->frame_id = 0; | 250 decode_event->frame_id = 0; |
250 cast_environment_->logger()->DispatchFrameEvent(std::move(decode_event)); | 251 cast_environment_->logger()->DispatchFrameEvent(std::move(decode_event)); |
251 | 252 |
252 GetEventsAndReset(); | 253 GetEventsAndReset(); |
253 | 254 |
254 ASSERT_EQ(1u, frame_events_.size()); | 255 ASSERT_EQ(1u, frame_events_.size()); |
(...skipping 15 matching lines...) Expand all Loading... |
270 | 271 |
271 GetEventsAndReset(); | 272 GetEventsAndReset(); |
272 EXPECT_TRUE(frame_events_.empty()); | 273 EXPECT_TRUE(frame_events_.empty()); |
273 } | 274 } |
274 | 275 |
275 TEST_F(EncodingEventSubscriberTest, FrameEventDelay) { | 276 TEST_F(EncodingEventSubscriberTest, FrameEventDelay) { |
276 Init(AUDIO_EVENT); | 277 Init(AUDIO_EVENT); |
277 base::TimeTicks now(testing_clock_->NowTicks()); | 278 base::TimeTicks now(testing_clock_->NowTicks()); |
278 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); | 279 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); |
279 int delay_ms = 100; | 280 int delay_ms = 100; |
280 scoped_ptr<FrameEvent> playout_event(new FrameEvent()); | 281 std::unique_ptr<FrameEvent> playout_event(new FrameEvent()); |
281 playout_event->timestamp = now; | 282 playout_event->timestamp = now; |
282 playout_event->type = FRAME_PLAYOUT; | 283 playout_event->type = FRAME_PLAYOUT; |
283 playout_event->media_type = AUDIO_EVENT; | 284 playout_event->media_type = AUDIO_EVENT; |
284 playout_event->rtp_timestamp = rtp_timestamp; | 285 playout_event->rtp_timestamp = rtp_timestamp; |
285 playout_event->frame_id = 0; | 286 playout_event->frame_id = 0; |
286 playout_event->delay_delta = base::TimeDelta::FromMilliseconds(delay_ms); | 287 playout_event->delay_delta = base::TimeDelta::FromMilliseconds(delay_ms); |
287 cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event)); | 288 cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event)); |
288 | 289 |
289 GetEventsAndReset(); | 290 GetEventsAndReset(); |
290 | 291 |
(...skipping 18 matching lines...) Expand all Loading... |
309 | 310 |
310 TEST_F(EncodingEventSubscriberTest, FrameEventSize) { | 311 TEST_F(EncodingEventSubscriberTest, FrameEventSize) { |
311 Init(VIDEO_EVENT); | 312 Init(VIDEO_EVENT); |
312 base::TimeTicks now(testing_clock_->NowTicks()); | 313 base::TimeTicks now(testing_clock_->NowTicks()); |
313 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); | 314 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); |
314 int size = 123; | 315 int size = 123; |
315 bool key_frame = true; | 316 bool key_frame = true; |
316 int target_bitrate = 1024; | 317 int target_bitrate = 1024; |
317 double encoder_cpu_utilization = 0.90; | 318 double encoder_cpu_utilization = 0.90; |
318 double idealized_bitrate_utilization = 0.42; | 319 double idealized_bitrate_utilization = 0.42; |
319 scoped_ptr<FrameEvent> encode_event(new FrameEvent()); | 320 std::unique_ptr<FrameEvent> encode_event(new FrameEvent()); |
320 encode_event->timestamp = now; | 321 encode_event->timestamp = now; |
321 encode_event->type = FRAME_ENCODED; | 322 encode_event->type = FRAME_ENCODED; |
322 encode_event->media_type = VIDEO_EVENT; | 323 encode_event->media_type = VIDEO_EVENT; |
323 encode_event->rtp_timestamp = rtp_timestamp; | 324 encode_event->rtp_timestamp = rtp_timestamp; |
324 encode_event->frame_id = 0; | 325 encode_event->frame_id = 0; |
325 encode_event->size = size; | 326 encode_event->size = size; |
326 encode_event->key_frame = key_frame; | 327 encode_event->key_frame = key_frame; |
327 encode_event->target_bitrate = target_bitrate; | 328 encode_event->target_bitrate = target_bitrate; |
328 encode_event->encoder_cpu_utilization = encoder_cpu_utilization; | 329 encode_event->encoder_cpu_utilization = encoder_cpu_utilization; |
329 encode_event->idealized_bitrate_utilization = idealized_bitrate_utilization; | 330 encode_event->idealized_bitrate_utilization = idealized_bitrate_utilization; |
(...skipping 22 matching lines...) Expand all Loading... |
352 EXPECT_EQ(target_bitrate, event->target_bitrate()); | 353 EXPECT_EQ(target_bitrate, event->target_bitrate()); |
353 EXPECT_EQ(90, event->encoder_cpu_percent_utilized()); | 354 EXPECT_EQ(90, event->encoder_cpu_percent_utilized()); |
354 EXPECT_EQ(42, event->idealized_bitrate_percent_utilized()); | 355 EXPECT_EQ(42, event->idealized_bitrate_percent_utilized()); |
355 } | 356 } |
356 | 357 |
357 TEST_F(EncodingEventSubscriberTest, MultipleFrameEvents) { | 358 TEST_F(EncodingEventSubscriberTest, MultipleFrameEvents) { |
358 Init(AUDIO_EVENT); | 359 Init(AUDIO_EVENT); |
359 RtpTimeTicks rtp_timestamp1 = RtpTimeTicks().Expand(UINT32_C(100)); | 360 RtpTimeTicks rtp_timestamp1 = RtpTimeTicks().Expand(UINT32_C(100)); |
360 RtpTimeTicks rtp_timestamp2 = rtp_timestamp1.Expand(UINT32_C(200)); | 361 RtpTimeTicks rtp_timestamp2 = rtp_timestamp1.Expand(UINT32_C(200)); |
361 base::TimeTicks now1(testing_clock_->NowTicks()); | 362 base::TimeTicks now1(testing_clock_->NowTicks()); |
362 scoped_ptr<FrameEvent> playout_event(new FrameEvent()); | 363 std::unique_ptr<FrameEvent> playout_event(new FrameEvent()); |
363 playout_event->timestamp = now1; | 364 playout_event->timestamp = now1; |
364 playout_event->type = FRAME_PLAYOUT; | 365 playout_event->type = FRAME_PLAYOUT; |
365 playout_event->media_type = AUDIO_EVENT; | 366 playout_event->media_type = AUDIO_EVENT; |
366 playout_event->rtp_timestamp = rtp_timestamp1; | 367 playout_event->rtp_timestamp = rtp_timestamp1; |
367 playout_event->frame_id = 0; | 368 playout_event->frame_id = 0; |
368 playout_event->delay_delta = base::TimeDelta::FromMilliseconds(100); | 369 playout_event->delay_delta = base::TimeDelta::FromMilliseconds(100); |
369 cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event)); | 370 cast_environment_->logger()->DispatchFrameEvent(std::move(playout_event)); |
370 | 371 |
371 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20)); | 372 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20)); |
372 base::TimeTicks now2(testing_clock_->NowTicks()); | 373 base::TimeTicks now2(testing_clock_->NowTicks()); |
373 scoped_ptr<FrameEvent> encode_event(new FrameEvent()); | 374 std::unique_ptr<FrameEvent> encode_event(new FrameEvent()); |
374 encode_event->timestamp = now2; | 375 encode_event->timestamp = now2; |
375 encode_event->type = FRAME_ENCODED; | 376 encode_event->type = FRAME_ENCODED; |
376 encode_event->media_type = AUDIO_EVENT; | 377 encode_event->media_type = AUDIO_EVENT; |
377 encode_event->rtp_timestamp = rtp_timestamp2; | 378 encode_event->rtp_timestamp = rtp_timestamp2; |
378 encode_event->frame_id = 0; | 379 encode_event->frame_id = 0; |
379 encode_event->size = 123; | 380 encode_event->size = 123; |
380 encode_event->encoder_cpu_utilization = 0.44; | 381 encode_event->encoder_cpu_utilization = 0.44; |
381 encode_event->idealized_bitrate_utilization = 0.55; | 382 encode_event->idealized_bitrate_utilization = 0.55; |
382 cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event)); | 383 cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event)); |
383 | 384 |
384 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20)); | 385 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20)); |
385 base::TimeTicks now3(testing_clock_->NowTicks()); | 386 base::TimeTicks now3(testing_clock_->NowTicks()); |
386 scoped_ptr<FrameEvent> decode_event(new FrameEvent()); | 387 std::unique_ptr<FrameEvent> decode_event(new FrameEvent()); |
387 decode_event->timestamp = now3; | 388 decode_event->timestamp = now3; |
388 decode_event->type = FRAME_DECODED; | 389 decode_event->type = FRAME_DECODED; |
389 decode_event->media_type = AUDIO_EVENT; | 390 decode_event->media_type = AUDIO_EVENT; |
390 decode_event->rtp_timestamp = rtp_timestamp1; | 391 decode_event->rtp_timestamp = rtp_timestamp1; |
391 decode_event->frame_id = 0; | 392 decode_event->frame_id = 0; |
392 cast_environment_->logger()->DispatchFrameEvent(std::move(decode_event)); | 393 cast_environment_->logger()->DispatchFrameEvent(std::move(decode_event)); |
393 | 394 |
394 GetEventsAndReset(); | 395 GetEventsAndReset(); |
395 | 396 |
396 ASSERT_EQ(2u, frame_events_.size()); | 397 ASSERT_EQ(2u, frame_events_.size()); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 EXPECT_EQ(44, event->encoder_cpu_percent_utilized()); | 430 EXPECT_EQ(44, event->encoder_cpu_percent_utilized()); |
430 EXPECT_EQ(55, event->idealized_bitrate_percent_utilized()); | 431 EXPECT_EQ(55, event->idealized_bitrate_percent_utilized()); |
431 } | 432 } |
432 | 433 |
433 TEST_F(EncodingEventSubscriberTest, PacketEvent) { | 434 TEST_F(EncodingEventSubscriberTest, PacketEvent) { |
434 Init(AUDIO_EVENT); | 435 Init(AUDIO_EVENT); |
435 base::TimeTicks now(testing_clock_->NowTicks()); | 436 base::TimeTicks now(testing_clock_->NowTicks()); |
436 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); | 437 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); |
437 int packet_id = 2; | 438 int packet_id = 2; |
438 int size = 100; | 439 int size = 100; |
439 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); | 440 std::unique_ptr<PacketEvent> receive_event(new PacketEvent()); |
440 receive_event->timestamp = now; | 441 receive_event->timestamp = now; |
441 receive_event->type = PACKET_RECEIVED; | 442 receive_event->type = PACKET_RECEIVED; |
442 receive_event->media_type = AUDIO_EVENT; | 443 receive_event->media_type = AUDIO_EVENT; |
443 receive_event->rtp_timestamp = rtp_timestamp; | 444 receive_event->rtp_timestamp = rtp_timestamp; |
444 receive_event->frame_id = 0; | 445 receive_event->frame_id = 0; |
445 receive_event->packet_id = packet_id; | 446 receive_event->packet_id = packet_id; |
446 receive_event->max_packet_id = 10; | 447 receive_event->max_packet_id = 10; |
447 receive_event->size = size; | 448 receive_event->size = size; |
448 cast_environment_->logger()->DispatchPacketEvent(std::move(receive_event)); | 449 cast_environment_->logger()->DispatchPacketEvent(std::move(receive_event)); |
449 | 450 |
(...skipping 21 matching lines...) Expand all Loading... |
471 GetEventsAndReset(); | 472 GetEventsAndReset(); |
472 EXPECT_TRUE(packet_events_.empty()); | 473 EXPECT_TRUE(packet_events_.empty()); |
473 } | 474 } |
474 | 475 |
475 TEST_F(EncodingEventSubscriberTest, MultiplePacketEventsForPacket) { | 476 TEST_F(EncodingEventSubscriberTest, MultiplePacketEventsForPacket) { |
476 Init(VIDEO_EVENT); | 477 Init(VIDEO_EVENT); |
477 base::TimeTicks now1(testing_clock_->NowTicks()); | 478 base::TimeTicks now1(testing_clock_->NowTicks()); |
478 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); | 479 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); |
479 int packet_id = 2; | 480 int packet_id = 2; |
480 int size = 100; | 481 int size = 100; |
481 scoped_ptr<PacketEvent> send_event(new PacketEvent()); | 482 std::unique_ptr<PacketEvent> send_event(new PacketEvent()); |
482 send_event->timestamp = now1; | 483 send_event->timestamp = now1; |
483 send_event->type = PACKET_SENT_TO_NETWORK; | 484 send_event->type = PACKET_SENT_TO_NETWORK; |
484 send_event->media_type = VIDEO_EVENT; | 485 send_event->media_type = VIDEO_EVENT; |
485 send_event->rtp_timestamp = rtp_timestamp; | 486 send_event->rtp_timestamp = rtp_timestamp; |
486 send_event->frame_id = 0; | 487 send_event->frame_id = 0; |
487 send_event->packet_id = packet_id; | 488 send_event->packet_id = packet_id; |
488 send_event->max_packet_id = 10; | 489 send_event->max_packet_id = 10; |
489 send_event->size = size; | 490 send_event->size = size; |
490 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); | 491 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); |
491 | 492 |
492 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20)); | 493 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20)); |
493 base::TimeTicks now2(testing_clock_->NowTicks()); | 494 base::TimeTicks now2(testing_clock_->NowTicks()); |
494 scoped_ptr<PacketEvent> retransmit_event(new PacketEvent()); | 495 std::unique_ptr<PacketEvent> retransmit_event(new PacketEvent()); |
495 retransmit_event->timestamp = now2; | 496 retransmit_event->timestamp = now2; |
496 retransmit_event->type = PACKET_RETRANSMITTED; | 497 retransmit_event->type = PACKET_RETRANSMITTED; |
497 retransmit_event->media_type = VIDEO_EVENT; | 498 retransmit_event->media_type = VIDEO_EVENT; |
498 retransmit_event->rtp_timestamp = rtp_timestamp; | 499 retransmit_event->rtp_timestamp = rtp_timestamp; |
499 retransmit_event->frame_id = 0; | 500 retransmit_event->frame_id = 0; |
500 retransmit_event->packet_id = packet_id; | 501 retransmit_event->packet_id = packet_id; |
501 retransmit_event->max_packet_id = 10; | 502 retransmit_event->max_packet_id = 10; |
502 retransmit_event->size = size; | 503 retransmit_event->size = size; |
503 cast_environment_->logger()->DispatchPacketEvent(std::move(retransmit_event)); | 504 cast_environment_->logger()->DispatchPacketEvent(std::move(retransmit_event)); |
504 | 505 |
(...skipping 21 matching lines...) Expand all Loading... |
526 EXPECT_EQ(InMilliseconds(now2), base_event.event_timestamp_ms(1)); | 527 EXPECT_EQ(InMilliseconds(now2), base_event.event_timestamp_ms(1)); |
527 } | 528 } |
528 | 529 |
529 TEST_F(EncodingEventSubscriberTest, MultiplePacketEventsForFrame) { | 530 TEST_F(EncodingEventSubscriberTest, MultiplePacketEventsForFrame) { |
530 Init(VIDEO_EVENT); | 531 Init(VIDEO_EVENT); |
531 base::TimeTicks now1(testing_clock_->NowTicks()); | 532 base::TimeTicks now1(testing_clock_->NowTicks()); |
532 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); | 533 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); |
533 int packet_id_1 = 2; | 534 int packet_id_1 = 2; |
534 int packet_id_2 = 3; | 535 int packet_id_2 = 3; |
535 int size = 100; | 536 int size = 100; |
536 scoped_ptr<PacketEvent> send_event(new PacketEvent()); | 537 std::unique_ptr<PacketEvent> send_event(new PacketEvent()); |
537 send_event->timestamp = now1; | 538 send_event->timestamp = now1; |
538 send_event->type = PACKET_SENT_TO_NETWORK; | 539 send_event->type = PACKET_SENT_TO_NETWORK; |
539 send_event->media_type = VIDEO_EVENT; | 540 send_event->media_type = VIDEO_EVENT; |
540 send_event->rtp_timestamp = rtp_timestamp; | 541 send_event->rtp_timestamp = rtp_timestamp; |
541 send_event->frame_id = 0; | 542 send_event->frame_id = 0; |
542 send_event->packet_id = packet_id_1; | 543 send_event->packet_id = packet_id_1; |
543 send_event->max_packet_id = 10; | 544 send_event->max_packet_id = 10; |
544 send_event->size = size; | 545 send_event->size = size; |
545 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); | 546 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); |
546 | 547 |
547 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20)); | 548 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20)); |
548 base::TimeTicks now2(testing_clock_->NowTicks()); | 549 base::TimeTicks now2(testing_clock_->NowTicks()); |
549 scoped_ptr<PacketEvent> retransmit_event(new PacketEvent()); | 550 std::unique_ptr<PacketEvent> retransmit_event(new PacketEvent()); |
550 retransmit_event->timestamp = now2; | 551 retransmit_event->timestamp = now2; |
551 retransmit_event->type = PACKET_RETRANSMITTED; | 552 retransmit_event->type = PACKET_RETRANSMITTED; |
552 retransmit_event->media_type = VIDEO_EVENT; | 553 retransmit_event->media_type = VIDEO_EVENT; |
553 retransmit_event->rtp_timestamp = rtp_timestamp; | 554 retransmit_event->rtp_timestamp = rtp_timestamp; |
554 retransmit_event->frame_id = 0; | 555 retransmit_event->frame_id = 0; |
555 retransmit_event->packet_id = packet_id_2; | 556 retransmit_event->packet_id = packet_id_2; |
556 retransmit_event->max_packet_id = 10; | 557 retransmit_event->max_packet_id = 10; |
557 retransmit_event->size = size; | 558 retransmit_event->size = size; |
558 cast_environment_->logger()->DispatchPacketEvent(std::move(retransmit_event)); | 559 cast_environment_->logger()->DispatchPacketEvent(std::move(retransmit_event)); |
559 | 560 |
(...skipping 27 matching lines...) Expand all Loading... |
587 } | 588 } |
588 | 589 |
589 TEST_F(EncodingEventSubscriberTest, MultiplePacketEvents) { | 590 TEST_F(EncodingEventSubscriberTest, MultiplePacketEvents) { |
590 Init(VIDEO_EVENT); | 591 Init(VIDEO_EVENT); |
591 base::TimeTicks now1(testing_clock_->NowTicks()); | 592 base::TimeTicks now1(testing_clock_->NowTicks()); |
592 RtpTimeTicks rtp_timestamp_1 = RtpTimeTicks().Expand(UINT32_C(100)); | 593 RtpTimeTicks rtp_timestamp_1 = RtpTimeTicks().Expand(UINT32_C(100)); |
593 RtpTimeTicks rtp_timestamp_2 = rtp_timestamp_1.Expand(UINT32_C(200)); | 594 RtpTimeTicks rtp_timestamp_2 = rtp_timestamp_1.Expand(UINT32_C(200)); |
594 int packet_id_1 = 2; | 595 int packet_id_1 = 2; |
595 int packet_id_2 = 3; | 596 int packet_id_2 = 3; |
596 int size = 100; | 597 int size = 100; |
597 scoped_ptr<PacketEvent> send_event(new PacketEvent()); | 598 std::unique_ptr<PacketEvent> send_event(new PacketEvent()); |
598 send_event->timestamp = now1; | 599 send_event->timestamp = now1; |
599 send_event->type = PACKET_SENT_TO_NETWORK; | 600 send_event->type = PACKET_SENT_TO_NETWORK; |
600 send_event->media_type = VIDEO_EVENT; | 601 send_event->media_type = VIDEO_EVENT; |
601 send_event->rtp_timestamp = rtp_timestamp_1; | 602 send_event->rtp_timestamp = rtp_timestamp_1; |
602 send_event->frame_id = 0; | 603 send_event->frame_id = 0; |
603 send_event->packet_id = packet_id_1; | 604 send_event->packet_id = packet_id_1; |
604 send_event->max_packet_id = 10; | 605 send_event->max_packet_id = 10; |
605 send_event->size = size; | 606 send_event->size = size; |
606 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); | 607 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); |
607 | 608 |
608 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20)); | 609 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(20)); |
609 base::TimeTicks now2(testing_clock_->NowTicks()); | 610 base::TimeTicks now2(testing_clock_->NowTicks()); |
610 scoped_ptr<PacketEvent> retransmit_event(new PacketEvent()); | 611 std::unique_ptr<PacketEvent> retransmit_event(new PacketEvent()); |
611 retransmit_event->timestamp = now2; | 612 retransmit_event->timestamp = now2; |
612 retransmit_event->type = PACKET_RETRANSMITTED; | 613 retransmit_event->type = PACKET_RETRANSMITTED; |
613 retransmit_event->media_type = VIDEO_EVENT; | 614 retransmit_event->media_type = VIDEO_EVENT; |
614 retransmit_event->rtp_timestamp = rtp_timestamp_2; | 615 retransmit_event->rtp_timestamp = rtp_timestamp_2; |
615 retransmit_event->frame_id = 0; | 616 retransmit_event->frame_id = 0; |
616 retransmit_event->packet_id = packet_id_2; | 617 retransmit_event->packet_id = packet_id_2; |
617 retransmit_event->max_packet_id = 10; | 618 retransmit_event->max_packet_id = 10; |
618 retransmit_event->size = size; | 619 retransmit_event->size = size; |
619 cast_environment_->logger()->DispatchPacketEvent(std::move(retransmit_event)); | 620 cast_environment_->logger()->DispatchPacketEvent(std::move(retransmit_event)); |
620 | 621 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
653 base_event_2.event_type(0)); | 654 base_event_2.event_type(0)); |
654 ASSERT_EQ(1, base_event_2.event_timestamp_ms_size()); | 655 ASSERT_EQ(1, base_event_2.event_timestamp_ms_size()); |
655 EXPECT_EQ(InMilliseconds(now2), base_event_2.event_timestamp_ms(0)); | 656 EXPECT_EQ(InMilliseconds(now2), base_event_2.event_timestamp_ms(0)); |
656 } | 657 } |
657 | 658 |
658 TEST_F(EncodingEventSubscriberTest, FirstRtpTimeTicks) { | 659 TEST_F(EncodingEventSubscriberTest, FirstRtpTimeTicks) { |
659 Init(VIDEO_EVENT); | 660 Init(VIDEO_EVENT); |
660 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(12345)); | 661 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(12345)); |
661 base::TimeTicks now(testing_clock_->NowTicks()); | 662 base::TimeTicks now(testing_clock_->NowTicks()); |
662 | 663 |
663 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); | 664 std::unique_ptr<FrameEvent> capture_begin_event(new FrameEvent()); |
664 capture_begin_event->timestamp = now; | 665 capture_begin_event->timestamp = now; |
665 capture_begin_event->type = FRAME_CAPTURE_BEGIN; | 666 capture_begin_event->type = FRAME_CAPTURE_BEGIN; |
666 capture_begin_event->media_type = VIDEO_EVENT; | 667 capture_begin_event->media_type = VIDEO_EVENT; |
667 capture_begin_event->rtp_timestamp = rtp_timestamp; | 668 capture_begin_event->rtp_timestamp = rtp_timestamp; |
668 cast_environment_->logger()->DispatchFrameEvent( | 669 cast_environment_->logger()->DispatchFrameEvent( |
669 std::move(capture_begin_event)); | 670 std::move(capture_begin_event)); |
670 | 671 |
671 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent()); | 672 std::unique_ptr<FrameEvent> capture_end_event(new FrameEvent()); |
672 capture_end_event->timestamp = now; | 673 capture_end_event->timestamp = now; |
673 capture_end_event->type = FRAME_CAPTURE_END; | 674 capture_end_event->type = FRAME_CAPTURE_END; |
674 capture_end_event->media_type = VIDEO_EVENT; | 675 capture_end_event->media_type = VIDEO_EVENT; |
675 capture_end_event->rtp_timestamp = | 676 capture_end_event->rtp_timestamp = |
676 rtp_timestamp + RtpTimeDelta::FromTicks(30); | 677 rtp_timestamp + RtpTimeDelta::FromTicks(30); |
677 capture_end_event->width = 1280; | 678 capture_end_event->width = 1280; |
678 capture_end_event->height = 720; | 679 capture_end_event->height = 720; |
679 cast_environment_->logger()->DispatchFrameEvent(std::move(capture_end_event)); | 680 cast_environment_->logger()->DispatchFrameEvent(std::move(capture_end_event)); |
680 | 681 |
681 GetEventsAndReset(); | 682 GetEventsAndReset(); |
(...skipping 22 matching lines...) Expand all Loading... |
704 GetEventsAndReset(); | 705 GetEventsAndReset(); |
705 | 706 |
706 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_); | 707 EXPECT_EQ(rtp_timestamp, first_rtp_timestamp_); |
707 } | 708 } |
708 | 709 |
709 TEST_F(EncodingEventSubscriberTest, RelativeRtpTimeTicksWrapAround) { | 710 TEST_F(EncodingEventSubscriberTest, RelativeRtpTimeTicksWrapAround) { |
710 Init(VIDEO_EVENT); | 711 Init(VIDEO_EVENT); |
711 RtpTimeTicks rtp_timestamp = RtpTimeTicks() - RtpTimeDelta::FromTicks(20); | 712 RtpTimeTicks rtp_timestamp = RtpTimeTicks() - RtpTimeDelta::FromTicks(20); |
712 base::TimeTicks now(testing_clock_->NowTicks()); | 713 base::TimeTicks now(testing_clock_->NowTicks()); |
713 | 714 |
714 scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent()); | 715 std::unique_ptr<FrameEvent> capture_begin_event(new FrameEvent()); |
715 capture_begin_event->timestamp = now; | 716 capture_begin_event->timestamp = now; |
716 capture_begin_event->type = FRAME_CAPTURE_BEGIN; | 717 capture_begin_event->type = FRAME_CAPTURE_BEGIN; |
717 capture_begin_event->media_type = VIDEO_EVENT; | 718 capture_begin_event->media_type = VIDEO_EVENT; |
718 capture_begin_event->rtp_timestamp = rtp_timestamp; | 719 capture_begin_event->rtp_timestamp = rtp_timestamp; |
719 cast_environment_->logger()->DispatchFrameEvent( | 720 cast_environment_->logger()->DispatchFrameEvent( |
720 std::move(capture_begin_event)); | 721 std::move(capture_begin_event)); |
721 | 722 |
722 // RtpTimeTicks has now wrapped around. | 723 // RtpTimeTicks has now wrapped around. |
723 scoped_ptr<FrameEvent> capture_end_event(new FrameEvent()); | 724 std::unique_ptr<FrameEvent> capture_end_event(new FrameEvent()); |
724 capture_end_event->timestamp = now; | 725 capture_end_event->timestamp = now; |
725 capture_end_event->type = FRAME_CAPTURE_END; | 726 capture_end_event->type = FRAME_CAPTURE_END; |
726 capture_end_event->media_type = VIDEO_EVENT; | 727 capture_end_event->media_type = VIDEO_EVENT; |
727 capture_end_event->rtp_timestamp = | 728 capture_end_event->rtp_timestamp = |
728 rtp_timestamp + RtpTimeDelta::FromTicks(30); | 729 rtp_timestamp + RtpTimeDelta::FromTicks(30); |
729 capture_end_event->width = 1280; | 730 capture_end_event->width = 1280; |
730 capture_end_event->height = 720; | 731 capture_end_event->height = 720; |
731 cast_environment_->logger()->DispatchFrameEvent(std::move(capture_end_event)); | 732 cast_environment_->logger()->DispatchFrameEvent(std::move(capture_end_event)); |
732 | 733 |
733 GetEventsAndReset(); | 734 GetEventsAndReset(); |
734 | 735 |
735 FrameEventList::iterator it = frame_events_.begin(); | 736 FrameEventList::iterator it = frame_events_.begin(); |
736 ASSERT_NE(frame_events_.end(), it); | 737 ASSERT_NE(frame_events_.end(), it); |
737 EXPECT_EQ(0u, (*it)->relative_rtp_timestamp()); | 738 EXPECT_EQ(0u, (*it)->relative_rtp_timestamp()); |
738 | 739 |
739 ++it; | 740 ++it; |
740 ASSERT_NE(frame_events_.end(), it); | 741 ASSERT_NE(frame_events_.end(), it); |
741 EXPECT_EQ(30u, (*it)->relative_rtp_timestamp()); | 742 EXPECT_EQ(30u, (*it)->relative_rtp_timestamp()); |
742 EXPECT_EQ(1280, (*it)->width()); | 743 EXPECT_EQ(1280, (*it)->width()); |
743 EXPECT_EQ(720, (*it)->height()); | 744 EXPECT_EQ(720, (*it)->height()); |
744 } | 745 } |
745 | 746 |
746 TEST_F(EncodingEventSubscriberTest, MaxEventsPerProto) { | 747 TEST_F(EncodingEventSubscriberTest, MaxEventsPerProto) { |
747 Init(VIDEO_EVENT); | 748 Init(VIDEO_EVENT); |
748 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); | 749 RtpTimeTicks rtp_timestamp = RtpTimeTicks().Expand(UINT32_C(100)); |
749 for (int i = 0; i < kMaxEventsPerProto + 1; i++) { | 750 for (int i = 0; i < kMaxEventsPerProto + 1; i++) { |
750 scoped_ptr<FrameEvent> ack_event(new FrameEvent()); | 751 std::unique_ptr<FrameEvent> ack_event(new FrameEvent()); |
751 ack_event->timestamp = testing_clock_->NowTicks(); | 752 ack_event->timestamp = testing_clock_->NowTicks(); |
752 ack_event->type = FRAME_ACK_RECEIVED; | 753 ack_event->type = FRAME_ACK_RECEIVED; |
753 ack_event->media_type = VIDEO_EVENT; | 754 ack_event->media_type = VIDEO_EVENT; |
754 ack_event->rtp_timestamp = rtp_timestamp; | 755 ack_event->rtp_timestamp = rtp_timestamp; |
755 ack_event->frame_id = 0; | 756 ack_event->frame_id = 0; |
756 cast_environment_->logger()->DispatchFrameEvent(std::move(ack_event)); | 757 cast_environment_->logger()->DispatchFrameEvent(std::move(ack_event)); |
757 | 758 |
758 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(30)); | 759 task_runner_->Sleep(base::TimeDelta::FromMilliseconds(30)); |
759 } | 760 } |
760 | 761 |
761 GetEventsAndReset(); | 762 GetEventsAndReset(); |
762 | 763 |
763 ASSERT_EQ(2u, frame_events_.size()); | 764 ASSERT_EQ(2u, frame_events_.size()); |
764 FrameEventList::iterator frame_it = frame_events_.begin(); | 765 FrameEventList::iterator frame_it = frame_events_.begin(); |
765 ASSERT_TRUE(frame_it != frame_events_.end()); | 766 ASSERT_TRUE(frame_it != frame_events_.end()); |
766 | 767 |
767 linked_ptr<AggregatedFrameEvent> frame_event = *frame_it; | 768 linked_ptr<AggregatedFrameEvent> frame_event = *frame_it; |
768 | 769 |
769 EXPECT_EQ(kMaxEventsPerProto, frame_event->event_type_size()); | 770 EXPECT_EQ(kMaxEventsPerProto, frame_event->event_type_size()); |
770 | 771 |
771 for (int i = 0; i < kMaxPacketsPerFrame + 1; i++) { | 772 for (int i = 0; i < kMaxPacketsPerFrame + 1; i++) { |
772 scoped_ptr<PacketEvent> send_event(new PacketEvent()); | 773 std::unique_ptr<PacketEvent> send_event(new PacketEvent()); |
773 send_event->timestamp = testing_clock_->NowTicks(); | 774 send_event->timestamp = testing_clock_->NowTicks(); |
774 send_event->type = PACKET_SENT_TO_NETWORK; | 775 send_event->type = PACKET_SENT_TO_NETWORK; |
775 send_event->media_type = VIDEO_EVENT; | 776 send_event->media_type = VIDEO_EVENT; |
776 send_event->rtp_timestamp = rtp_timestamp; | 777 send_event->rtp_timestamp = rtp_timestamp; |
777 send_event->frame_id = 0; | 778 send_event->frame_id = 0; |
778 send_event->packet_id = i; | 779 send_event->packet_id = i; |
779 send_event->max_packet_id = kMaxPacketsPerFrame; | 780 send_event->max_packet_id = kMaxPacketsPerFrame; |
780 send_event->size = 123; | 781 send_event->size = 123; |
781 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); | 782 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); |
782 | 783 |
(...skipping 10 matching lines...) Expand all Loading... |
793 linked_ptr<AggregatedPacketEvent> packet_event = *packet_it; | 794 linked_ptr<AggregatedPacketEvent> packet_event = *packet_it; |
794 | 795 |
795 EXPECT_EQ(kMaxPacketsPerFrame, | 796 EXPECT_EQ(kMaxPacketsPerFrame, |
796 packet_event->base_packet_event_size()); | 797 packet_event->base_packet_event_size()); |
797 | 798 |
798 ++packet_it; | 799 ++packet_it; |
799 packet_event = *packet_it; | 800 packet_event = *packet_it; |
800 EXPECT_EQ(1, packet_event->base_packet_event_size()); | 801 EXPECT_EQ(1, packet_event->base_packet_event_size()); |
801 | 802 |
802 for (int j = 0; j < kMaxEventsPerProto + 1; j++) { | 803 for (int j = 0; j < kMaxEventsPerProto + 1; j++) { |
803 scoped_ptr<PacketEvent> send_event(new PacketEvent()); | 804 std::unique_ptr<PacketEvent> send_event(new PacketEvent()); |
804 send_event->timestamp = testing_clock_->NowTicks(); | 805 send_event->timestamp = testing_clock_->NowTicks(); |
805 send_event->type = PACKET_SENT_TO_NETWORK; | 806 send_event->type = PACKET_SENT_TO_NETWORK; |
806 send_event->media_type = VIDEO_EVENT; | 807 send_event->media_type = VIDEO_EVENT; |
807 send_event->rtp_timestamp = rtp_timestamp; | 808 send_event->rtp_timestamp = rtp_timestamp; |
808 send_event->frame_id = 0; | 809 send_event->frame_id = 0; |
809 send_event->packet_id = 0; | 810 send_event->packet_id = 0; |
810 send_event->max_packet_id = 0; | 811 send_event->max_packet_id = 0; |
811 send_event->size = 123; | 812 send_event->size = 123; |
812 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); | 813 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); |
813 | 814 |
(...skipping 11 matching lines...) Expand all Loading... |
825 EXPECT_EQ(kMaxEventsPerProto, | 826 EXPECT_EQ(kMaxEventsPerProto, |
826 packet_event->base_packet_event(0).event_type_size()); | 827 packet_event->base_packet_event(0).event_type_size()); |
827 | 828 |
828 ++packet_it; | 829 ++packet_it; |
829 packet_event = *packet_it; | 830 packet_event = *packet_it; |
830 EXPECT_EQ(1, packet_event->base_packet_event(0).event_type_size()); | 831 EXPECT_EQ(1, packet_event->base_packet_event(0).event_type_size()); |
831 } | 832 } |
832 | 833 |
833 } // namespace cast | 834 } // namespace cast |
834 } // namespace media | 835 } // namespace media |
OLD | NEW |