OLD | NEW |
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 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 static const char* kPayloadNameH264 = "H264"; | 125 static const char* kPayloadNameH264 = "H264"; |
126 static const char* kPayloadNameI420 = "I420"; | 126 static const char* kPayloadNameI420 = "I420"; |
127 static const char* kPayloadNameRED = "RED"; | 127 static const char* kPayloadNameRED = "RED"; |
128 static const char* kPayloadNameULPFEC = "ULPFEC"; | 128 static const char* kPayloadNameULPFEC = "ULPFEC"; |
129 static const char* kPayloadNameGeneric = "Generic"; | 129 static const char* kPayloadNameGeneric = "Generic"; |
130 | 130 |
131 static bool CodecNamesEq(const char* name1, const char* name2) { | 131 static bool CodecNamesEq(const char* name1, const char* name2) { |
132 return _stricmp(name1, name2) == 0; | 132 return _stricmp(name1, name2) == 0; |
133 } | 133 } |
134 | 134 |
135 rtc::Optional<const char*> CodecTypeToPayloadName(VideoCodecType type) { | 135 const char* CodecTypeToPayloadString(VideoCodecType type) { |
136 switch (type) { | 136 switch (type) { |
137 case kVideoCodecVP8: | 137 case kVideoCodecVP8: |
138 return rtc::Optional<const char*>(kPayloadNameVp8); | 138 return kPayloadNameVp8; |
139 case kVideoCodecVP9: | 139 case kVideoCodecVP9: |
140 return rtc::Optional<const char*>(kPayloadNameVp9); | 140 return kPayloadNameVp9; |
141 case kVideoCodecH264: | 141 case kVideoCodecH264: |
142 return rtc::Optional<const char*>(kPayloadNameH264); | 142 return kPayloadNameH264; |
143 case kVideoCodecI420: | 143 case kVideoCodecI420: |
144 return rtc::Optional<const char*>(kPayloadNameI420); | 144 return kPayloadNameI420; |
145 case kVideoCodecRED: | 145 case kVideoCodecRED: |
146 return rtc::Optional<const char*>(kPayloadNameRED); | 146 return kPayloadNameRED; |
147 case kVideoCodecULPFEC: | 147 case kVideoCodecULPFEC: |
148 return rtc::Optional<const char*>(kPayloadNameULPFEC); | 148 return kPayloadNameULPFEC; |
149 case kVideoCodecGeneric: | |
150 return rtc::Optional<const char*>(kPayloadNameGeneric); | |
151 default: | 149 default: |
152 return rtc::Optional<const char*>(); | 150 // Unrecognized codecs default to generic. |
| 151 return kPayloadNameGeneric; |
153 } | 152 } |
154 } | 153 } |
155 | 154 |
| 155 VideoCodecType PayloadStringToCodecType(const std::string& name) { |
| 156 if (CodecNamesEq(name.c_str(), kPayloadNameVp8)) |
| 157 return kVideoCodecVP8; |
| 158 if (CodecNamesEq(name.c_str(), kPayloadNameVp9)) |
| 159 return kVideoCodecVP9; |
| 160 if (CodecNamesEq(name.c_str(), kPayloadNameH264)) |
| 161 return kVideoCodecH264; |
| 162 if (CodecNamesEq(name.c_str(), kPayloadNameI420)) |
| 163 return kVideoCodecI420; |
| 164 if (CodecNamesEq(name.c_str(), kPayloadNameRED)) |
| 165 return kVideoCodecRED; |
| 166 if (CodecNamesEq(name.c_str(), kPayloadNameULPFEC)) |
| 167 return kVideoCodecULPFEC; |
| 168 return kVideoCodecGeneric; |
| 169 } |
| 170 |
| 171 // TODO(kthelgason): Remove these methods once upstream projects |
| 172 // have been updated. |
| 173 rtc::Optional<const char*> CodecTypeToPayloadName(VideoCodecType type) { |
| 174 return rtc::Optional<const char*>(CodecTypeToPayloadString(type)); |
| 175 } |
| 176 |
156 rtc::Optional<VideoCodecType> PayloadNameToCodecType(const std::string& name) { | 177 rtc::Optional<VideoCodecType> PayloadNameToCodecType(const std::string& name) { |
157 if (CodecNamesEq(name.c_str(), kPayloadNameVp8)) | 178 return rtc::Optional<VideoCodecType>(PayloadStringToCodecType(name)); |
158 return rtc::Optional<VideoCodecType>(kVideoCodecVP8); | |
159 if (CodecNamesEq(name.c_str(), kPayloadNameVp9)) | |
160 return rtc::Optional<VideoCodecType>(kVideoCodecVP9); | |
161 if (CodecNamesEq(name.c_str(), kPayloadNameH264)) | |
162 return rtc::Optional<VideoCodecType>(kVideoCodecH264); | |
163 if (CodecNamesEq(name.c_str(), kPayloadNameI420)) | |
164 return rtc::Optional<VideoCodecType>(kVideoCodecI420); | |
165 if (CodecNamesEq(name.c_str(), kPayloadNameRED)) | |
166 return rtc::Optional<VideoCodecType>(kVideoCodecRED); | |
167 if (CodecNamesEq(name.c_str(), kPayloadNameULPFEC)) | |
168 return rtc::Optional<VideoCodecType>(kVideoCodecULPFEC); | |
169 if (CodecNamesEq(name.c_str(), kPayloadNameGeneric)) | |
170 return rtc::Optional<VideoCodecType>(kVideoCodecGeneric); | |
171 return rtc::Optional<VideoCodecType>(); | |
172 } | 179 } |
173 | 180 |
174 const uint32_t BitrateAllocation::kMaxBitrateBps = | 181 const uint32_t BitrateAllocation::kMaxBitrateBps = |
175 std::numeric_limits<uint32_t>::max(); | 182 std::numeric_limits<uint32_t>::max(); |
176 | 183 |
177 BitrateAllocation::BitrateAllocation() : sum_(0), bitrates_{} {} | 184 BitrateAllocation::BitrateAllocation() : sum_(0), bitrates_{} {} |
178 | 185 |
179 bool BitrateAllocation::SetBitrate(size_t spatial_index, | 186 bool BitrateAllocation::SetBitrate(size_t spatial_index, |
180 size_t temporal_index, | 187 size_t temporal_index, |
181 uint32_t bitrate_bps) { | 188 uint32_t bitrate_bps) { |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 oss << " ]"; | 259 oss << " ]"; |
253 return oss.str(); | 260 return oss.str(); |
254 } | 261 } |
255 | 262 |
256 std::ostream& BitrateAllocation::operator<<(std::ostream& os) const { | 263 std::ostream& BitrateAllocation::operator<<(std::ostream& os) const { |
257 os << ToString(); | 264 os << ToString(); |
258 return os; | 265 return os; |
259 } | 266 } |
260 | 267 |
261 } // namespace webrtc | 268 } // namespace webrtc |
OLD | NEW |