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 "base/memory/ref_counted.h" | 5 #include "base/memory/ref_counted.h" |
6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
7 #include "base/test/simple_test_tick_clock.h" | 7 #include "base/test/simple_test_tick_clock.h" |
8 #include "base/time/tick_clock.h" | 8 #include "base/time/tick_clock.h" |
9 #include "media/cast/cast_environment.h" | 9 #include "media/cast/cast_environment.h" |
10 #include "media/cast/logging/logging_defines.h" | 10 #include "media/cast/logging/logging_defines.h" |
(...skipping 29 matching lines...) Expand all Loading... |
40 } | 40 } |
41 | 41 |
42 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. | 42 base::SimpleTestTickClock* testing_clock_; // Owned by CastEnvironment. |
43 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; | 43 scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_; |
44 scoped_refptr<CastEnvironment> cast_environment_; | 44 scoped_refptr<CastEnvironment> cast_environment_; |
45 SenderRtcpEventSubscriber event_subscriber_; | 45 SenderRtcpEventSubscriber event_subscriber_; |
46 }; | 46 }; |
47 | 47 |
48 TEST_F(SenderRtcpEventSubscriberTest, InsertEntry) { | 48 TEST_F(SenderRtcpEventSubscriberTest, InsertEntry) { |
49 cast_environment_->Logging()->InsertFrameEvent( | 49 cast_environment_->Logging()->InsertFrameEvent( |
50 testing_clock_->NowTicks(), kVideoFrameCaptureBegin, 100u, 1u); | 50 testing_clock_->NowTicks(), FRAME_CAPTURE_BEGIN, VIDEO_EVENT, 100u, 1u); |
51 cast_environment_->Logging()->InsertFrameEvent( | 51 cast_environment_->Logging()->InsertFrameEvent( |
52 testing_clock_->NowTicks(), kVideoFrameCaptureBegin, 200u, 2u); | 52 testing_clock_->NowTicks(), FRAME_CAPTURE_BEGIN, VIDEO_EVENT, 200u, 2u); |
53 cast_environment_->Logging()->InsertFrameEvent( | |
54 testing_clock_->NowTicks(), kVideoFrameSentToEncoder, 100u, 1u); | |
55 cast_environment_->Logging()->InsertFrameEvent(testing_clock_->NowTicks(), | 53 cast_environment_->Logging()->InsertFrameEvent(testing_clock_->NowTicks(), |
56 kVideoFrameEncoded, 100u, 1u); | 54 FRAME_ENCODED, VIDEO_EVENT, |
| 55 100u, 1u); |
57 cast_environment_->Logging()->InsertFrameEvent(testing_clock_->NowTicks(), | 56 cast_environment_->Logging()->InsertFrameEvent(testing_clock_->NowTicks(), |
58 kVideoFrameEncoded, 300u, 3u); | 57 FRAME_ENCODED, VIDEO_EVENT, |
59 cast_environment_->Logging()->InsertFrameEvent( | 58 300u, 3u); |
60 testing_clock_->NowTicks(), kVideoFrameSentToEncoder, 300u, 3u); | |
61 | 59 |
62 RtcpEventMap events; | 60 RtcpEventMap events; |
63 event_subscriber_.GetRtcpEventsAndReset(&events); | 61 event_subscriber_.GetRtcpEventsAndReset(&events); |
64 | 62 |
65 ASSERT_EQ(3u, events.size()); | 63 ASSERT_EQ(3u, events.size()); |
66 | 64 |
67 RtcpEventMap::iterator it = events.begin(); | 65 RtcpEventMap::iterator it = events.begin(); |
68 EXPECT_EQ(100u, it->first); | 66 EXPECT_EQ(100u, it->first); |
69 EXPECT_EQ(kVideoFrameEncoded, it->second.type); | 67 EXPECT_EQ(FRAME_ENCODED, it->second.type); |
70 | 68 |
71 ++it; | 69 ++it; |
72 EXPECT_EQ(200u, it->first); | 70 EXPECT_EQ(200u, it->first); |
73 EXPECT_EQ(kVideoFrameCaptureBegin, it->second.type); | 71 EXPECT_EQ(FRAME_CAPTURE_BEGIN, it->second.type); |
74 | 72 |
75 ++it; | 73 ++it; |
76 EXPECT_EQ(300u, it->first); | 74 EXPECT_EQ(300u, it->first); |
77 EXPECT_EQ(kVideoFrameEncoded, it->second.type); | 75 EXPECT_EQ(FRAME_ENCODED, it->second.type); |
78 } | 76 } |
79 | 77 |
80 TEST_F(SenderRtcpEventSubscriberTest, MapReset) { | 78 TEST_F(SenderRtcpEventSubscriberTest, MapReset) { |
81 cast_environment_->Logging()->InsertFrameEvent( | 79 cast_environment_->Logging()->InsertFrameEvent( |
82 testing_clock_->NowTicks(), kVideoFrameCaptureBegin, 100u, 1u); | 80 testing_clock_->NowTicks(), FRAME_CAPTURE_BEGIN, VIDEO_EVENT, 100u, 1u); |
83 | 81 |
84 RtcpEventMap events; | 82 RtcpEventMap events; |
85 event_subscriber_.GetRtcpEventsAndReset(&events); | 83 event_subscriber_.GetRtcpEventsAndReset(&events); |
86 EXPECT_EQ(1u, events.size()); | 84 EXPECT_EQ(1u, events.size()); |
87 | 85 |
88 // Call again without any logging in between, should return empty map. | 86 // Call again without any logging in between, should return empty map. |
89 event_subscriber_.GetRtcpEventsAndReset(&events); | 87 event_subscriber_.GetRtcpEventsAndReset(&events); |
90 EXPECT_TRUE(events.empty()); | 88 EXPECT_TRUE(events.empty()); |
91 } | 89 } |
92 | 90 |
93 TEST_F(SenderRtcpEventSubscriberTest, DropEventsWhenSizeExceeded) { | 91 TEST_F(SenderRtcpEventSubscriberTest, DropEventsWhenSizeExceeded) { |
94 for (uint32 i = 1u; i <= 10u; ++i) { | 92 for (uint32 i = 1u; i <= 10u; ++i) { |
95 cast_environment_->Logging()->InsertFrameEvent( | 93 cast_environment_->Logging()->InsertFrameEvent( |
96 testing_clock_->NowTicks(), kVideoFrameCaptureBegin, i * 10, i); | 94 testing_clock_->NowTicks(), FRAME_CAPTURE_BEGIN, VIDEO_EVENT, |
| 95 i * 10, i); |
97 } | 96 } |
98 | 97 |
99 RtcpEventMap events; | 98 RtcpEventMap events; |
100 event_subscriber_.GetRtcpEventsAndReset(&events); | 99 event_subscriber_.GetRtcpEventsAndReset(&events); |
101 | 100 |
102 ASSERT_EQ(10u, events.size()); | 101 ASSERT_EQ(10u, events.size()); |
103 EXPECT_EQ(10u, events.begin()->first); | 102 EXPECT_EQ(10u, events.begin()->first); |
104 EXPECT_EQ(100u, events.rbegin()->first); | 103 EXPECT_EQ(100u, events.rbegin()->first); |
105 | 104 |
106 for (uint32 i = 1u; i <= 11u; ++i) { | 105 for (uint32 i = 1u; i <= 11u; ++i) { |
107 cast_environment_->Logging()->InsertFrameEvent( | 106 cast_environment_->Logging()->InsertFrameEvent( |
108 testing_clock_->NowTicks(), kVideoFrameCaptureBegin, i * 10, i); | 107 testing_clock_->NowTicks(), FRAME_CAPTURE_BEGIN, VIDEO_EVENT, |
| 108 i * 10, i); |
109 } | 109 } |
110 | 110 |
111 event_subscriber_.GetRtcpEventsAndReset(&events); | 111 event_subscriber_.GetRtcpEventsAndReset(&events); |
112 | 112 |
113 // Event with RTP timestamp 10 should have been dropped when 110 is inserted. | 113 // Event with RTP timestamp 10 should have been dropped when 110 is inserted. |
114 ASSERT_EQ(10u, events.size()); | 114 ASSERT_EQ(10u, events.size()); |
115 EXPECT_EQ(20u, events.begin()->first); | 115 EXPECT_EQ(20u, events.begin()->first); |
116 EXPECT_EQ(110u, events.rbegin()->first); | 116 EXPECT_EQ(110u, events.rbegin()->first); |
117 } | 117 } |
118 | 118 |
119 } // namespace cast | 119 } // namespace cast |
120 } // namespace media | 120 } // namespace media |
OLD | NEW |