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/logging_defines.h" | 5 #include "media/cast/logging/logging_defines.h" |
6 #include "media/cast/logging/logging_raw.h" | 6 #include "media/cast/logging/logging_raw.h" |
7 #include "media/cast/logging/simple_event_subscriber.h" | 7 #include "media/cast/logging/simple_event_subscriber.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 | 9 |
10 namespace media { | 10 namespace media { |
11 namespace cast { | 11 namespace cast { |
12 | 12 |
13 class LoggingRawTest : public ::testing::Test { | 13 class LoggingRawTest : public ::testing::Test { |
14 protected: | 14 protected: |
15 LoggingRawTest() { | 15 LoggingRawTest() { |
16 raw_.AddSubscriber(&event_subscriber_); | 16 raw_.AddSubscriber(&event_subscriber_); |
17 } | 17 } |
18 | 18 |
19 virtual ~LoggingRawTest() { raw_.RemoveSubscriber(&event_subscriber_); } | 19 virtual ~LoggingRawTest() { raw_.RemoveSubscriber(&event_subscriber_); } |
20 | 20 |
21 LoggingRaw raw_; | 21 LoggingRaw raw_; |
22 SimpleEventSubscriber event_subscriber_; | 22 SimpleEventSubscriber event_subscriber_; |
23 std::vector<FrameEvent> frame_events_; | 23 std::vector<FrameEvent> frame_events_; |
24 std::vector<PacketEvent> packet_events_; | 24 std::vector<PacketEvent> packet_events_; |
25 }; | 25 }; |
26 | 26 |
27 TEST_F(LoggingRawTest, FrameEvent) { | 27 TEST_F(LoggingRawTest, FrameEvent) { |
28 CastLoggingEvent event_type = kVideoFrameDecoded; | 28 CastLoggingEvent event_type = FRAME_DECODED; |
| 29 EventMediaType media_type = VIDEO_EVENT; |
29 uint32 frame_id = 456u; | 30 uint32 frame_id = 456u; |
30 RtpTimestamp rtp_timestamp = 123u; | 31 RtpTimestamp rtp_timestamp = 123u; |
31 base::TimeTicks timestamp = base::TimeTicks(); | 32 base::TimeTicks timestamp = base::TimeTicks(); |
32 raw_.InsertFrameEvent(timestamp, event_type, rtp_timestamp, frame_id); | 33 raw_.InsertFrameEvent(timestamp, event_type, media_type, |
| 34 rtp_timestamp, frame_id); |
33 | 35 |
34 event_subscriber_.GetPacketEventsAndReset(&packet_events_); | 36 event_subscriber_.GetPacketEventsAndReset(&packet_events_); |
35 EXPECT_TRUE(packet_events_.empty()); | 37 EXPECT_TRUE(packet_events_.empty()); |
36 | 38 |
37 event_subscriber_.GetFrameEventsAndReset(&frame_events_); | 39 event_subscriber_.GetFrameEventsAndReset(&frame_events_); |
38 ASSERT_EQ(1u, frame_events_.size()); | 40 ASSERT_EQ(1u, frame_events_.size()); |
39 EXPECT_EQ(rtp_timestamp, frame_events_[0].rtp_timestamp); | 41 EXPECT_EQ(rtp_timestamp, frame_events_[0].rtp_timestamp); |
40 EXPECT_EQ(frame_id, frame_events_[0].frame_id); | 42 EXPECT_EQ(frame_id, frame_events_[0].frame_id); |
41 EXPECT_EQ(0u, frame_events_[0].size); | 43 EXPECT_EQ(0u, frame_events_[0].size); |
42 EXPECT_EQ(timestamp, frame_events_[0].timestamp); | 44 EXPECT_EQ(timestamp, frame_events_[0].timestamp); |
43 EXPECT_EQ(event_type, frame_events_[0].type); | 45 EXPECT_EQ(event_type, frame_events_[0].type); |
| 46 EXPECT_EQ(media_type, frame_events_[0].media_type); |
44 EXPECT_EQ(base::TimeDelta(), frame_events_[0].delay_delta); | 47 EXPECT_EQ(base::TimeDelta(), frame_events_[0].delay_delta); |
45 } | 48 } |
46 | 49 |
47 TEST_F(LoggingRawTest, EncodedFrameEvent) { | 50 TEST_F(LoggingRawTest, EncodedFrameEvent) { |
48 CastLoggingEvent event_type = kVideoFrameEncoded; | 51 CastLoggingEvent event_type = FRAME_ENCODED; |
| 52 EventMediaType media_type = VIDEO_EVENT; |
49 uint32 frame_id = 456u; | 53 uint32 frame_id = 456u; |
50 RtpTimestamp rtp_timestamp = 123u; | 54 RtpTimestamp rtp_timestamp = 123u; |
51 base::TimeTicks timestamp = base::TimeTicks(); | 55 base::TimeTicks timestamp = base::TimeTicks(); |
52 int size = 1024; | 56 int size = 1024; |
53 bool key_frame = true; | 57 bool key_frame = true; |
54 int target_bitrate = 4096; | 58 int target_bitrate = 4096; |
55 raw_.InsertEncodedFrameEvent(timestamp, event_type, rtp_timestamp, frame_id, | 59 raw_.InsertEncodedFrameEvent(timestamp, event_type, media_type, |
56 size, key_frame, target_bitrate); | 60 rtp_timestamp, frame_id, size, key_frame, target_bitrate); |
57 | 61 |
58 event_subscriber_.GetPacketEventsAndReset(&packet_events_); | 62 event_subscriber_.GetPacketEventsAndReset(&packet_events_); |
59 EXPECT_TRUE(packet_events_.empty()); | 63 EXPECT_TRUE(packet_events_.empty()); |
60 | 64 |
61 event_subscriber_.GetFrameEventsAndReset(&frame_events_); | 65 event_subscriber_.GetFrameEventsAndReset(&frame_events_); |
62 ASSERT_EQ(1u, frame_events_.size()); | 66 ASSERT_EQ(1u, frame_events_.size()); |
63 EXPECT_EQ(rtp_timestamp, frame_events_[0].rtp_timestamp); | 67 EXPECT_EQ(rtp_timestamp, frame_events_[0].rtp_timestamp); |
64 EXPECT_EQ(frame_id, frame_events_[0].frame_id); | 68 EXPECT_EQ(frame_id, frame_events_[0].frame_id); |
65 EXPECT_EQ(size, static_cast<int>(frame_events_[0].size)); | 69 EXPECT_EQ(size, static_cast<int>(frame_events_[0].size)); |
66 EXPECT_EQ(timestamp, frame_events_[0].timestamp); | 70 EXPECT_EQ(timestamp, frame_events_[0].timestamp); |
67 EXPECT_EQ(event_type, frame_events_[0].type); | 71 EXPECT_EQ(event_type, frame_events_[0].type); |
| 72 EXPECT_EQ(media_type, frame_events_[0].media_type); |
68 EXPECT_EQ(base::TimeDelta(), frame_events_[0].delay_delta); | 73 EXPECT_EQ(base::TimeDelta(), frame_events_[0].delay_delta); |
69 EXPECT_EQ(key_frame, frame_events_[0].key_frame); | 74 EXPECT_EQ(key_frame, frame_events_[0].key_frame); |
70 EXPECT_EQ(target_bitrate, frame_events_[0].target_bitrate); | 75 EXPECT_EQ(target_bitrate, frame_events_[0].target_bitrate); |
71 } | 76 } |
72 | 77 |
73 TEST_F(LoggingRawTest, FrameEventWithDelay) { | 78 TEST_F(LoggingRawTest, FrameEventWithDelay) { |
74 CastLoggingEvent event_type = kVideoRenderDelay; | 79 CastLoggingEvent event_type = FRAME_PLAYOUT; |
| 80 EventMediaType media_type = VIDEO_EVENT; |
75 uint32 frame_id = 456u; | 81 uint32 frame_id = 456u; |
76 RtpTimestamp rtp_timestamp = 123u; | 82 RtpTimestamp rtp_timestamp = 123u; |
77 base::TimeTicks timestamp = base::TimeTicks(); | 83 base::TimeTicks timestamp = base::TimeTicks(); |
78 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(20); | 84 base::TimeDelta delay = base::TimeDelta::FromMilliseconds(20); |
79 raw_.InsertFrameEventWithDelay(timestamp, event_type, rtp_timestamp, frame_id, | 85 raw_.InsertFrameEventWithDelay(timestamp, event_type, media_type, |
80 delay); | 86 rtp_timestamp, frame_id, delay); |
81 | 87 |
82 event_subscriber_.GetPacketEventsAndReset(&packet_events_); | 88 event_subscriber_.GetPacketEventsAndReset(&packet_events_); |
83 EXPECT_TRUE(packet_events_.empty()); | 89 EXPECT_TRUE(packet_events_.empty()); |
84 | 90 |
85 event_subscriber_.GetFrameEventsAndReset(&frame_events_); | 91 event_subscriber_.GetFrameEventsAndReset(&frame_events_); |
86 ASSERT_EQ(1u, frame_events_.size()); | 92 ASSERT_EQ(1u, frame_events_.size()); |
87 EXPECT_EQ(rtp_timestamp, frame_events_[0].rtp_timestamp); | 93 EXPECT_EQ(rtp_timestamp, frame_events_[0].rtp_timestamp); |
88 EXPECT_EQ(frame_id, frame_events_[0].frame_id); | 94 EXPECT_EQ(frame_id, frame_events_[0].frame_id); |
89 EXPECT_EQ(0u, frame_events_[0].size); | 95 EXPECT_EQ(0u, frame_events_[0].size); |
90 EXPECT_EQ(timestamp, frame_events_[0].timestamp); | 96 EXPECT_EQ(timestamp, frame_events_[0].timestamp); |
91 EXPECT_EQ(event_type, frame_events_[0].type); | 97 EXPECT_EQ(event_type, frame_events_[0].type); |
| 98 EXPECT_EQ(media_type, frame_events_[0].media_type); |
92 EXPECT_EQ(delay, frame_events_[0].delay_delta); | 99 EXPECT_EQ(delay, frame_events_[0].delay_delta); |
93 } | 100 } |
94 | 101 |
95 TEST_F(LoggingRawTest, PacketEvent) { | 102 TEST_F(LoggingRawTest, PacketEvent) { |
96 CastLoggingEvent event_type = kVideoPacketReceived; | 103 CastLoggingEvent event_type = PACKET_RECEIVED; |
| 104 EventMediaType media_type = VIDEO_EVENT; |
97 uint32 frame_id = 456u; | 105 uint32 frame_id = 456u; |
98 uint16 packet_id = 1u; | 106 uint16 packet_id = 1u; |
99 uint16 max_packet_id = 10u; | 107 uint16 max_packet_id = 10u; |
100 RtpTimestamp rtp_timestamp = 123u; | 108 RtpTimestamp rtp_timestamp = 123u; |
101 base::TimeTicks timestamp = base::TimeTicks(); | 109 base::TimeTicks timestamp = base::TimeTicks(); |
102 size_t size = 1024u; | 110 size_t size = 1024u; |
103 raw_.InsertPacketEvent(timestamp, event_type, rtp_timestamp, frame_id, | 111 raw_.InsertPacketEvent(timestamp, event_type, media_type, |
104 packet_id, max_packet_id, size); | 112 rtp_timestamp, frame_id, packet_id, max_packet_id, size); |
105 | 113 |
106 event_subscriber_.GetFrameEventsAndReset(&frame_events_); | 114 event_subscriber_.GetFrameEventsAndReset(&frame_events_); |
107 EXPECT_TRUE(frame_events_.empty()); | 115 EXPECT_TRUE(frame_events_.empty()); |
108 | 116 |
109 event_subscriber_.GetPacketEventsAndReset(&packet_events_); | 117 event_subscriber_.GetPacketEventsAndReset(&packet_events_); |
110 ASSERT_EQ(1u, packet_events_.size()); | 118 ASSERT_EQ(1u, packet_events_.size()); |
| 119 |
111 EXPECT_EQ(rtp_timestamp, packet_events_[0].rtp_timestamp); | 120 EXPECT_EQ(rtp_timestamp, packet_events_[0].rtp_timestamp); |
112 EXPECT_EQ(frame_id, packet_events_[0].frame_id); | 121 EXPECT_EQ(frame_id, packet_events_[0].frame_id); |
113 EXPECT_EQ(max_packet_id, packet_events_[0].max_packet_id); | 122 EXPECT_EQ(max_packet_id, packet_events_[0].max_packet_id); |
114 EXPECT_EQ(packet_id, packet_events_[0].packet_id); | 123 EXPECT_EQ(packet_id, packet_events_[0].packet_id); |
115 EXPECT_EQ(size, packet_events_[0].size); | 124 EXPECT_EQ(size, packet_events_[0].size); |
116 EXPECT_EQ(timestamp, packet_events_[0].timestamp); | 125 EXPECT_EQ(timestamp, packet_events_[0].timestamp); |
117 EXPECT_EQ(event_type, packet_events_[0].type); | 126 EXPECT_EQ(event_type, packet_events_[0].type); |
| 127 EXPECT_EQ(media_type, packet_events_[0].media_type); |
118 } | 128 } |
119 | 129 |
120 TEST_F(LoggingRawTest, MultipleSubscribers) { | 130 TEST_F(LoggingRawTest, MultipleSubscribers) { |
121 SimpleEventSubscriber event_subscriber_2; | 131 SimpleEventSubscriber event_subscriber_2; |
122 | 132 |
123 // Now raw_ has two subscribers. | 133 // Now raw_ has two subscribers. |
124 raw_.AddSubscriber(&event_subscriber_2); | 134 raw_.AddSubscriber(&event_subscriber_2); |
125 | 135 |
126 CastLoggingEvent event_type = kVideoFrameDecoded; | 136 CastLoggingEvent event_type = FRAME_DECODED; |
| 137 EventMediaType media_type = VIDEO_EVENT; |
127 uint32 frame_id = 456u; | 138 uint32 frame_id = 456u; |
128 RtpTimestamp rtp_timestamp = 123u; | 139 RtpTimestamp rtp_timestamp = 123u; |
129 base::TimeTicks timestamp = base::TimeTicks(); | 140 base::TimeTicks timestamp = base::TimeTicks(); |
130 raw_.InsertFrameEvent(timestamp, event_type, rtp_timestamp, frame_id); | 141 raw_.InsertFrameEvent(timestamp, event_type, media_type, |
| 142 rtp_timestamp, frame_id); |
131 | 143 |
132 event_subscriber_.GetPacketEventsAndReset(&packet_events_); | 144 event_subscriber_.GetPacketEventsAndReset(&packet_events_); |
133 EXPECT_TRUE(packet_events_.empty()); | 145 EXPECT_TRUE(packet_events_.empty()); |
134 | 146 |
135 event_subscriber_.GetFrameEventsAndReset(&frame_events_); | 147 event_subscriber_.GetFrameEventsAndReset(&frame_events_); |
136 ASSERT_EQ(1u, frame_events_.size()); | 148 ASSERT_EQ(1u, frame_events_.size()); |
137 EXPECT_EQ(rtp_timestamp, frame_events_[0].rtp_timestamp); | 149 EXPECT_EQ(rtp_timestamp, frame_events_[0].rtp_timestamp); |
138 EXPECT_EQ(frame_id, frame_events_[0].frame_id); | 150 EXPECT_EQ(frame_id, frame_events_[0].frame_id); |
139 EXPECT_EQ(0u, frame_events_[0].size); | 151 EXPECT_EQ(0u, frame_events_[0].size); |
140 EXPECT_EQ(timestamp, frame_events_[0].timestamp); | 152 EXPECT_EQ(timestamp, frame_events_[0].timestamp); |
141 EXPECT_EQ(event_type, frame_events_[0].type); | 153 EXPECT_EQ(event_type, frame_events_[0].type); |
| 154 EXPECT_EQ(media_type, frame_events_[0].media_type); |
142 EXPECT_EQ(base::TimeDelta(), frame_events_[0].delay_delta); | 155 EXPECT_EQ(base::TimeDelta(), frame_events_[0].delay_delta); |
143 | 156 |
144 event_subscriber_2.GetPacketEventsAndReset(&packet_events_); | 157 event_subscriber_2.GetPacketEventsAndReset(&packet_events_); |
145 EXPECT_TRUE(packet_events_.empty()); | 158 EXPECT_TRUE(packet_events_.empty()); |
146 | 159 |
147 event_subscriber_2.GetFrameEventsAndReset(&frame_events_); | 160 event_subscriber_2.GetFrameEventsAndReset(&frame_events_); |
148 ASSERT_EQ(1u, frame_events_.size()); | 161 ASSERT_EQ(1u, frame_events_.size()); |
149 EXPECT_EQ(rtp_timestamp, frame_events_[0].rtp_timestamp); | 162 EXPECT_EQ(rtp_timestamp, frame_events_[0].rtp_timestamp); |
150 EXPECT_EQ(frame_id, frame_events_[0].frame_id); | 163 EXPECT_EQ(frame_id, frame_events_[0].frame_id); |
151 EXPECT_EQ(0u, frame_events_[0].size); | 164 EXPECT_EQ(0u, frame_events_[0].size); |
152 EXPECT_EQ(timestamp, frame_events_[0].timestamp); | 165 EXPECT_EQ(timestamp, frame_events_[0].timestamp); |
153 EXPECT_EQ(event_type, frame_events_[0].type); | 166 EXPECT_EQ(event_type, frame_events_[0].type); |
| 167 EXPECT_EQ(media_type, frame_events_[0].media_type); |
154 EXPECT_EQ(base::TimeDelta(), frame_events_[0].delay_delta); | 168 EXPECT_EQ(base::TimeDelta(), frame_events_[0].delay_delta); |
155 | 169 |
156 // Remove event_subscriber_2, so it shouldn't receive events after this. | 170 // Remove event_subscriber_2, so it shouldn't receive events after this. |
157 raw_.RemoveSubscriber(&event_subscriber_2); | 171 raw_.RemoveSubscriber(&event_subscriber_2); |
158 | 172 |
159 event_type = kAudioFrameDecoded; | 173 media_type = AUDIO_EVENT; |
160 frame_id = 789; | 174 frame_id = 789; |
161 rtp_timestamp = 456; | 175 rtp_timestamp = 456; |
162 timestamp = base::TimeTicks(); | 176 timestamp = base::TimeTicks(); |
163 raw_.InsertFrameEvent(timestamp, event_type, rtp_timestamp, frame_id); | 177 raw_.InsertFrameEvent(timestamp, event_type, media_type, |
| 178 rtp_timestamp, frame_id); |
164 | 179 |
165 // |event_subscriber_| should still receive events. | 180 // |event_subscriber_| should still receive events. |
166 event_subscriber_.GetFrameEventsAndReset(&frame_events_); | 181 event_subscriber_.GetFrameEventsAndReset(&frame_events_); |
167 ASSERT_EQ(1u, frame_events_.size()); | 182 ASSERT_EQ(1u, frame_events_.size()); |
168 EXPECT_EQ(rtp_timestamp, frame_events_[0].rtp_timestamp); | 183 EXPECT_EQ(rtp_timestamp, frame_events_[0].rtp_timestamp); |
169 EXPECT_EQ(frame_id, frame_events_[0].frame_id); | 184 EXPECT_EQ(frame_id, frame_events_[0].frame_id); |
170 EXPECT_EQ(0u, frame_events_[0].size); | 185 EXPECT_EQ(0u, frame_events_[0].size); |
171 EXPECT_EQ(timestamp, frame_events_[0].timestamp); | 186 EXPECT_EQ(timestamp, frame_events_[0].timestamp); |
172 EXPECT_EQ(event_type, frame_events_[0].type); | 187 EXPECT_EQ(event_type, frame_events_[0].type); |
| 188 EXPECT_EQ(media_type, frame_events_[0].media_type); |
173 EXPECT_EQ(base::TimeDelta(), frame_events_[0].delay_delta); | 189 EXPECT_EQ(base::TimeDelta(), frame_events_[0].delay_delta); |
174 | 190 |
175 event_subscriber_2.GetFrameEventsAndReset(&frame_events_); | 191 event_subscriber_2.GetFrameEventsAndReset(&frame_events_); |
176 EXPECT_TRUE(frame_events_.empty()); | 192 EXPECT_TRUE(frame_events_.empty()); |
177 } | 193 } |
178 | 194 |
179 } // namespace cast | 195 } // namespace cast |
180 } // namespace media | 196 } // namespace media |
OLD | NEW |