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/rtcp/rtcp.h"
11 #include "media/cast/rtp_receiver/rtp_receiver_defines.h"
16 class ReceiverStats
: public RtpReceiverStatistics
{
18 explicit ReceiverStats(base::TickClock
* clock
);
19 virtual ~ReceiverStats() OVERRIDE
;
21 virtual void GetStatistics(uint8
* fraction_lost
,
22 uint32
* cumulative_lost
, // 24 bits valid.
23 uint32
* extended_high_sequence_number
,
24 uint32
* jitter
) OVERRIDE
;
25 void UpdateStatistics(const RtpCastHeader
& header
);
28 base::TickClock
* const clock_
; // Not owned by this class.
31 uint16 min_sequence_number_
;
32 uint16 max_sequence_number_
;
33 uint32 total_number_packets_
;
34 uint16 sequence_number_cycles_
;
35 base::TimeDelta last_received_timestamp_
;
36 base::TimeTicks last_received_packet_time_
;
37 base::TimeDelta jitter_
;
39 // Intermediate metrics - between RTCP reports.
40 int interval_min_sequence_number_
;
41 int interval_number_packets_
;
42 int interval_wrap_count_
;
44 DISALLOW_COPY_AND_ASSIGN(ReceiverStats
);
50 #endif // MEDIA_CAST_RTP_RECEIVER_RECEIVER_STATS_H_