Add explicit |forceOnlineSignin| to user pod status
[chromium-blink-merge.git] / media / cast / rtp_receiver / receiver_stats.h
blobc91ee507e0cc6c0afa9e08eca48f967e75ef3829
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
3 // found in the LICENSE file.
5 #ifndef MEDIA_CAST_RTP_RECEIVER_RECEIVER_STATS_H_
6 #define MEDIA_CAST_RTP_RECEIVER_RECEIVER_STATS_H_
8 #include "base/time/tick_clock.h"
9 #include "base/time/time.h"
10 #include "media/cast/rtp_receiver/rtp_receiver_defines.h"
12 namespace media {
13 namespace cast {
15 class ReceiverStats {
16 public:
17 explicit ReceiverStats(base::TickClock* clock);
18 ~ReceiverStats();
20 void GetStatistics(uint8* fraction_lost,
21 uint32* cumulative_lost, // 24 bits valid.
22 uint32* extended_high_sequence_number,
23 uint32* jitter);
24 void UpdateStatistics(const RtpCastHeader& header);
26 private:
27 base::TickClock* const clock_; // Not owned by this class.
29 // Global metrics.
30 uint16 min_sequence_number_;
31 uint16 max_sequence_number_;
32 uint32 total_number_packets_;
33 uint16 sequence_number_cycles_;
34 base::TimeDelta last_received_timestamp_;
35 base::TimeTicks last_received_packet_time_;
36 base::TimeDelta jitter_;
38 // Intermediate metrics - between RTCP reports.
39 int interval_min_sequence_number_;
40 int interval_number_packets_;
41 int interval_wrap_count_;
44 } // namespace cast
45 } // namespace media
47 #endif // MEDIA_CAST_RTP_RECEIVER_RECEIVER_STATS_H_