Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / media / cast / logging / logging_stats.h
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.
4
5 #ifndef MEDIA_CAST_LOGGING_LOGGING_STATS_H_
6 #define MEDIA_CAST_LOGGING_LOGGING_STATS_H_
7
8 #include "base/basictypes.h"
9 #include "base/time/time.h"
10 #include "media/cast/logging/logging_defines.h"
11
12 namespace media {
13 namespace cast {
14
15 class LoggingStats {
16  public:
17   LoggingStats();
18   ~LoggingStats();
19
20   void Reset();
21
22   void InsertFrameEvent(const base::TimeTicks& time_of_event,
23                         CastLoggingEvent event,
24                         uint32 rtp_timestamp,
25                         uint32 frame_id);
26
27   void InsertFrameEventWithSize(const base::TimeTicks& time_of_event,
28                                 CastLoggingEvent event,
29                                 uint32 rtp_timestamp,
30                                 uint32 frame_id,
31                                 int frame_size);
32
33   void InsertFrameEventWithDelay(const base::TimeTicks& time_of_event,
34                                  CastLoggingEvent event,
35                                  uint32 rtp_timestamp,
36                                  uint32 frame_id,
37                                  base::TimeDelta delay);
38
39   void InsertPacketEvent(const base::TimeTicks& time_of_event,
40                          CastLoggingEvent event,
41                          uint32 rtp_timestamp,
42                          uint32 frame_id,
43                          uint16 packet_id,
44                          uint16 max_packet_id,
45                          size_t size);
46
47   void InsertGenericEvent(const base::TimeTicks& time_of_event,
48                           CastLoggingEvent event, int value);
49
50   FrameStatsMap GetFrameStatsData() const;
51
52   PacketStatsMap GetPacketStatsData() const;
53
54   GenericStatsMap GetGenericStatsData() const;
55
56  private:
57   void InsertBaseFrameEvent(const base::TimeTicks& time_of_event,
58                             CastLoggingEvent event,
59                             uint32 frame_id,
60                             uint32 rtp_timestamp);
61
62   FrameStatsMap frame_stats_;
63   PacketStatsMap packet_stats_;
64   GenericStatsMap generic_stats_;
65
66   DISALLOW_COPY_AND_ASSIGN(LoggingStats);
67 };
68
69 }  // namespace cast
70 }  // namespace media
71
72 #endif  // MEDIA_CAST_LOGGING_LOGGING_STATS_H_
73