typedef uint32 RtpTimestamp;
enum CastLoggingEvent {
- // Generic events.
kUnknown,
+ // Generic events. These are no longer used.
kRttMs,
kPacketLoss,
kJitterMs,
- kVideoAckReceived,
- kRembBitrate,
- // TODO(imcheng): k{Audio,Video}AckSent may need to be FrameEvents
- // (crbug.com/339590)
+ kVideoAckReceived, // Sender side frame event.
+ kRembBitrate, // Generic event. No longer used.
+ // Receiver side frame events.
kAudioAckSent,
kVideoAckSent,
// Audio sender.
- kAudioFrameReceived,
- kAudioFrameCaptured,
+ kAudioFrameCaptureBegin,
+ kAudioFrameCaptureEnd,
kAudioFrameEncoded,
// Audio receiver.
- kAudioPlayoutDelay,
kAudioFrameDecoded,
+ kAudioPlayoutDelay,
// Video sender.
- kVideoFrameCaptured,
- kVideoFrameReceived,
- kVideoFrameSentToEncoder,
+ kVideoFrameCaptureBegin,
+ kVideoFrameCaptureEnd,
+ kVideoFrameSentToEncoder, // Deprecated
kVideoFrameEncoded,
// Video receiver.
kVideoFrameDecoded,
kVideoRenderDelay,
// Send-side packet events.
- kAudioPacketSentToPacer,
- kVideoPacketSentToPacer,
kAudioPacketSentToNetwork,
kVideoPacketSentToNetwork,
kAudioPacketRetransmitted,
RtpTimestamp rtp_timestamp;
uint32 frame_id;
- size_t size; // Encoded size only.
+ // Size of encoded frame. Only set for kVideoFrameEncoded event.
+ size_t size;
// Time of event logged.
base::TimeTicks timestamp;
+
CastLoggingEvent type;
// Render / playout delay. Only set for kAudioPlayoutDelay and
// kVideoRenderDelay events.
base::TimeDelta delay_delta;
+
+ // Whether the frame is a key frame. Only set for kVideoFrameEncoded event.
+ bool key_frame;
+
+ // The requested target bitrate of the encoder at the time the frame is
+ // encoded. Only set for kVideoFrameEncoded event.
+ int target_bitrate;
};
struct PacketEvent {
CastLoggingEvent type;
};
-struct GenericEvent {
- GenericEvent();
- ~GenericEvent();
-
- CastLoggingEvent type;
-
- // Depending on |type|, |value| can have different meanings:
- // kRttMs - RTT in milliseconds
- // kPacketLoss - Fraction of packet loss, denominated in 256
- // kJitterMs - Jitter in milliseconds
- // kVideoAckReceived - Frame ID
- // kRembBitrate - Receiver Estimated Maximum Bitrate
- // kAudioAckSent - Frame ID
- // kVideoAckSent - Frame ID
- int value;
-
- // Time of event logged.
- base::TimeTicks timestamp;
-};
-
-// Generic statistics given the raw data. More specific data (e.g. frame rate
-// and bit rate) can be computed given the basic metrics.
-// Some of the metrics will only be set when applicable, e.g. delay and size.
-struct FrameLogStats {
- FrameLogStats();
- ~FrameLogStats();
- base::TimeTicks first_event_time;
- base::TimeTicks last_event_time;
- int event_counter;
- size_t sum_size;
- base::TimeDelta min_delay;
- base::TimeDelta max_delay;
- base::TimeDelta sum_delay;
-};
-
-struct PacketLogStats {
- PacketLogStats();
- ~PacketLogStats();
- base::TimeTicks first_event_time;
- base::TimeTicks last_event_time;
- int event_counter;
- size_t sum_size;
-};
-
-struct GenericLogStats {
- GenericLogStats();
- ~GenericLogStats();
- base::TimeTicks first_event_time;
- base::TimeTicks last_event_time;
- int event_counter;
- int sum;
- uint64 sum_squared;
- int min;
- int max;
-};
-
-
-typedef std::map<CastLoggingEvent, FrameLogStats> FrameStatsMap;
-typedef std::map<CastLoggingEvent, PacketLogStats> PacketStatsMap;
-typedef std::map<CastLoggingEvent, GenericLogStats> GenericStatsMap;
-
} // namespace cast
} // namespace media