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 #include "media/cast/logging/logging_raw.h"
9 #include "base/logging.h"
10 #include "base/time/time.h"
15 LoggingRaw::LoggingRaw() {}
17 LoggingRaw::~LoggingRaw() {}
19 void LoggingRaw::InsertFrameEvent(const base::TimeTicks& time_of_event,
20 CastLoggingEvent event, uint32 rtp_timestamp,
22 InsertBaseFrameEvent(time_of_event, event, frame_id, rtp_timestamp,
23 base::TimeDelta(), 0);
26 void LoggingRaw::InsertFrameEventWithSize(const base::TimeTicks& time_of_event,
27 CastLoggingEvent event,
28 uint32 rtp_timestamp, uint32 frame_id,
30 InsertBaseFrameEvent(time_of_event, event, frame_id, rtp_timestamp,
31 base::TimeDelta(), size);
34 void LoggingRaw::InsertFrameEventWithDelay(const base::TimeTicks& time_of_event,
35 CastLoggingEvent event,
38 base::TimeDelta delay) {
39 InsertBaseFrameEvent(time_of_event, event, frame_id, rtp_timestamp, delay,
43 void LoggingRaw::InsertBaseFrameEvent(const base::TimeTicks& time_of_event,
44 CastLoggingEvent event, uint32 frame_id,
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 =
56 it != subscribers_.end(); ++it) {
57 (*it)->OnReceiveFrameEvent(frame_event);
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 =
75 it != subscribers_.end(); ++it) {
76 (*it)->OnReceivePacketEvent(packet_event);
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 =
88 it != subscribers_.end(); ++it) {
89 (*it)->OnReceiveGenericEvent(generic_event);
93 void LoggingRaw::AddSubscriber(RawEventSubscriber* subscriber) {
95 DCHECK(std::find(subscribers_.begin(), subscribers_.end(), subscriber) ==
98 subscribers_.push_back(subscriber);
101 void LoggingRaw::RemoveSubscriber(RawEventSubscriber* subscriber) {
103 DCHECK(std::find(subscribers_.begin(), subscribers_.end(), subscriber) !=
107 std::remove(subscribers_.begin(), subscribers_.end(), subscriber),