Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / media / cast / logging / logging_raw.cc
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 #include "media/cast/logging/logging_raw.h"
6
7 #include <algorithm>
8
9 #include "base/logging.h"
10 #include "base/time/time.h"
11
12 namespace media {
13 namespace cast {
14
15 LoggingRaw::LoggingRaw() {}
16
17 LoggingRaw::~LoggingRaw() {}
18
19 void LoggingRaw::InsertFrameEvent(const base::TimeTicks& time_of_event,
20                                   CastLoggingEvent event, uint32 rtp_timestamp,
21                                   uint32 frame_id) {
22   InsertBaseFrameEvent(time_of_event, event, frame_id, rtp_timestamp,
23                        base::TimeDelta(), 0);
24 }
25
26 void LoggingRaw::InsertFrameEventWithSize(const base::TimeTicks& time_of_event,
27                                           CastLoggingEvent event,
28                                           uint32 rtp_timestamp, uint32 frame_id,
29                                           int size) {
30   InsertBaseFrameEvent(time_of_event, event, frame_id, rtp_timestamp,
31                        base::TimeDelta(), size);
32 }
33
34 void LoggingRaw::InsertFrameEventWithDelay(const base::TimeTicks& time_of_event,
35                                            CastLoggingEvent event,
36                                            uint32 rtp_timestamp,
37                                            uint32 frame_id,
38                                            base::TimeDelta delay) {
39   InsertBaseFrameEvent(time_of_event, event, frame_id, rtp_timestamp, delay,
40                        0);
41 }
42
43 void LoggingRaw::InsertBaseFrameEvent(const base::TimeTicks& time_of_event,
44                                       CastLoggingEvent event, uint32 frame_id,
45                                       uint32 rtp_timestamp,
46                                       base::TimeDelta delay, int size) {
47   FrameEvent frame_event;
48   frame_event.rtp_timestamp = rtp_timestamp;
49   frame_event.frame_id = frame_id;
50   frame_event.size = size;
51   frame_event.timestamp = time_of_event;
52   frame_event.type = event;
53   frame_event.delay_delta = delay;
54   for (std::vector<RawEventSubscriber*>::const_iterator it =
55            subscribers_.begin();
56        it != subscribers_.end(); ++it) {
57     (*it)->OnReceiveFrameEvent(frame_event);
58   }
59 }
60
61 void LoggingRaw::InsertPacketEvent(const base::TimeTicks& time_of_event,
62                                    CastLoggingEvent event, uint32 rtp_timestamp,
63                                    uint32 frame_id, uint16 packet_id,
64                                    uint16 max_packet_id, size_t size) {
65   PacketEvent packet_event;
66   packet_event.rtp_timestamp = rtp_timestamp;
67   packet_event.frame_id = frame_id;
68   packet_event.max_packet_id = max_packet_id;
69   packet_event.packet_id = packet_id;
70   packet_event.size = size;
71   packet_event.timestamp = time_of_event;
72   packet_event.type = event;
73   for (std::vector<RawEventSubscriber*>::const_iterator it =
74            subscribers_.begin();
75        it != subscribers_.end(); ++it) {
76     (*it)->OnReceivePacketEvent(packet_event);
77   }
78 }
79
80 void LoggingRaw::InsertGenericEvent(const base::TimeTicks& time_of_event,
81                                     CastLoggingEvent event, int value) {
82   GenericEvent generic_event;
83   generic_event.type = event;
84   generic_event.value = value;
85   generic_event.timestamp = time_of_event;
86   for (std::vector<RawEventSubscriber*>::const_iterator it =
87            subscribers_.begin();
88        it != subscribers_.end(); ++it) {
89     (*it)->OnReceiveGenericEvent(generic_event);
90   }
91 }
92
93 void LoggingRaw::AddSubscriber(RawEventSubscriber* subscriber) {
94   DCHECK(subscriber);
95   DCHECK(std::find(subscribers_.begin(), subscribers_.end(), subscriber) ==
96       subscribers_.end());
97
98   subscribers_.push_back(subscriber);
99 }
100
101 void LoggingRaw::RemoveSubscriber(RawEventSubscriber* subscriber) {
102   DCHECK(subscriber);
103   DCHECK(std::find(subscribers_.begin(), subscribers_.end(), subscriber) !=
104       subscribers_.end());
105
106   subscribers_.erase(
107       std::remove(subscribers_.begin(), subscribers_.end(), subscriber),
108       subscribers_.end());
109 }
110
111 }  // namespace cast
112 }  // namespace media