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

Side by Side Diff: media/cast/rtcp/rtcp_defines.h

Issue 102413014: Cast:Splitting rtcp sender (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years 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/rtcp/rtcp.gyp ('k') | media/cast/rtcp/rtcp_receiver_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MEDIA_CAST_RTCP_RTCP_DEFINES_H_ 5 #ifndef MEDIA_CAST_RTCP_RTCP_DEFINES_H_
6 #define MEDIA_CAST_RTCP_RTCP_DEFINES_H_ 6 #define MEDIA_CAST_RTCP_RTCP_DEFINES_H_
7 7
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
11 11
12 #include "media/cast/cast_config.h" 12 #include "media/cast/cast_config.h"
13 #include "media/cast/cast_defines.h" 13 #include "media/cast/cast_defines.h"
14 #include "media/cast/logging/logging_defines.h" 14 #include "media/cast/logging/logging_defines.h"
15 #include "media/cast/net/cast_net_defines.h"
15 16
16 namespace media { 17 namespace media {
17 namespace cast { 18 namespace cast {
18 19
19 // Handle the per frame ACK and NACK messages. 20 // Handle the per frame ACK and NACK messages.
20 class RtcpCastMessage { 21 class RtcpCastMessage {
21 public: 22 public:
22 explicit RtcpCastMessage(uint32 media_ssrc); 23 explicit RtcpCastMessage(uint32 media_ssrc);
23 ~RtcpCastMessage(); 24 ~RtcpCastMessage();
24 25
25 uint32 media_ssrc_; 26 uint32 media_ssrc_;
26 uint32 ack_frame_id_; 27 uint32 ack_frame_id_;
27 MissingFramesAndPacketsMap missing_frames_and_packets_; 28 MissingFramesAndPacketsMap missing_frames_and_packets_;
28 }; 29 };
29 30
30 // Log messages form sender to receiver.
31 enum RtcpSenderFrameStatus {
32 kRtcpSenderFrameStatusUnknown = 0,
33 kRtcpSenderFrameStatusDroppedByEncoder = 1,
34 kRtcpSenderFrameStatusDroppedByFlowControl = 2,
35 kRtcpSenderFrameStatusSentToNetwork = 3,
36 };
37
38 struct RtcpSenderFrameLogMessage {
39 RtcpSenderFrameStatus frame_status;
40 uint32 rtp_timestamp;
41 };
42
43 typedef std::list<RtcpSenderFrameLogMessage> RtcpSenderLogMessage;
44
45 // Log messages from receiver to sender. 31 // Log messages from receiver to sender.
46 struct RtcpReceiverEventLogMessage { 32 struct RtcpReceiverEventLogMessage {
47 CastLoggingEvent type; 33 CastLoggingEvent type;
48 base::TimeTicks event_timestamp; 34 base::TimeTicks event_timestamp;
49 base::TimeDelta delay_delta; 35 base::TimeDelta delay_delta;
50 uint16 packet_id; 36 uint16 packet_id;
51 }; 37 };
52 38
53 typedef std::list<RtcpReceiverEventLogMessage> RtcpReceiverEventLogMessages; 39 typedef std::list<RtcpReceiverEventLogMessage> RtcpReceiverEventLogMessages;
54 40
55 class RtcpReceiverFrameLogMessage { 41 class RtcpReceiverFrameLogMessage {
56 public: 42 public:
57 explicit RtcpReceiverFrameLogMessage(uint32 rtp_timestamp); 43 explicit RtcpReceiverFrameLogMessage(uint32 rtp_timestamp);
58 ~RtcpReceiverFrameLogMessage(); 44 ~RtcpReceiverFrameLogMessage();
59 45
60 uint32 rtp_timestamp_; 46 uint32 rtp_timestamp_;
61 RtcpReceiverEventLogMessages event_log_messages_; 47 RtcpReceiverEventLogMessages event_log_messages_;
62 }; 48 };
63 49
64 typedef std::list<RtcpReceiverFrameLogMessage> RtcpReceiverLogMessage; 50 typedef std::list<RtcpReceiverFrameLogMessage> RtcpReceiverLogMessage;
65 51
66 struct RtcpSenderInfo {
67 // First three members are used for lipsync.
68 // First two members are used for rtt.
69 uint32 ntp_seconds;
70 uint32 ntp_fraction;
71 uint32 rtp_timestamp;
72 uint32 send_packet_count;
73 size_t send_octet_count;
74 };
75
76 struct RtcpReportBlock {
77 uint32 remote_ssrc; // SSRC of sender of this report.
78 uint32 media_ssrc; // SSRC of the RTP packet sender.
79 uint8 fraction_lost;
80 uint32 cumulative_lost; // 24 bits valid.
81 uint32 extended_high_sequence_number;
82 uint32 jitter;
83 uint32 last_sr;
84 uint32 delay_since_last_sr;
85 };
86
87 struct RtcpRpsiMessage { 52 struct RtcpRpsiMessage {
88 uint32 remote_ssrc; 53 uint32 remote_ssrc;
89 uint8 payload_type; 54 uint8 payload_type;
90 uint64 picture_id; 55 uint64 picture_id;
91 }; 56 };
92 57
93 class RtcpNackMessage { 58 class RtcpNackMessage {
94 public: 59 public:
95 RtcpNackMessage(); 60 RtcpNackMessage();
96 ~RtcpNackMessage(); 61 ~RtcpNackMessage();
(...skipping 10 matching lines...) Expand all
107 uint32 remb_bitrate; 72 uint32 remb_bitrate;
108 std::list<uint32> remb_ssrcs; 73 std::list<uint32> remb_ssrcs;
109 }; 74 };
110 75
111 struct RtcpReceiverReferenceTimeReport { 76 struct RtcpReceiverReferenceTimeReport {
112 uint32 remote_ssrc; 77 uint32 remote_ssrc;
113 uint32 ntp_seconds; 78 uint32 ntp_seconds;
114 uint32 ntp_fraction; 79 uint32 ntp_fraction;
115 }; 80 };
116 81
117 struct RtcpDlrrReportBlock {
118 uint32 last_rr;
119 uint32 delay_since_last_rr;
120 };
121
122 inline bool operator==(RtcpReportBlock lhs, RtcpReportBlock rhs) {
123 return lhs.remote_ssrc == rhs.remote_ssrc &&
124 lhs.media_ssrc == rhs.media_ssrc &&
125 lhs.fraction_lost == rhs.fraction_lost &&
126 lhs.cumulative_lost == rhs.cumulative_lost &&
127 lhs.extended_high_sequence_number == rhs.extended_high_sequence_number &&
128 lhs.jitter == rhs.jitter &&
129 lhs.last_sr == rhs.last_sr &&
130 lhs.delay_since_last_sr == rhs.delay_since_last_sr;
131 }
132
133 inline bool operator==(RtcpSenderInfo lhs, RtcpSenderInfo rhs) { 82 inline bool operator==(RtcpSenderInfo lhs, RtcpSenderInfo rhs) {
134 return lhs.ntp_seconds == rhs.ntp_seconds && 83 return lhs.ntp_seconds == rhs.ntp_seconds &&
135 lhs.ntp_fraction == rhs.ntp_fraction && 84 lhs.ntp_fraction == rhs.ntp_fraction &&
136 lhs.rtp_timestamp == rhs.rtp_timestamp && 85 lhs.rtp_timestamp == rhs.rtp_timestamp &&
137 lhs.send_packet_count == rhs.send_packet_count && 86 lhs.send_packet_count == rhs.send_packet_count &&
138 lhs.send_octet_count == rhs.send_octet_count; 87 lhs.send_octet_count == rhs.send_octet_count;
139 } 88 }
140 89
141 inline bool operator==(RtcpReceiverReferenceTimeReport lhs, 90 inline bool operator==(RtcpReceiverReferenceTimeReport lhs,
142 RtcpReceiverReferenceTimeReport rhs) { 91 RtcpReceiverReferenceTimeReport rhs) {
143 return lhs.remote_ssrc == rhs.remote_ssrc && 92 return lhs.remote_ssrc == rhs.remote_ssrc &&
144 lhs.ntp_seconds == rhs.ntp_seconds && 93 lhs.ntp_seconds == rhs.ntp_seconds &&
145 lhs.ntp_fraction == rhs.ntp_fraction; 94 lhs.ntp_fraction == rhs.ntp_fraction;
146 } 95 }
147 96
148 } // namespace cast 97 } // namespace cast
149 } // namespace media 98 } // namespace media
150 99
151 #endif // MEDIA_CAST_RTCP_RTCP_DEFINES_H_ 100 #endif // MEDIA_CAST_RTCP_RTCP_DEFINES_H_
OLDNEW
« no previous file with comments | « media/cast/rtcp/rtcp.gyp ('k') | media/cast/rtcp/rtcp_receiver_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698