| 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 |