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