Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(232)

Side by Side Diff: media/cast/logging/logging_impl_unittest.cc

Issue 270493003: Cast: Deduplicate event types in cast library. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/cast/logging/logging_impl.cc ('k') | media/cast/logging/logging_raw.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/rand_util.h" 9 #include "base/rand_util.h"
10 #include "base/test/simple_test_tick_clock.h" 10 #include "base/test/simple_test_tick_clock.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 46
47 TEST_F(LoggingImplTest, BasicFrameLogging) { 47 TEST_F(LoggingImplTest, BasicFrameLogging) {
48 base::TimeTicks start_time = testing_clock_.NowTicks(); 48 base::TimeTicks start_time = testing_clock_.NowTicks();
49 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time; 49 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time;
50 uint32 rtp_timestamp = 0; 50 uint32 rtp_timestamp = 0;
51 uint32 frame_id = 0; 51 uint32 frame_id = 0;
52 base::TimeTicks now; 52 base::TimeTicks now;
53 do { 53 do {
54 now = testing_clock_.NowTicks(); 54 now = testing_clock_.NowTicks();
55 logging_.InsertFrameEvent( 55 logging_.InsertFrameEvent(
56 now, kAudioFrameCaptureBegin, rtp_timestamp, frame_id); 56 now, FRAME_CAPTURE_BEGIN, VIDEO_EVENT, rtp_timestamp, frame_id);
57 testing_clock_.Advance( 57 testing_clock_.Advance(
58 base::TimeDelta::FromMilliseconds(kFrameIntervalMs)); 58 base::TimeDelta::FromMilliseconds(kFrameIntervalMs));
59 rtp_timestamp += kFrameIntervalMs * 90; 59 rtp_timestamp += kFrameIntervalMs * 90;
60 ++frame_id; 60 ++frame_id;
61 time_interval = now - start_time; 61 time_interval = now - start_time;
62 } while (time_interval.InSeconds() < kIntervalTime1S); 62 } while (time_interval.InSeconds() < kIntervalTime1S);
63 63
64 // Get logging data. 64 // Get logging data.
65 std::vector<FrameEvent> frame_events; 65 std::vector<FrameEvent> frame_events;
66 event_subscriber_.GetFrameEventsAndReset(&frame_events); 66 event_subscriber_.GetFrameEventsAndReset(&frame_events);
(...skipping 10 matching lines...) Expand all
77 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time; 77 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time;
78 uint32 rtp_timestamp = 0; 78 uint32 rtp_timestamp = 0;
79 uint32 frame_id = 0; 79 uint32 frame_id = 0;
80 size_t sum_size = 0; 80 size_t sum_size = 0;
81 int target_bitrate = 1234; 81 int target_bitrate = 1234;
82 do { 82 do {
83 int size = kBaseFrameSizeBytes + 83 int size = kBaseFrameSizeBytes +
84 base::RandInt(-kRandomSizeInterval, kRandomSizeInterval); 84 base::RandInt(-kRandomSizeInterval, kRandomSizeInterval);
85 sum_size += static_cast<size_t>(size); 85 sum_size += static_cast<size_t>(size);
86 logging_.InsertEncodedFrameEvent(testing_clock_.NowTicks(), 86 logging_.InsertEncodedFrameEvent(testing_clock_.NowTicks(),
87 kVideoFrameEncoded, rtp_timestamp, 87 FRAME_ENCODED, VIDEO_EVENT, rtp_timestamp,
88 frame_id, size, true, target_bitrate); 88 frame_id, size, true, target_bitrate);
89 testing_clock_.Advance(base::TimeDelta::FromMilliseconds(kFrameIntervalMs)); 89 testing_clock_.Advance(base::TimeDelta::FromMilliseconds(kFrameIntervalMs));
90 rtp_timestamp += kFrameIntervalMs * 90; 90 rtp_timestamp += kFrameIntervalMs * 90;
91 ++frame_id; 91 ++frame_id;
92 time_interval = testing_clock_.NowTicks() - start_time; 92 time_interval = testing_clock_.NowTicks() - start_time;
93 } while (time_interval.InSeconds() < kIntervalTime1S); 93 } while (time_interval.InSeconds() < kIntervalTime1S);
94 // Get logging data. 94 // Get logging data.
95 std::vector<FrameEvent> frame_events; 95 std::vector<FrameEvent> frame_events;
96 event_subscriber_.GetFrameEventsAndReset(&frame_events); 96 event_subscriber_.GetFrameEventsAndReset(&frame_events);
97 // Size of vector should be equal to the number of events logged, which 97 // Size of vector should be equal to the number of events logged, which
98 // equals to number of frames in this case. 98 // equals to number of frames in this case.
99 EXPECT_EQ(frame_id, frame_events.size()); 99 EXPECT_EQ(frame_id, frame_events.size());
100 } 100 }
101 101
102 TEST_F(LoggingImplTest, FrameLoggingWithDelay) { 102 TEST_F(LoggingImplTest, FrameLoggingWithDelay) {
103 // Average packet size. 103 // Average packet size.
104 const int kPlayoutDelayMs = 50; 104 const int kPlayoutDelayMs = 50;
105 const int kRandomSizeInterval = 20; 105 const int kRandomSizeInterval = 20;
106 base::TimeTicks start_time = testing_clock_.NowTicks(); 106 base::TimeTicks start_time = testing_clock_.NowTicks();
107 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time; 107 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time;
108 uint32 rtp_timestamp = 0; 108 uint32 rtp_timestamp = 0;
109 uint32 frame_id = 0; 109 uint32 frame_id = 0;
110 do { 110 do {
111 int delay = kPlayoutDelayMs + 111 int delay = kPlayoutDelayMs +
112 base::RandInt(-kRandomSizeInterval, kRandomSizeInterval); 112 base::RandInt(-kRandomSizeInterval, kRandomSizeInterval);
113 logging_.InsertFrameEventWithDelay( 113 logging_.InsertFrameEventWithDelay(
114 testing_clock_.NowTicks(), 114 testing_clock_.NowTicks(),
115 kAudioFrameCaptureBegin, 115 FRAME_CAPTURE_BEGIN,
116 VIDEO_EVENT,
116 rtp_timestamp, 117 rtp_timestamp,
117 frame_id, 118 frame_id,
118 base::TimeDelta::FromMilliseconds(delay)); 119 base::TimeDelta::FromMilliseconds(delay));
119 testing_clock_.Advance(base::TimeDelta::FromMilliseconds(kFrameIntervalMs)); 120 testing_clock_.Advance(base::TimeDelta::FromMilliseconds(kFrameIntervalMs));
120 rtp_timestamp += kFrameIntervalMs * 90; 121 rtp_timestamp += kFrameIntervalMs * 90;
121 ++frame_id; 122 ++frame_id;
122 time_interval = testing_clock_.NowTicks() - start_time; 123 time_interval = testing_clock_.NowTicks() - start_time;
123 } while (time_interval.InSeconds() < kIntervalTime1S); 124 } while (time_interval.InSeconds() < kIntervalTime1S);
124 // Get logging data. 125 // Get logging data.
125 std::vector<FrameEvent> frame_events; 126 std::vector<FrameEvent> frame_events;
126 event_subscriber_.GetFrameEventsAndReset(&frame_events); 127 event_subscriber_.GetFrameEventsAndReset(&frame_events);
127 // Size of vector should be equal to the number of frames logged. 128 // Size of vector should be equal to the number of frames logged.
128 EXPECT_EQ(frame_id, frame_events.size()); 129 EXPECT_EQ(frame_id, frame_events.size());
129 } 130 }
130 131
131 TEST_F(LoggingImplTest, MultipleEventFrameLogging) { 132 TEST_F(LoggingImplTest, MultipleEventFrameLogging) {
132 base::TimeTicks start_time = testing_clock_.NowTicks(); 133 base::TimeTicks start_time = testing_clock_.NowTicks();
133 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time; 134 base::TimeDelta time_interval = testing_clock_.NowTicks() - start_time;
134 uint32 rtp_timestamp = 0u; 135 uint32 rtp_timestamp = 0u;
135 uint32 frame_id = 0u; 136 uint32 frame_id = 0u;
136 uint32 num_events = 0u; 137 uint32 num_events = 0u;
137 do { 138 do {
138 logging_.InsertFrameEvent(testing_clock_.NowTicks(), 139 logging_.InsertFrameEvent(testing_clock_.NowTicks(),
139 kAudioFrameCaptureBegin, 140 FRAME_CAPTURE_END,
141 VIDEO_EVENT,
140 rtp_timestamp, 142 rtp_timestamp,
141 frame_id); 143 frame_id);
142 ++num_events; 144 ++num_events;
143 if (frame_id % 2) { 145 if (frame_id % 2) {
144 logging_.InsertEncodedFrameEvent(testing_clock_.NowTicks(), 146 logging_.InsertEncodedFrameEvent(testing_clock_.NowTicks(),
145 kAudioFrameEncoded, rtp_timestamp, 147 FRAME_ENCODED, AUDIO_EVENT,
148 rtp_timestamp,
146 frame_id, 1500, true, 0); 149 frame_id, 1500, true, 0);
147 } else if (frame_id % 3) { 150 } else if (frame_id % 3) {
148 logging_.InsertFrameEvent(testing_clock_.NowTicks(), kVideoFrameDecoded, 151 logging_.InsertFrameEvent(testing_clock_.NowTicks(), FRAME_DECODED,
149 rtp_timestamp, frame_id); 152 VIDEO_EVENT, rtp_timestamp, frame_id);
150 } else { 153 } else {
151 logging_.InsertFrameEventWithDelay( 154 logging_.InsertFrameEventWithDelay(
152 testing_clock_.NowTicks(), kVideoRenderDelay, rtp_timestamp, frame_id, 155 testing_clock_.NowTicks(), FRAME_PLAYOUT, VIDEO_EVENT,
153 base::TimeDelta::FromMilliseconds(20)); 156 rtp_timestamp, frame_id, base::TimeDelta::FromMilliseconds(20));
154 } 157 }
155 ++num_events; 158 ++num_events;
156 159
157 testing_clock_.Advance(base::TimeDelta::FromMilliseconds(kFrameIntervalMs)); 160 testing_clock_.Advance(base::TimeDelta::FromMilliseconds(kFrameIntervalMs));
158 rtp_timestamp += kFrameIntervalMs * 90; 161 rtp_timestamp += kFrameIntervalMs * 90;
159 ++frame_id; 162 ++frame_id;
160 time_interval = testing_clock_.NowTicks() - start_time; 163 time_interval = testing_clock_.NowTicks() - start_time;
161 } while (time_interval.InSeconds() < kIntervalTime1S); 164 } while (time_interval.InSeconds() < kIntervalTime1S);
162 // Get logging data. 165 // Get logging data.
163 std::vector<FrameEvent> frame_events; 166 std::vector<FrameEvent> frame_events;
(...skipping 14 matching lines...) Expand all
178 int frame_id = 0; 181 int frame_id = 0;
179 int num_packets = 0; 182 int num_packets = 0;
180 int sum_size = 0u; 183 int sum_size = 0u;
181 do { 184 do {
182 for (int i = 0; i < kNumPacketsPerFrame; ++i) { 185 for (int i = 0; i < kNumPacketsPerFrame; ++i) {
183 int size = kBaseSize + base::RandInt(-kSizeInterval, kSizeInterval); 186 int size = kBaseSize + base::RandInt(-kSizeInterval, kSizeInterval);
184 sum_size += size; 187 sum_size += size;
185 latest_time = testing_clock_.NowTicks(); 188 latest_time = testing_clock_.NowTicks();
186 ++num_packets; 189 ++num_packets;
187 logging_.InsertPacketEvent(latest_time, 190 logging_.InsertPacketEvent(latest_time,
188 kDuplicateVideoPacketReceived, 191 PACKET_RECEIVED,
189 rtp_timestamp, 192 VIDEO_EVENT,
190 frame_id, 193 rtp_timestamp,
191 i, 194 frame_id,
192 kNumPacketsPerFrame, 195 i,
193 size); 196 kNumPacketsPerFrame,
197 size);
194 } 198 }
195 testing_clock_.Advance(base::TimeDelta::FromMilliseconds(kFrameIntervalMs)); 199 testing_clock_.Advance(base::TimeDelta::FromMilliseconds(kFrameIntervalMs));
196 rtp_timestamp += kFrameIntervalMs * 90; 200 rtp_timestamp += kFrameIntervalMs * 90;
197 ++frame_id; 201 ++frame_id;
198 time_interval = testing_clock_.NowTicks() - start_time; 202 time_interval = testing_clock_.NowTicks() - start_time;
199 } while (time_interval.InSeconds() < kIntervalTime1S); 203 } while (time_interval.InSeconds() < kIntervalTime1S);
200 // Get logging data. 204 // Get logging data.
201 std::vector<PacketEvent> packet_events; 205 std::vector<PacketEvent> packet_events;
202 event_subscriber_.GetPacketEventsAndReset(&packet_events); 206 event_subscriber_.GetPacketEventsAndReset(&packet_events);
203 // Size of vector should be equal to the number of packets logged. 207 // Size of vector should be equal to the number of packets logged.
204 EXPECT_EQ(num_packets, static_cast<int>(packet_events.size())); 208 EXPECT_EQ(num_packets, static_cast<int>(packet_events.size()));
205 } 209 }
206 210
207 TEST_F(LoggingImplTest, MultipleRawEventSubscribers) { 211 TEST_F(LoggingImplTest, MultipleRawEventSubscribers) {
208 SimpleEventSubscriber event_subscriber_2; 212 SimpleEventSubscriber event_subscriber_2;
209 213
210 // Now logging_ has two subscribers. 214 // Now logging_ has two subscribers.
211 logging_.AddRawEventSubscriber(&event_subscriber_2); 215 logging_.AddRawEventSubscriber(&event_subscriber_2);
212 216
213 logging_.InsertFrameEvent(testing_clock_.NowTicks(), 217 logging_.InsertFrameEvent(testing_clock_.NowTicks(),
214 kAudioFrameCaptureBegin, 218 FRAME_CAPTURE_BEGIN,
219 VIDEO_EVENT,
215 /*rtp_timestamp*/ 0u, 220 /*rtp_timestamp*/ 0u,
216 /*frame_id*/ 0u); 221 /*frame_id*/ 0u);
217 222
218 std::vector<FrameEvent> frame_events; 223 std::vector<FrameEvent> frame_events;
219 event_subscriber_.GetFrameEventsAndReset(&frame_events); 224 event_subscriber_.GetFrameEventsAndReset(&frame_events);
220 EXPECT_EQ(1u, frame_events.size()); 225 EXPECT_EQ(1u, frame_events.size());
221 frame_events.clear(); 226 frame_events.clear();
222 event_subscriber_2.GetFrameEventsAndReset(&frame_events); 227 event_subscriber_2.GetFrameEventsAndReset(&frame_events);
223 EXPECT_EQ(1u, frame_events.size()); 228 EXPECT_EQ(1u, frame_events.size());
224 229
225 logging_.RemoveRawEventSubscriber(&event_subscriber_2); 230 logging_.RemoveRawEventSubscriber(&event_subscriber_2);
226 } 231 }
227 232
228 } // namespace cast 233 } // namespace cast
229 } // namespace media 234 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/logging/logging_impl.cc ('k') | media/cast/logging/logging_raw.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698