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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc

Issue 2431253003: Remove now unused code in RtpHeaderExtensionMap (Closed)
Patch Set: Created 4 years, 2 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 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 14 matching lines...) Expand all
25 25
26 void RtpHeaderExtensionMap::Erase() { 26 void RtpHeaderExtensionMap::Erase() {
27 while (!extensionMap_.empty()) { 27 while (!extensionMap_.empty()) {
28 std::map<uint8_t, HeaderExtension*>::iterator it = 28 std::map<uint8_t, HeaderExtension*>::iterator it =
29 extensionMap_.begin(); 29 extensionMap_.begin();
30 delete it->second; 30 delete it->second;
31 extensionMap_.erase(it); 31 extensionMap_.erase(it);
32 } 32 }
33 } 33 }
34 34
35 int32_t RtpHeaderExtensionMap::Register(const RTPExtensionType type, 35 int32_t RtpHeaderExtensionMap::Register(RTPExtensionType type, uint8_t id) {
36 const uint8_t id) {
37 return Register(type, id, true);
38 }
39
40 int32_t RtpHeaderExtensionMap::RegisterInactive(const RTPExtensionType type,
41 const uint8_t id) {
42 return Register(type, id, false);
43 }
44
45 int32_t RtpHeaderExtensionMap::Register(const RTPExtensionType type,
46 const uint8_t id,
47 bool active) {
48 if (id < 1 || id > 14) { 36 if (id < 1 || id > 14) {
49 return -1; 37 return -1;
50 } 38 }
51 std::map<uint8_t, HeaderExtension*>::iterator it = 39 std::map<uint8_t, HeaderExtension*>::iterator it =
52 extensionMap_.find(id); 40 extensionMap_.find(id);
53 if (it != extensionMap_.end()) { 41 if (it != extensionMap_.end()) {
54 if (it->second->type != type) { 42 if (it->second->type != type) {
55 // An extension is already registered with the same id 43 // An extension is already registered with the same id
56 // but a different type, so return failure. 44 // but a different type, so return failure.
57 return -1; 45 return -1;
58 } 46 }
59 // This extension type is already registered with this id, 47 // This extension type is already registered with this id,
60 // so return success. 48 // so return success.
61 it->second->active = active;
62 return 0; 49 return 0;
63 } 50 }
64 extensionMap_[id] = new HeaderExtension(type, active); 51 extensionMap_[id] = new HeaderExtension(type);
65 return 0; 52 return 0;
66 } 53 }
67 54
68 bool RtpHeaderExtensionMap::SetActive(const RTPExtensionType type,
69 bool active) {
70 for (auto& kv : extensionMap_) {
71 if (kv.second->type == type) {
72 kv.second->active = active;
73 return true;
74 }
75 }
76 return false;
77 }
78
79 int32_t RtpHeaderExtensionMap::Deregister(const RTPExtensionType type) { 55 int32_t RtpHeaderExtensionMap::Deregister(const RTPExtensionType type) {
80 uint8_t id; 56 uint8_t id;
81 if (GetId(type, &id) != 0) { 57 if (GetId(type, &id) != 0) {
82 return 0; 58 return 0;
83 } 59 }
84 std::map<uint8_t, HeaderExtension*>::iterator it = 60 std::map<uint8_t, HeaderExtension*>::iterator it =
85 extensionMap_.find(id); 61 extensionMap_.find(id);
86 assert(it != extensionMap_.end()); 62 assert(it != extensionMap_.end());
87 delete it->second; 63 delete it->second;
88 extensionMap_.erase(it); 64 extensionMap_.erase(it);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 for (auto kv : extensionMap_) { 117 for (auto kv : extensionMap_) {
142 if (kv.second->type == type) 118 if (kv.second->type == type)
143 return kv.first; 119 return kv.first;
144 } 120 }
145 return kInvalidId; 121 return kInvalidId;
146 } 122 }
147 123
148 size_t RtpHeaderExtensionMap::GetTotalLengthInBytes() const { 124 size_t RtpHeaderExtensionMap::GetTotalLengthInBytes() const {
149 // Get length for each extension block. 125 // Get length for each extension block.
150 size_t length = 0; 126 size_t length = 0;
151 std::map<uint8_t, HeaderExtension*>::const_iterator it = 127 for (const auto& kv : extensionMap_)
152 extensionMap_.begin(); 128 length += kv.second->length;
153 while (it != extensionMap_.end()) {
154 HeaderExtension* extension = it->second;
155 if (extension->active) {
156 length += extension->length;
157 }
158 it++;
159 }
160 // Add RTP extension header length. 129 // Add RTP extension header length.
161 if (length > 0) { 130 if (length > 0)
162 length += kRtpOneByteHeaderLength; 131 length += kRtpOneByteHeaderLength;
163 }
164 // Pad up to nearest 32bit word. 132 // Pad up to nearest 32bit word.
165 length = RtpUtility::Word32Align(length); 133 length = RtpUtility::Word32Align(length);
166 return length; 134 return length;
167 } 135 }
168 136
169 int32_t RtpHeaderExtensionMap::GetLengthUntilBlockStartInBytes(
170 const RTPExtensionType type) const {
171 uint8_t id;
172 if (GetId(type, &id) != 0) {
173 // Not registered.
174 return -1;
175 }
176 // Get length until start of extension block type.
177 uint16_t length = kRtpOneByteHeaderLength;
178
179 std::map<uint8_t, HeaderExtension*>::const_iterator it =
180 extensionMap_.begin();
181 while (it != extensionMap_.end()) {
182 HeaderExtension* extension = it->second;
183 if (extension->type == type) {
184 if (!extension->active) {
185 return -1;
186 }
187 break;
188 } else if (extension->active) {
189 length += extension->length;
190 }
191 it++;
192 }
193 return length;
194 }
195
196 int32_t RtpHeaderExtensionMap::Size() const { 137 int32_t RtpHeaderExtensionMap::Size() const {
197 int32_t count = 0; 138 return extensionMap_.size();
198 for (auto& kv : extensionMap_) {
199 if (kv.second->active) {
200 count++;
201 }
202 }
203 return count;
204 }
205
206 RTPExtensionType RtpHeaderExtensionMap::First() const {
207 for (auto& kv : extensionMap_) {
208 if (kv.second->active) {
209 return kv.second->type;
210 }
211 }
212
213 return kRtpExtensionNone;
214 }
215
216 RTPExtensionType RtpHeaderExtensionMap::Next(RTPExtensionType type) const {
217 uint8_t id;
218 if (GetId(type, &id) != 0) {
219 return kRtpExtensionNone;
220 }
221 std::map<uint8_t, HeaderExtension*>::const_iterator it =
222 extensionMap_.find(id);
223 if (it == extensionMap_.end() || !it->second->active) {
224 return kRtpExtensionNone;
225 }
226 while ((++it) != extensionMap_.end()) {
227 if (it->second->active) {
228 return it->second->type;
229 }
230 }
231
232 return kRtpExtensionNone;
233 } 139 }
234 140
235 void RtpHeaderExtensionMap::GetCopy(RtpHeaderExtensionMap* map) const { 141 void RtpHeaderExtensionMap::GetCopy(RtpHeaderExtensionMap* map) const {
236 assert(map); 142 assert(map);
237 std::map<uint8_t, HeaderExtension*>::const_iterator it = 143 std::map<uint8_t, HeaderExtension*>::const_iterator it =
238 extensionMap_.begin(); 144 extensionMap_.begin();
239 while (it != extensionMap_.end()) { 145 while (it != extensionMap_.end()) {
240 HeaderExtension* extension = it->second; 146 HeaderExtension* extension = it->second;
241 map->Register(extension->type, it->first, extension->active); 147 map->Register(extension->type, it->first);
242 it++; 148 it++;
243 } 149 }
244 } 150 }
245 } // namespace webrtc 151 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698