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

Side by Side Diff: media/cast/logging/logging_defines.h

Issue 236123003: Cast: Provide more meaningful stats. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: minor fix Created 6 years, 8 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef MEDIA_CAST_LOGGING_LOGGING_DEFINES_H_ 5 #ifndef MEDIA_CAST_LOGGING_LOGGING_DEFINES_H_
6 #define MEDIA_CAST_LOGGING_LOGGING_DEFINES_H_ 6 #define MEDIA_CAST_LOGGING_LOGGING_DEFINES_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/time/time.h" 12 #include "base/time/time.h"
13 13
14 namespace media { 14 namespace media {
15 namespace cast { 15 namespace cast {
16 16
17 static const uint32 kFrameIdUnknown = 0xFFFFFFFF; 17 static const uint32 kFrameIdUnknown = 0xFFFFFFFF;
18 18
19 typedef uint32 RtpTimestamp; 19 typedef uint32 RtpTimestamp;
20 20
21 enum CastLoggingEvent { 21 enum CastLoggingEvent {
22 // Generic events. 22 // Generic events.
23 kUnknown, 23 kUnknown,
24 kRttMs, 24 kRttMs,
25 kPacketLoss, 25 kPacketLoss,
26 kJitterMs, 26 kJitterMs,
27 kVideoAckReceived, 27 kVideoAckReceived,
28 kRembBitrate, 28 kRembBitrate,
29 // TODO(imcheng): k{Audio,Video}AckSent may need to be FrameEvents 29 // Sender-side frame events.
30 // (crbug.com/339590)
31 kAudioAckSent, 30 kAudioAckSent,
32 kVideoAckSent, 31 kVideoAckSent,
33 // Audio sender. 32 // Audio sender.
34 kAudioFrameReceived, 33 kAudioFrameReceived,
35 kAudioFrameCaptured, 34 kAudioFrameCaptured,
36 kAudioFrameEncoded, 35 kAudioFrameEncoded,
37 // Audio receiver. 36 // Audio receiver.
38 kAudioFrameDecoded, 37 kAudioFrameDecoded,
39 kAudioPlayoutDelay, 38 kAudioPlayoutDelay,
40 // Video sender. 39 // Video sender.
41 kVideoFrameCaptured, 40 kVideoFrameCaptured,
42 kVideoFrameReceived, 41 kVideoFrameReceived,
43 kVideoFrameSentToEncoder, 42 kVideoFrameSentToEncoder,
44 kVideoFrameEncoded, 43 kVideoFrameEncoded,
45 // Video receiver. 44 // Video receiver.
46 kVideoFrameDecoded, 45 kVideoFrameDecoded,
47 kVideoRenderDelay, 46 kVideoRenderDelay,
48 // Send-side packet events. 47 // Send-side packet events.
49 kAudioPacketSentToPacer, 48 kAudioPacketSentToPacer,
50 kVideoPacketSentToPacer, 49 kVideoPacketSentToPacer,
51 kAudioPacketSentToNetwork, 50 kAudioPacketSentToNetwork,
52 kVideoPacketSentToNetwork, 51 kVideoPacketSentToNetwork,
53 kAudioPacketRetransmitted, 52 kAudioPacketRetransmitted,
54 kVideoPacketRetransmitted, 53 kVideoPacketRetransmitted,
55 // Receive-side packet events. 54 // Receive-side packet events.
56 kAudioPacketReceived, 55 kAudioPacketReceived,
57 kVideoPacketReceived, 56 kVideoPacketReceived,
58 kDuplicateAudioPacketReceived, 57 kDuplicateAudioPacketReceived,
59 kDuplicateVideoPacketReceived, 58 kDuplicateVideoPacketReceived,
60 kNumOfLoggingEvents = kDuplicateVideoPacketReceived 59 // Sender-side generic event.
60 kAudioRtcpPacketReceived,
61 kVideoRtcpPacketReceived,
62 kNumOfLoggingEvents = kVideoRtcpPacketReceived
61 }; 63 };
62 64
63 const char* CastLoggingToString(CastLoggingEvent event); 65 const char* CastLoggingToString(CastLoggingEvent event);
64 66
65 // CastLoggingEvent are classified into one of three following types. 67 // CastLoggingEvent are classified into one of three following types.
66 enum EventMediaType { AUDIO_EVENT, VIDEO_EVENT, OTHER_EVENT }; 68 enum EventMediaType { AUDIO_EVENT, VIDEO_EVENT, OTHER_EVENT };
67 69
68 EventMediaType GetEventMediaType(CastLoggingEvent event); 70 EventMediaType GetEventMediaType(CastLoggingEvent event);
69 71
70 struct FrameEvent { 72 struct FrameEvent {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 // kVideoAckReceived - Frame ID 118 // kVideoAckReceived - Frame ID
117 // kRembBitrate - Receiver Estimated Maximum Bitrate 119 // kRembBitrate - Receiver Estimated Maximum Bitrate
118 // kAudioAckSent - Frame ID 120 // kAudioAckSent - Frame ID
119 // kVideoAckSent - Frame ID 121 // kVideoAckSent - Frame ID
120 int value; 122 int value;
121 123
122 // Time of event logged. 124 // Time of event logged.
123 base::TimeTicks timestamp; 125 base::TimeTicks timestamp;
124 }; 126 };
125 127
126 // Generic statistics given the raw data. More specific data (e.g. frame rate
127 // and bit rate) can be computed given the basic metrics.
128 // Some of the metrics will only be set when applicable, e.g. delay and size.
129 struct FrameLogStats {
130 FrameLogStats();
131 ~FrameLogStats();
132 base::TimeTicks first_event_time;
133 base::TimeTicks last_event_time;
134 int event_counter;
135 size_t sum_size;
136 base::TimeDelta min_delay;
137 base::TimeDelta max_delay;
138 base::TimeDelta sum_delay;
139 };
140
141 struct PacketLogStats {
142 PacketLogStats();
143 ~PacketLogStats();
144 base::TimeTicks first_event_time;
145 base::TimeTicks last_event_time;
146 int event_counter;
147 size_t sum_size;
148 };
149
150 struct GenericLogStats {
151 GenericLogStats();
152 ~GenericLogStats();
153 base::TimeTicks first_event_time;
154 base::TimeTicks last_event_time;
155 int event_counter;
156 int sum;
157 uint64 sum_squared;
158 int min;
159 int max;
160 };
161
162
163 typedef std::map<CastLoggingEvent, FrameLogStats> FrameStatsMap;
164 typedef std::map<CastLoggingEvent, PacketLogStats> PacketStatsMap;
165 typedef std::map<CastLoggingEvent, GenericLogStats> GenericStatsMap;
166
167 } // namespace cast 128 } // namespace cast
168 } // namespace media 129 } // namespace media
169 130
170 #endif // MEDIA_CAST_LOGGING_LOGGING_DEFINES_H_ 131 #endif // MEDIA_CAST_LOGGING_LOGGING_DEFINES_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698