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

Side by Side Diff: media/cast/net/rtcp/rtcp_utility.h

Issue 1709863002: Add Cast PLI support on sender side. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Separate Pli message from Cast message. Created 4 years, 10 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_NET_RTCP_RTCP_UTILITY_H_ 5 #ifndef MEDIA_CAST_NET_RTCP_RTCP_UTILITY_H_
6 #define MEDIA_CAST_NET_RTCP_RTCP_UTILITY_H_ 6 #define MEDIA_CAST_NET_RTCP_RTCP_UTILITY_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 RtcpCastMessage* mutable_cast_message() { return &cast_message_; } 60 RtcpCastMessage* mutable_cast_message() { return &cast_message_; }
61 61
62 bool has_receiver_reference_time_report() const { 62 bool has_receiver_reference_time_report() const {
63 return has_receiver_reference_time_report_; 63 return has_receiver_reference_time_report_;
64 } 64 }
65 const RtcpReceiverReferenceTimeReport& 65 const RtcpReceiverReferenceTimeReport&
66 receiver_reference_time_report() const { 66 receiver_reference_time_report() const {
67 return receiver_reference_time_report_; 67 return receiver_reference_time_report_;
68 } 68 }
69 69
70 bool has_picture_loss_indicator() const {
71 return has_picture_loss_indicator_;
72 }
73
70 private: 74 private:
71 bool ParseCommonHeader(base::BigEndianReader* reader, 75 bool ParseCommonHeader(base::BigEndianReader* reader,
72 RtcpCommonHeader* parsed_header); 76 RtcpCommonHeader* parsed_header);
73 bool ParseSR(base::BigEndianReader* reader, 77 bool ParseSR(base::BigEndianReader* reader, const RtcpCommonHeader& header);
74 const RtcpCommonHeader& header); 78 bool ParseRR(base::BigEndianReader* reader, const RtcpCommonHeader& header);
75 bool ParseRR(base::BigEndianReader* reader,
76 const RtcpCommonHeader& header);
77 bool ParseReportBlock(base::BigEndianReader* reader); 79 bool ParseReportBlock(base::BigEndianReader* reader);
80 bool ParsePli(base::BigEndianReader* reader, const RtcpCommonHeader& header);
78 bool ParseApplicationDefined(base::BigEndianReader* reader, 81 bool ParseApplicationDefined(base::BigEndianReader* reader,
79 const RtcpCommonHeader& header); 82 const RtcpCommonHeader& header);
80 bool ParseCastReceiverLogFrameItem(base::BigEndianReader* reader); 83 bool ParseCastReceiverLogFrameItem(base::BigEndianReader* reader);
81 bool ParseFeedbackCommon(base::BigEndianReader* reader, 84 bool ParseFeedbackCommon(base::BigEndianReader* reader,
82 const RtcpCommonHeader& header); 85 const RtcpCommonHeader& header);
83 bool ParseExtendedReport(base::BigEndianReader* reader, 86 bool ParseExtendedReport(base::BigEndianReader* reader,
84 const RtcpCommonHeader& header); 87 const RtcpCommonHeader& header);
85 bool ParseExtendedReportReceiverReferenceTimeReport( 88 bool ParseExtendedReportReceiverReferenceTimeReport(
86 base::BigEndianReader* reader, 89 base::BigEndianReader* reader,
87 uint32_t remote_ssrc); 90 uint32_t remote_ssrc);
(...skipping 17 matching lines...) Expand all
105 RtcpCastMessage cast_message_; 108 RtcpCastMessage cast_message_;
106 109
107 bool has_receiver_reference_time_report_; 110 bool has_receiver_reference_time_report_;
108 RtcpReceiverReferenceTimeReport receiver_reference_time_report_; 111 RtcpReceiverReferenceTimeReport receiver_reference_time_report_;
109 112
110 // Tracks recently-parsed RTP timestamps so that the truncated values can be 113 // Tracks recently-parsed RTP timestamps so that the truncated values can be
111 // re-expanded into full-form. 114 // re-expanded into full-form.
112 RtpTimeTicks last_parsed_sr_rtp_timestamp_; 115 RtpTimeTicks last_parsed_sr_rtp_timestamp_;
113 RtpTimeTicks last_parsed_frame_log_rtp_timestamp_; 116 RtpTimeTicks last_parsed_frame_log_rtp_timestamp_;
114 117
118 // Indicates if sender received the Pli message from the receiver.
119 bool has_picture_loss_indicator_;
120
115 DISALLOW_COPY_AND_ASSIGN(RtcpParser); 121 DISALLOW_COPY_AND_ASSIGN(RtcpParser);
116 }; 122 };
117 123
118 // Converts a log event type to an integer value. 124 // Converts a log event type to an integer value.
119 // NOTE: We have only allocated 4 bits to represent the type of event over the 125 // NOTE: We have only allocated 4 bits to represent the type of event over the
120 // wire. Therefore, this function can only return values from 0 to 15. 126 // wire. Therefore, this function can only return values from 0 to 15.
121 uint8_t ConvertEventTypeToWireFormat(CastLoggingEvent event); 127 uint8_t ConvertEventTypeToWireFormat(CastLoggingEvent event);
122 128
123 // The inverse of |ConvertEventTypeToWireFormat()|. 129 // The inverse of |ConvertEventTypeToWireFormat()|.
124 CastLoggingEvent TranslateToLogEventFromWireFormat(uint8_t event); 130 CastLoggingEvent TranslateToLogEventFromWireFormat(uint8_t event);
(...skipping 15 matching lines...) Expand all
140 uint32_t ntp_fractions); 146 uint32_t ntp_fractions);
141 147
142 bool IsRtcpPacket(const uint8_t* packet, size_t length); 148 bool IsRtcpPacket(const uint8_t* packet, size_t length);
143 149
144 uint32_t GetSsrcOfSender(const uint8_t* rtcp_buffer, size_t length); 150 uint32_t GetSsrcOfSender(const uint8_t* rtcp_buffer, size_t length);
145 151
146 } // namespace cast 152 } // namespace cast
147 } // namespace media 153 } // namespace media
148 154
149 #endif // MEDIA_CAST_NET_RTCP_RTCP_UTILITY_H_ 155 #endif // MEDIA_CAST_NET_RTCP_RTCP_UTILITY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698