Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Side by Side Diff: media/cast/logging/logging_internal.h

Issue 134843005: Cast:Updating logging (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Responding to review and removing unused files Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « media/cast/logging/logging_impl.cc ('k') | media/cast/logging/logging_internal.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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_INTERNAL_H_
6 #define MEDIA_CAST_LOGGING_LOGGING_INTERNAL_H_
7
8 #include <map>
9 #include <string>
10 #include <vector>
11
12 #include "base/basictypes.h"
13 #include "base/time/tick_clock.h"
14 #include "base/time/time.h"
15
16 namespace media {
17 namespace cast {
18
19 // TODO(mikhal): Consider storing only the delta time and not absolute time.
20 struct FrameEvent {
21 uint32 frame_id;
22 int size;
23 base::TimeTicks timestamp;
24 base::TimeDelta delay_delta; // render/playout delay.
25 };
26
27 struct PacketEvent {
28 uint32 frame_id;
29 int max_packet_id;
30 size_t size;
31 base::TimeTicks timestamp;
32 };
33
34 // Frame and packet maps are sorted based on the rtp_timestamp.
35 typedef std::map<uint32, FrameEvent> FrameMap;
36 typedef std::map<uint16, PacketEvent> BasePacketMap;
37 typedef std::map<uint32, BasePacketMap> PacketMap;
38
39 class FrameLogData {
40 public:
41 explicit FrameLogData(base::TickClock* clock);
42 ~FrameLogData();
43 void Insert(uint32 rtp_timestamp, uint32 frame_id);
44 // Include size for encoded images (compute bitrate),
45 void InsertWithSize(uint32 rtp_timestamp, uint32 frame_id, int size);
46 // Include playout/render delay info.
47 void InsertWithDelay(
48 uint32 rtp_timestamp, uint32 frame_id, base::TimeDelta delay);
49 void Reset();
50
51 private:
52 void InsertBase(uint32 rtp_timestamp, uint32 frame_id, FrameEvent info);
53
54 base::TickClock* const clock_; // Not owned by this class.
55 FrameMap frame_map_;
56
57 DISALLOW_COPY_AND_ASSIGN(FrameLogData);
58 };
59
60 // TODO(mikhal): Should be able to handle packet bursts.
61 class PacketLogData {
62 public:
63 explicit PacketLogData(base::TickClock* clock);
64 ~PacketLogData();
65 void Insert(uint32 rtp_timestamp, uint32 frame_id, uint16 packet_id,
66 uint16 max_packet_id, int size);
67 void Reset();
68
69 private:
70 base::TickClock* const clock_; // Not owned by this class.
71 PacketMap packet_map_;
72
73 DISALLOW_COPY_AND_ASSIGN(PacketLogData);
74 };
75
76 class GenericLogData {
77 public:
78 explicit GenericLogData(base::TickClock* clock);
79 ~GenericLogData();
80 void Insert(int value);
81 void Reset();
82
83 private:
84 base::TickClock* const clock_; // Not owned by this class.
85 std::vector<int> data_;
86 std::vector<base::TimeTicks> timestamp_;
87
88 DISALLOW_COPY_AND_ASSIGN(GenericLogData);
89 };
90
91
92 } // namespace cast
93 } // namespace media
94
95 #endif // MEDIA_CAST_LOGGING_LOGGING_INTERNAL_H_
OLDNEW
« no previous file with comments | « media/cast/logging/logging_impl.cc ('k') | media/cast/logging/logging_internal.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698