| 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/receiver_time_offset_estimator_impl.h" |
| 6 |
| 5 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <utility> |
| 6 | 9 |
| 7 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" |
| 8 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/test/simple_test_tick_clock.h" | 12 #include "base/test/simple_test_tick_clock.h" |
| 10 #include "base/time/tick_clock.h" | 13 #include "base/time/tick_clock.h" |
| 11 #include "media/cast/cast_environment.h" | 14 #include "media/cast/cast_environment.h" |
| 12 #include "media/cast/logging/logging_defines.h" | 15 #include "media/cast/logging/logging_defines.h" |
| 13 #include "media/cast/logging/receiver_time_offset_estimator_impl.h" | |
| 14 #include "media/cast/test/fake_single_thread_task_runner.h" | 16 #include "media/cast/test/fake_single_thread_task_runner.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
| 16 | 18 |
| 17 namespace media { | 19 namespace media { |
| 18 namespace cast { | 20 namespace cast { |
| 19 | 21 |
| 20 class ReceiverTimeOffsetEstimatorImplTest : public ::testing::Test { | 22 class ReceiverTimeOffsetEstimatorImplTest : public ::testing::Test { |
| 21 protected: | 23 protected: |
| 22 ReceiverTimeOffsetEstimatorImplTest() | 24 ReceiverTimeOffsetEstimatorImplTest() |
| 23 : sender_clock_(new base::SimpleTestTickClock()), | 25 : sender_clock_(new base::SimpleTestTickClock()), |
| 24 task_runner_(new test::FakeSingleThreadTaskRunner(sender_clock_)), | 26 task_runner_(new test::FakeSingleThreadTaskRunner(sender_clock_)), |
| 25 cast_environment_(new CastEnvironment( | 27 cast_environment_( |
| 26 scoped_ptr<base::TickClock>(sender_clock_).Pass(), | 28 new CastEnvironment(scoped_ptr<base::TickClock>(sender_clock_), |
| 27 task_runner_, | 29 task_runner_, |
| 28 task_runner_, | 30 task_runner_, |
| 29 task_runner_)) { | 31 task_runner_)) { |
| 30 cast_environment_->logger()->Subscribe(&estimator_); | 32 cast_environment_->logger()->Subscribe(&estimator_); |
| 31 } | 33 } |
| 32 | 34 |
| 33 ~ReceiverTimeOffsetEstimatorImplTest() override { | 35 ~ReceiverTimeOffsetEstimatorImplTest() override { |
| 34 cast_environment_->logger()->Unsubscribe(&estimator_); | 36 cast_environment_->logger()->Unsubscribe(&estimator_); |
| 35 } | 37 } |
| 36 | 38 |
| 37 void AdvanceClocks(base::TimeDelta time) { | 39 void AdvanceClocks(base::TimeDelta time) { |
| 38 task_runner_->Sleep(time); | 40 task_runner_->Sleep(time); |
| 39 receiver_clock_.Advance(time); | 41 receiver_clock_.Advance(time); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 69 encode_event->timestamp = sender_clock_->NowTicks(); | 71 encode_event->timestamp = sender_clock_->NowTicks(); |
| 70 encode_event->type = FRAME_ENCODED; | 72 encode_event->type = FRAME_ENCODED; |
| 71 encode_event->media_type = VIDEO_EVENT; | 73 encode_event->media_type = VIDEO_EVENT; |
| 72 encode_event->rtp_timestamp = rtp_timestamp; | 74 encode_event->rtp_timestamp = rtp_timestamp; |
| 73 encode_event->frame_id = frame_id; | 75 encode_event->frame_id = frame_id; |
| 74 encode_event->size = 1234; | 76 encode_event->size = 1234; |
| 75 encode_event->key_frame = true; | 77 encode_event->key_frame = true; |
| 76 encode_event->target_bitrate = 5678; | 78 encode_event->target_bitrate = 5678; |
| 77 encode_event->encoder_cpu_utilization = 9.10; | 79 encode_event->encoder_cpu_utilization = 9.10; |
| 78 encode_event->idealized_bitrate_utilization = 11.12; | 80 encode_event->idealized_bitrate_utilization = 11.12; |
| 79 cast_environment_->logger()->DispatchFrameEvent(encode_event.Pass()); | 81 cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event)); |
| 80 | 82 |
| 81 scoped_ptr<PacketEvent> send_event(new PacketEvent()); | 83 scoped_ptr<PacketEvent> send_event(new PacketEvent()); |
| 82 send_event->timestamp = sender_clock_->NowTicks(); | 84 send_event->timestamp = sender_clock_->NowTicks(); |
| 83 send_event->type = PACKET_SENT_TO_NETWORK; | 85 send_event->type = PACKET_SENT_TO_NETWORK; |
| 84 send_event->media_type = VIDEO_EVENT; | 86 send_event->media_type = VIDEO_EVENT; |
| 85 send_event->rtp_timestamp = rtp_timestamp; | 87 send_event->rtp_timestamp = rtp_timestamp; |
| 86 send_event->frame_id = frame_id; | 88 send_event->frame_id = frame_id; |
| 87 send_event->packet_id = 56; | 89 send_event->packet_id = 56; |
| 88 send_event->max_packet_id = 78; | 90 send_event->max_packet_id = 78; |
| 89 send_event->size = 1500; | 91 send_event->size = 1500; |
| 90 cast_environment_->logger()->DispatchPacketEvent(send_event.Pass()); | 92 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); |
| 91 | 93 |
| 92 EXPECT_FALSE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); | 94 EXPECT_FALSE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); |
| 93 | 95 |
| 94 AdvanceClocks(base::TimeDelta::FromMilliseconds(10)); | 96 AdvanceClocks(base::TimeDelta::FromMilliseconds(10)); |
| 95 scoped_ptr<FrameEvent> ack_sent_event(new FrameEvent()); | 97 scoped_ptr<FrameEvent> ack_sent_event(new FrameEvent()); |
| 96 ack_sent_event->timestamp = receiver_clock_.NowTicks(); | 98 ack_sent_event->timestamp = receiver_clock_.NowTicks(); |
| 97 ack_sent_event->type = FRAME_ACK_SENT; | 99 ack_sent_event->type = FRAME_ACK_SENT; |
| 98 ack_sent_event->media_type = VIDEO_EVENT; | 100 ack_sent_event->media_type = VIDEO_EVENT; |
| 99 ack_sent_event->rtp_timestamp = rtp_timestamp; | 101 ack_sent_event->rtp_timestamp = rtp_timestamp; |
| 100 ack_sent_event->frame_id = frame_id; | 102 ack_sent_event->frame_id = frame_id; |
| 101 cast_environment_->logger()->DispatchFrameEvent(ack_sent_event.Pass()); | 103 cast_environment_->logger()->DispatchFrameEvent(std::move(ack_sent_event)); |
| 102 | 104 |
| 103 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); | 105 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); |
| 104 receive_event->timestamp = receiver_clock_.NowTicks(); | 106 receive_event->timestamp = receiver_clock_.NowTicks(); |
| 105 receive_event->type = PACKET_RECEIVED; | 107 receive_event->type = PACKET_RECEIVED; |
| 106 receive_event->media_type = VIDEO_EVENT; | 108 receive_event->media_type = VIDEO_EVENT; |
| 107 receive_event->rtp_timestamp = rtp_timestamp; | 109 receive_event->rtp_timestamp = rtp_timestamp; |
| 108 receive_event->frame_id = frame_id; | 110 receive_event->frame_id = frame_id; |
| 109 receive_event->packet_id = 56; | 111 receive_event->packet_id = 56; |
| 110 receive_event->max_packet_id = 78; | 112 receive_event->max_packet_id = 78; |
| 111 receive_event->size = 1500; | 113 receive_event->size = 1500; |
| 112 cast_environment_->logger()->DispatchPacketEvent(receive_event.Pass()); | 114 cast_environment_->logger()->DispatchPacketEvent(std::move(receive_event)); |
| 113 | 115 |
| 114 EXPECT_FALSE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); | 116 EXPECT_FALSE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); |
| 115 | 117 |
| 116 AdvanceClocks(base::TimeDelta::FromMilliseconds(30)); | 118 AdvanceClocks(base::TimeDelta::FromMilliseconds(30)); |
| 117 scoped_ptr<FrameEvent> ack_event(new FrameEvent()); | 119 scoped_ptr<FrameEvent> ack_event(new FrameEvent()); |
| 118 ack_event->timestamp = sender_clock_->NowTicks(); | 120 ack_event->timestamp = sender_clock_->NowTicks(); |
| 119 ack_event->type = FRAME_ACK_RECEIVED; | 121 ack_event->type = FRAME_ACK_RECEIVED; |
| 120 ack_event->media_type = VIDEO_EVENT; | 122 ack_event->media_type = VIDEO_EVENT; |
| 121 ack_event->rtp_timestamp = rtp_timestamp; | 123 ack_event->rtp_timestamp = rtp_timestamp; |
| 122 ack_event->frame_id = frame_id; | 124 ack_event->frame_id = frame_id; |
| 123 cast_environment_->logger()->DispatchFrameEvent(ack_event.Pass()); | 125 cast_environment_->logger()->DispatchFrameEvent(std::move(ack_event)); |
| 124 | 126 |
| 125 EXPECT_TRUE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); | 127 EXPECT_TRUE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); |
| 126 | 128 |
| 127 int64_t lower_bound_ms = lower_bound.InMilliseconds(); | 129 int64_t lower_bound_ms = lower_bound.InMilliseconds(); |
| 128 int64_t upper_bound_ms = upper_bound.InMilliseconds(); | 130 int64_t upper_bound_ms = upper_bound.InMilliseconds(); |
| 129 EXPECT_EQ(70, lower_bound_ms); | 131 EXPECT_EQ(70, lower_bound_ms); |
| 130 EXPECT_EQ(110, upper_bound_ms); | 132 EXPECT_EQ(110, upper_bound_ms); |
| 131 EXPECT_GE(true_offset_ms, lower_bound_ms); | 133 EXPECT_GE(true_offset_ms, lower_bound_ms); |
| 132 EXPECT_LE(true_offset_ms, upper_bound_ms); | 134 EXPECT_LE(true_offset_ms, upper_bound_ms); |
| 133 } | 135 } |
| (...skipping 18 matching lines...) Expand all Loading... |
| 152 encode_event->timestamp = sender_clock_->NowTicks(); | 154 encode_event->timestamp = sender_clock_->NowTicks(); |
| 153 encode_event->type = FRAME_ENCODED; | 155 encode_event->type = FRAME_ENCODED; |
| 154 encode_event->media_type = VIDEO_EVENT; | 156 encode_event->media_type = VIDEO_EVENT; |
| 155 encode_event->rtp_timestamp = rtp_timestamp; | 157 encode_event->rtp_timestamp = rtp_timestamp; |
| 156 encode_event->frame_id = frame_id; | 158 encode_event->frame_id = frame_id; |
| 157 encode_event->size = 1234; | 159 encode_event->size = 1234; |
| 158 encode_event->key_frame = true; | 160 encode_event->key_frame = true; |
| 159 encode_event->target_bitrate = 5678; | 161 encode_event->target_bitrate = 5678; |
| 160 encode_event->encoder_cpu_utilization = 9.10; | 162 encode_event->encoder_cpu_utilization = 9.10; |
| 161 encode_event->idealized_bitrate_utilization = 11.12; | 163 encode_event->idealized_bitrate_utilization = 11.12; |
| 162 cast_environment_->logger()->DispatchFrameEvent(encode_event.Pass()); | 164 cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event)); |
| 163 | 165 |
| 164 scoped_ptr<PacketEvent> send_event(new PacketEvent()); | 166 scoped_ptr<PacketEvent> send_event(new PacketEvent()); |
| 165 send_event->timestamp = sender_clock_->NowTicks(); | 167 send_event->timestamp = sender_clock_->NowTicks(); |
| 166 send_event->type = PACKET_SENT_TO_NETWORK; | 168 send_event->type = PACKET_SENT_TO_NETWORK; |
| 167 send_event->media_type = VIDEO_EVENT; | 169 send_event->media_type = VIDEO_EVENT; |
| 168 send_event->rtp_timestamp = rtp_timestamp; | 170 send_event->rtp_timestamp = rtp_timestamp; |
| 169 send_event->frame_id = frame_id; | 171 send_event->frame_id = frame_id; |
| 170 send_event->packet_id = 56; | 172 send_event->packet_id = 56; |
| 171 send_event->max_packet_id = 78; | 173 send_event->max_packet_id = 78; |
| 172 send_event->size = 1500; | 174 send_event->size = 1500; |
| 173 cast_environment_->logger()->DispatchPacketEvent(send_event.Pass()); | 175 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); |
| 174 | 176 |
| 175 EXPECT_FALSE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); | 177 EXPECT_FALSE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); |
| 176 | 178 |
| 177 AdvanceClocks(base::TimeDelta::FromMilliseconds(10)); | 179 AdvanceClocks(base::TimeDelta::FromMilliseconds(10)); |
| 178 base::TimeTicks event_b_time = receiver_clock_.NowTicks(); | 180 base::TimeTicks event_b_time = receiver_clock_.NowTicks(); |
| 179 AdvanceClocks(base::TimeDelta::FromMilliseconds(30)); | 181 AdvanceClocks(base::TimeDelta::FromMilliseconds(30)); |
| 180 base::TimeTicks event_c_time = sender_clock_->NowTicks(); | 182 base::TimeTicks event_c_time = sender_clock_->NowTicks(); |
| 181 | 183 |
| 182 scoped_ptr<FrameEvent> ack_event(new FrameEvent()); | 184 scoped_ptr<FrameEvent> ack_event(new FrameEvent()); |
| 183 ack_event->timestamp = event_c_time; | 185 ack_event->timestamp = event_c_time; |
| 184 ack_event->type = FRAME_ACK_RECEIVED; | 186 ack_event->type = FRAME_ACK_RECEIVED; |
| 185 ack_event->media_type = VIDEO_EVENT; | 187 ack_event->media_type = VIDEO_EVENT; |
| 186 ack_event->rtp_timestamp = rtp_timestamp; | 188 ack_event->rtp_timestamp = rtp_timestamp; |
| 187 ack_event->frame_id = frame_id; | 189 ack_event->frame_id = frame_id; |
| 188 cast_environment_->logger()->DispatchFrameEvent(ack_event.Pass()); | 190 cast_environment_->logger()->DispatchFrameEvent(std::move(ack_event)); |
| 189 | 191 |
| 190 EXPECT_FALSE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); | 192 EXPECT_FALSE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); |
| 191 | 193 |
| 192 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); | 194 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); |
| 193 receive_event->timestamp = event_b_time; | 195 receive_event->timestamp = event_b_time; |
| 194 receive_event->type = PACKET_RECEIVED; | 196 receive_event->type = PACKET_RECEIVED; |
| 195 receive_event->media_type = VIDEO_EVENT; | 197 receive_event->media_type = VIDEO_EVENT; |
| 196 receive_event->rtp_timestamp = rtp_timestamp; | 198 receive_event->rtp_timestamp = rtp_timestamp; |
| 197 receive_event->frame_id = frame_id; | 199 receive_event->frame_id = frame_id; |
| 198 receive_event->packet_id = 56; | 200 receive_event->packet_id = 56; |
| 199 receive_event->max_packet_id = 78; | 201 receive_event->max_packet_id = 78; |
| 200 receive_event->size = 1500; | 202 receive_event->size = 1500; |
| 201 cast_environment_->logger()->DispatchPacketEvent(receive_event.Pass()); | 203 cast_environment_->logger()->DispatchPacketEvent(std::move(receive_event)); |
| 202 | 204 |
| 203 scoped_ptr<FrameEvent> ack_sent_event(new FrameEvent()); | 205 scoped_ptr<FrameEvent> ack_sent_event(new FrameEvent()); |
| 204 ack_sent_event->timestamp = event_b_time; | 206 ack_sent_event->timestamp = event_b_time; |
| 205 ack_sent_event->type = FRAME_ACK_SENT; | 207 ack_sent_event->type = FRAME_ACK_SENT; |
| 206 ack_sent_event->media_type = VIDEO_EVENT; | 208 ack_sent_event->media_type = VIDEO_EVENT; |
| 207 ack_sent_event->rtp_timestamp = rtp_timestamp; | 209 ack_sent_event->rtp_timestamp = rtp_timestamp; |
| 208 ack_sent_event->frame_id = frame_id; | 210 ack_sent_event->frame_id = frame_id; |
| 209 cast_environment_->logger()->DispatchFrameEvent(ack_sent_event.Pass()); | 211 cast_environment_->logger()->DispatchFrameEvent(std::move(ack_sent_event)); |
| 210 | 212 |
| 211 EXPECT_TRUE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); | 213 EXPECT_TRUE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); |
| 212 | 214 |
| 213 int64_t lower_bound_ms = lower_bound.InMilliseconds(); | 215 int64_t lower_bound_ms = lower_bound.InMilliseconds(); |
| 214 int64_t upper_bound_ms = upper_bound.InMilliseconds(); | 216 int64_t upper_bound_ms = upper_bound.InMilliseconds(); |
| 215 EXPECT_EQ(70, lower_bound_ms); | 217 EXPECT_EQ(70, lower_bound_ms); |
| 216 EXPECT_EQ(110, upper_bound_ms); | 218 EXPECT_EQ(110, upper_bound_ms); |
| 217 EXPECT_GE(true_offset_ms, lower_bound_ms); | 219 EXPECT_GE(true_offset_ms, lower_bound_ms); |
| 218 EXPECT_LE(true_offset_ms, upper_bound_ms); | 220 EXPECT_LE(true_offset_ms, upper_bound_ms); |
| 219 } | 221 } |
| (...skipping 22 matching lines...) Expand all Loading... |
| 242 encode_event->timestamp = sender_clock_->NowTicks(); | 244 encode_event->timestamp = sender_clock_->NowTicks(); |
| 243 encode_event->type = FRAME_ENCODED; | 245 encode_event->type = FRAME_ENCODED; |
| 244 encode_event->media_type = VIDEO_EVENT; | 246 encode_event->media_type = VIDEO_EVENT; |
| 245 encode_event->rtp_timestamp = rtp_timestamp_a; | 247 encode_event->rtp_timestamp = rtp_timestamp_a; |
| 246 encode_event->frame_id = frame_id_a; | 248 encode_event->frame_id = frame_id_a; |
| 247 encode_event->size = 1234; | 249 encode_event->size = 1234; |
| 248 encode_event->key_frame = true; | 250 encode_event->key_frame = true; |
| 249 encode_event->target_bitrate = 5678; | 251 encode_event->target_bitrate = 5678; |
| 250 encode_event->encoder_cpu_utilization = 9.10; | 252 encode_event->encoder_cpu_utilization = 9.10; |
| 251 encode_event->idealized_bitrate_utilization = 11.12; | 253 encode_event->idealized_bitrate_utilization = 11.12; |
| 252 cast_environment_->logger()->DispatchFrameEvent(encode_event.Pass()); | 254 cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event)); |
| 253 | 255 |
| 254 scoped_ptr<PacketEvent> send_event(new PacketEvent()); | 256 scoped_ptr<PacketEvent> send_event(new PacketEvent()); |
| 255 send_event->timestamp = sender_clock_->NowTicks(); | 257 send_event->timestamp = sender_clock_->NowTicks(); |
| 256 send_event->type = PACKET_SENT_TO_NETWORK; | 258 send_event->type = PACKET_SENT_TO_NETWORK; |
| 257 send_event->media_type = VIDEO_EVENT; | 259 send_event->media_type = VIDEO_EVENT; |
| 258 send_event->rtp_timestamp = rtp_timestamp_a; | 260 send_event->rtp_timestamp = rtp_timestamp_a; |
| 259 send_event->frame_id = frame_id_a; | 261 send_event->frame_id = frame_id_a; |
| 260 send_event->packet_id = 56; | 262 send_event->packet_id = 56; |
| 261 send_event->max_packet_id = 78; | 263 send_event->max_packet_id = 78; |
| 262 send_event->size = 1500; | 264 send_event->size = 1500; |
| 263 cast_environment_->logger()->DispatchPacketEvent(send_event.Pass()); | 265 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); |
| 264 | 266 |
| 265 AdvanceClocks(base::TimeDelta::FromMilliseconds(10)); | 267 AdvanceClocks(base::TimeDelta::FromMilliseconds(10)); |
| 266 encode_event.reset(new FrameEvent()); | 268 encode_event.reset(new FrameEvent()); |
| 267 encode_event->timestamp = sender_clock_->NowTicks(); | 269 encode_event->timestamp = sender_clock_->NowTicks(); |
| 268 encode_event->type = FRAME_ENCODED; | 270 encode_event->type = FRAME_ENCODED; |
| 269 encode_event->media_type = VIDEO_EVENT; | 271 encode_event->media_type = VIDEO_EVENT; |
| 270 encode_event->rtp_timestamp = rtp_timestamp_b; | 272 encode_event->rtp_timestamp = rtp_timestamp_b; |
| 271 encode_event->frame_id = frame_id_b; | 273 encode_event->frame_id = frame_id_b; |
| 272 encode_event->size = 1234; | 274 encode_event->size = 1234; |
| 273 encode_event->key_frame = true; | 275 encode_event->key_frame = true; |
| 274 encode_event->target_bitrate = 5678; | 276 encode_event->target_bitrate = 5678; |
| 275 encode_event->encoder_cpu_utilization = 9.10; | 277 encode_event->encoder_cpu_utilization = 9.10; |
| 276 encode_event->idealized_bitrate_utilization = 11.12; | 278 encode_event->idealized_bitrate_utilization = 11.12; |
| 277 cast_environment_->logger()->DispatchFrameEvent(encode_event.Pass()); | 279 cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event)); |
| 278 | 280 |
| 279 send_event.reset(new PacketEvent()); | 281 send_event.reset(new PacketEvent()); |
| 280 send_event->timestamp = sender_clock_->NowTicks(); | 282 send_event->timestamp = sender_clock_->NowTicks(); |
| 281 send_event->type = PACKET_SENT_TO_NETWORK; | 283 send_event->type = PACKET_SENT_TO_NETWORK; |
| 282 send_event->media_type = VIDEO_EVENT; | 284 send_event->media_type = VIDEO_EVENT; |
| 283 send_event->rtp_timestamp = rtp_timestamp_b; | 285 send_event->rtp_timestamp = rtp_timestamp_b; |
| 284 send_event->frame_id = frame_id_b; | 286 send_event->frame_id = frame_id_b; |
| 285 send_event->packet_id = 56; | 287 send_event->packet_id = 56; |
| 286 send_event->max_packet_id = 78; | 288 send_event->max_packet_id = 78; |
| 287 send_event->size = 1500; | 289 send_event->size = 1500; |
| 288 cast_environment_->logger()->DispatchPacketEvent(send_event.Pass()); | 290 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); |
| 289 | 291 |
| 290 scoped_ptr<FrameEvent> ack_sent_event(new FrameEvent()); | 292 scoped_ptr<FrameEvent> ack_sent_event(new FrameEvent()); |
| 291 ack_sent_event->timestamp = receiver_clock_.NowTicks(); | 293 ack_sent_event->timestamp = receiver_clock_.NowTicks(); |
| 292 ack_sent_event->type = FRAME_ACK_SENT; | 294 ack_sent_event->type = FRAME_ACK_SENT; |
| 293 ack_sent_event->media_type = VIDEO_EVENT; | 295 ack_sent_event->media_type = VIDEO_EVENT; |
| 294 ack_sent_event->rtp_timestamp = rtp_timestamp_a; | 296 ack_sent_event->rtp_timestamp = rtp_timestamp_a; |
| 295 ack_sent_event->frame_id = frame_id_a; | 297 ack_sent_event->frame_id = frame_id_a; |
| 296 cast_environment_->logger()->DispatchFrameEvent(ack_sent_event.Pass()); | 298 cast_environment_->logger()->DispatchFrameEvent(std::move(ack_sent_event)); |
| 297 | 299 |
| 298 AdvanceClocks(base::TimeDelta::FromMilliseconds(20)); | 300 AdvanceClocks(base::TimeDelta::FromMilliseconds(20)); |
| 299 | 301 |
| 300 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); | 302 scoped_ptr<PacketEvent> receive_event(new PacketEvent()); |
| 301 receive_event->timestamp = receiver_clock_.NowTicks(); | 303 receive_event->timestamp = receiver_clock_.NowTicks(); |
| 302 receive_event->type = PACKET_RECEIVED; | 304 receive_event->type = PACKET_RECEIVED; |
| 303 receive_event->media_type = VIDEO_EVENT; | 305 receive_event->media_type = VIDEO_EVENT; |
| 304 receive_event->rtp_timestamp = rtp_timestamp_b; | 306 receive_event->rtp_timestamp = rtp_timestamp_b; |
| 305 receive_event->frame_id = frame_id_b; | 307 receive_event->frame_id = frame_id_b; |
| 306 receive_event->packet_id = 56; | 308 receive_event->packet_id = 56; |
| 307 receive_event->max_packet_id = 78; | 309 receive_event->max_packet_id = 78; |
| 308 receive_event->size = 1500; | 310 receive_event->size = 1500; |
| 309 cast_environment_->logger()->DispatchPacketEvent(receive_event.Pass()); | 311 cast_environment_->logger()->DispatchPacketEvent(std::move(receive_event)); |
| 310 | 312 |
| 311 ack_sent_event.reset(new FrameEvent()); | 313 ack_sent_event.reset(new FrameEvent()); |
| 312 ack_sent_event->timestamp = receiver_clock_.NowTicks(); | 314 ack_sent_event->timestamp = receiver_clock_.NowTicks(); |
| 313 ack_sent_event->type = FRAME_ACK_SENT; | 315 ack_sent_event->type = FRAME_ACK_SENT; |
| 314 ack_sent_event->media_type = VIDEO_EVENT; | 316 ack_sent_event->media_type = VIDEO_EVENT; |
| 315 ack_sent_event->rtp_timestamp = rtp_timestamp_b; | 317 ack_sent_event->rtp_timestamp = rtp_timestamp_b; |
| 316 ack_sent_event->frame_id = frame_id_b; | 318 ack_sent_event->frame_id = frame_id_b; |
| 317 cast_environment_->logger()->DispatchFrameEvent(ack_sent_event.Pass()); | 319 cast_environment_->logger()->DispatchFrameEvent(std::move(ack_sent_event)); |
| 318 | 320 |
| 319 AdvanceClocks(base::TimeDelta::FromMilliseconds(5)); | 321 AdvanceClocks(base::TimeDelta::FromMilliseconds(5)); |
| 320 scoped_ptr<FrameEvent> ack_event(new FrameEvent()); | 322 scoped_ptr<FrameEvent> ack_event(new FrameEvent()); |
| 321 ack_event->timestamp = sender_clock_->NowTicks(); | 323 ack_event->timestamp = sender_clock_->NowTicks(); |
| 322 ack_event->type = FRAME_ACK_RECEIVED; | 324 ack_event->type = FRAME_ACK_RECEIVED; |
| 323 ack_event->media_type = VIDEO_EVENT; | 325 ack_event->media_type = VIDEO_EVENT; |
| 324 ack_event->rtp_timestamp = rtp_timestamp_b; | 326 ack_event->rtp_timestamp = rtp_timestamp_b; |
| 325 ack_event->frame_id = frame_id_b; | 327 ack_event->frame_id = frame_id_b; |
| 326 cast_environment_->logger()->DispatchFrameEvent(ack_event.Pass()); | 328 cast_environment_->logger()->DispatchFrameEvent(std::move(ack_event)); |
| 327 | 329 |
| 328 AdvanceClocks(base::TimeDelta::FromMilliseconds(5)); | 330 AdvanceClocks(base::TimeDelta::FromMilliseconds(5)); |
| 329 ack_event.reset(new FrameEvent()); | 331 ack_event.reset(new FrameEvent()); |
| 330 ack_event->timestamp = sender_clock_->NowTicks(); | 332 ack_event->timestamp = sender_clock_->NowTicks(); |
| 331 ack_event->type = FRAME_ACK_RECEIVED; | 333 ack_event->type = FRAME_ACK_RECEIVED; |
| 332 ack_event->media_type = VIDEO_EVENT; | 334 ack_event->media_type = VIDEO_EVENT; |
| 333 ack_event->rtp_timestamp = rtp_timestamp_a; | 335 ack_event->rtp_timestamp = rtp_timestamp_a; |
| 334 ack_event->frame_id = frame_id_a; | 336 ack_event->frame_id = frame_id_a; |
| 335 cast_environment_->logger()->DispatchFrameEvent(ack_event.Pass()); | 337 cast_environment_->logger()->DispatchFrameEvent(std::move(ack_event)); |
| 336 | 338 |
| 337 AdvanceClocks(base::TimeDelta::FromMilliseconds(17)); | 339 AdvanceClocks(base::TimeDelta::FromMilliseconds(17)); |
| 338 encode_event.reset(new FrameEvent()); | 340 encode_event.reset(new FrameEvent()); |
| 339 encode_event->timestamp = sender_clock_->NowTicks(); | 341 encode_event->timestamp = sender_clock_->NowTicks(); |
| 340 encode_event->type = FRAME_ENCODED; | 342 encode_event->type = FRAME_ENCODED; |
| 341 encode_event->media_type = VIDEO_EVENT; | 343 encode_event->media_type = VIDEO_EVENT; |
| 342 encode_event->rtp_timestamp = rtp_timestamp_c; | 344 encode_event->rtp_timestamp = rtp_timestamp_c; |
| 343 encode_event->frame_id = frame_id_c; | 345 encode_event->frame_id = frame_id_c; |
| 344 encode_event->size = 1234; | 346 encode_event->size = 1234; |
| 345 encode_event->key_frame = true; | 347 encode_event->key_frame = true; |
| 346 encode_event->target_bitrate = 5678; | 348 encode_event->target_bitrate = 5678; |
| 347 encode_event->encoder_cpu_utilization = 9.10; | 349 encode_event->encoder_cpu_utilization = 9.10; |
| 348 encode_event->idealized_bitrate_utilization = 11.12; | 350 encode_event->idealized_bitrate_utilization = 11.12; |
| 349 cast_environment_->logger()->DispatchFrameEvent(encode_event.Pass()); | 351 cast_environment_->logger()->DispatchFrameEvent(std::move(encode_event)); |
| 350 | 352 |
| 351 send_event.reset(new PacketEvent()); | 353 send_event.reset(new PacketEvent()); |
| 352 send_event->timestamp = sender_clock_->NowTicks(); | 354 send_event->timestamp = sender_clock_->NowTicks(); |
| 353 send_event->type = PACKET_SENT_TO_NETWORK; | 355 send_event->type = PACKET_SENT_TO_NETWORK; |
| 354 send_event->media_type = VIDEO_EVENT; | 356 send_event->media_type = VIDEO_EVENT; |
| 355 send_event->rtp_timestamp = rtp_timestamp_c; | 357 send_event->rtp_timestamp = rtp_timestamp_c; |
| 356 send_event->frame_id = frame_id_c; | 358 send_event->frame_id = frame_id_c; |
| 357 send_event->packet_id = 56; | 359 send_event->packet_id = 56; |
| 358 send_event->max_packet_id = 78; | 360 send_event->max_packet_id = 78; |
| 359 send_event->size = 1500; | 361 send_event->size = 1500; |
| 360 cast_environment_->logger()->DispatchPacketEvent(send_event.Pass()); | 362 cast_environment_->logger()->DispatchPacketEvent(std::move(send_event)); |
| 361 | 363 |
| 362 AdvanceClocks(base::TimeDelta::FromMilliseconds(3)); | 364 AdvanceClocks(base::TimeDelta::FromMilliseconds(3)); |
| 363 receive_event.reset(new PacketEvent()); | 365 receive_event.reset(new PacketEvent()); |
| 364 receive_event->timestamp = receiver_clock_.NowTicks(); | 366 receive_event->timestamp = receiver_clock_.NowTicks(); |
| 365 receive_event->type = PACKET_RECEIVED; | 367 receive_event->type = PACKET_RECEIVED; |
| 366 receive_event->media_type = VIDEO_EVENT; | 368 receive_event->media_type = VIDEO_EVENT; |
| 367 receive_event->rtp_timestamp = rtp_timestamp_c; | 369 receive_event->rtp_timestamp = rtp_timestamp_c; |
| 368 receive_event->frame_id = frame_id_c; | 370 receive_event->frame_id = frame_id_c; |
| 369 receive_event->packet_id = 56; | 371 receive_event->packet_id = 56; |
| 370 receive_event->max_packet_id = 78; | 372 receive_event->max_packet_id = 78; |
| 371 receive_event->size = 1500; | 373 receive_event->size = 1500; |
| 372 cast_environment_->logger()->DispatchPacketEvent(receive_event.Pass()); | 374 cast_environment_->logger()->DispatchPacketEvent(std::move(receive_event)); |
| 373 | 375 |
| 374 ack_sent_event.reset(new FrameEvent()); | 376 ack_sent_event.reset(new FrameEvent()); |
| 375 ack_sent_event->timestamp = receiver_clock_.NowTicks(); | 377 ack_sent_event->timestamp = receiver_clock_.NowTicks(); |
| 376 ack_sent_event->type = FRAME_ACK_SENT; | 378 ack_sent_event->type = FRAME_ACK_SENT; |
| 377 ack_sent_event->media_type = VIDEO_EVENT; | 379 ack_sent_event->media_type = VIDEO_EVENT; |
| 378 ack_sent_event->rtp_timestamp = rtp_timestamp_c; | 380 ack_sent_event->rtp_timestamp = rtp_timestamp_c; |
| 379 ack_sent_event->frame_id = frame_id_c; | 381 ack_sent_event->frame_id = frame_id_c; |
| 380 cast_environment_->logger()->DispatchFrameEvent(ack_sent_event.Pass()); | 382 cast_environment_->logger()->DispatchFrameEvent(std::move(ack_sent_event)); |
| 381 | 383 |
| 382 AdvanceClocks(base::TimeDelta::FromMilliseconds(30)); | 384 AdvanceClocks(base::TimeDelta::FromMilliseconds(30)); |
| 383 ack_event.reset(new FrameEvent()); | 385 ack_event.reset(new FrameEvent()); |
| 384 ack_event->timestamp = sender_clock_->NowTicks(); | 386 ack_event->timestamp = sender_clock_->NowTicks(); |
| 385 ack_event->type = FRAME_ACK_RECEIVED; | 387 ack_event->type = FRAME_ACK_RECEIVED; |
| 386 ack_event->media_type = VIDEO_EVENT; | 388 ack_event->media_type = VIDEO_EVENT; |
| 387 ack_event->rtp_timestamp = rtp_timestamp_c; | 389 ack_event->rtp_timestamp = rtp_timestamp_c; |
| 388 ack_event->frame_id = frame_id_c; | 390 ack_event->frame_id = frame_id_c; |
| 389 cast_environment_->logger()->DispatchFrameEvent(ack_event.Pass()); | 391 cast_environment_->logger()->DispatchFrameEvent(std::move(ack_event)); |
| 390 | 392 |
| 391 EXPECT_TRUE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); | 393 EXPECT_TRUE(estimator_.GetReceiverOffsetBounds(&lower_bound, &upper_bound)); |
| 392 int64_t lower_bound_ms = lower_bound.InMilliseconds(); | 394 int64_t lower_bound_ms = lower_bound.InMilliseconds(); |
| 393 int64_t upper_bound_ms = upper_bound.InMilliseconds(); | 395 int64_t upper_bound_ms = upper_bound.InMilliseconds(); |
| 394 EXPECT_GT(lower_bound_ms, 90); | 396 EXPECT_GT(lower_bound_ms, 90); |
| 395 EXPECT_LE(lower_bound_ms, true_offset_ms); | 397 EXPECT_LE(lower_bound_ms, true_offset_ms); |
| 396 EXPECT_LT(upper_bound_ms, 150); | 398 EXPECT_LT(upper_bound_ms, 150); |
| 397 EXPECT_GT(upper_bound_ms, true_offset_ms); | 399 EXPECT_GT(upper_bound_ms, true_offset_ms); |
| 398 } | 400 } |
| 399 | 401 |
| 400 } // namespace cast | 402 } // namespace cast |
| 401 } // namespace media | 403 } // namespace media |
| OLD | NEW |