| OLD | NEW |
| 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 Loading... |
| 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_ |
| OLD | NEW |