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 // 96 to 127 dynamic payload types for video codecs. | 125 // 96 to 127 dynamic payload types for video codecs. |
126 settings->plType = kDefaultPayloadType; | 126 settings->plType = kDefaultPayloadType; |
127 settings->startBitrate = kDefaultStartBitrateKbps; | 127 settings->startBitrate = kDefaultStartBitrateKbps; |
128 settings->minBitrate = VCM_MIN_BITRATE; | 128 settings->minBitrate = VCM_MIN_BITRATE; |
129 settings->maxBitrate = 0; | 129 settings->maxBitrate = 0; |
130 settings->maxFramerate = VCM_DEFAULT_FRAME_RATE; | 130 settings->maxFramerate = VCM_DEFAULT_FRAME_RATE; |
131 settings->width = VCM_DEFAULT_CODEC_WIDTH; | 131 settings->width = VCM_DEFAULT_CODEC_WIDTH; |
132 settings->height = VCM_DEFAULT_CODEC_HEIGHT; | 132 settings->height = VCM_DEFAULT_CODEC_HEIGHT; |
133 settings->numberOfSimulcastStreams = 0; | 133 settings->numberOfSimulcastStreams = 0; |
134 settings->qpMax = 56; | 134 settings->qpMax = 56; |
135 settings->codecSpecific.VP8 = VideoEncoder::GetDefaultVp8Settings(); | 135 *(settings->VP8()) = VideoEncoder::GetDefaultVp8Settings(); |
136 return; | 136 return; |
137 case kVideoCodecVP9: | 137 case kVideoCodecVP9: |
138 strncpy(settings->plName, "VP9", 4); | 138 strncpy(settings->plName, "VP9", 4); |
139 settings->codecType = kVideoCodecVP9; | 139 settings->codecType = kVideoCodecVP9; |
140 // 96 to 127 dynamic payload types for video codecs. | 140 // 96 to 127 dynamic payload types for video codecs. |
141 settings->plType = kDefaultPayloadType; | 141 settings->plType = kDefaultPayloadType; |
142 settings->startBitrate = 100; | 142 settings->startBitrate = 100; |
143 settings->minBitrate = VCM_MIN_BITRATE; | 143 settings->minBitrate = VCM_MIN_BITRATE; |
144 settings->maxBitrate = 0; | 144 settings->maxBitrate = 0; |
145 settings->maxFramerate = VCM_DEFAULT_FRAME_RATE; | 145 settings->maxFramerate = VCM_DEFAULT_FRAME_RATE; |
146 settings->width = VCM_DEFAULT_CODEC_WIDTH; | 146 settings->width = VCM_DEFAULT_CODEC_WIDTH; |
147 settings->height = VCM_DEFAULT_CODEC_HEIGHT; | 147 settings->height = VCM_DEFAULT_CODEC_HEIGHT; |
148 settings->numberOfSimulcastStreams = 0; | 148 settings->numberOfSimulcastStreams = 0; |
149 settings->qpMax = 56; | 149 settings->qpMax = 56; |
150 settings->codecSpecific.VP9 = VideoEncoder::GetDefaultVp9Settings(); | 150 *(settings->VP9()) = VideoEncoder::GetDefaultVp9Settings(); |
151 return; | 151 return; |
152 case kVideoCodecH264: | 152 case kVideoCodecH264: |
153 strncpy(settings->plName, "H264", 5); | 153 strncpy(settings->plName, "H264", 5); |
154 settings->codecType = kVideoCodecH264; | 154 settings->codecType = kVideoCodecH264; |
155 // 96 to 127 dynamic payload types for video codecs. | 155 // 96 to 127 dynamic payload types for video codecs. |
156 settings->plType = kDefaultPayloadType; | 156 settings->plType = kDefaultPayloadType; |
157 settings->startBitrate = kDefaultStartBitrateKbps; | 157 settings->startBitrate = kDefaultStartBitrateKbps; |
158 settings->minBitrate = VCM_MIN_BITRATE; | 158 settings->minBitrate = VCM_MIN_BITRATE; |
159 settings->maxBitrate = 0; | 159 settings->maxBitrate = 0; |
160 settings->maxFramerate = VCM_DEFAULT_FRAME_RATE; | 160 settings->maxFramerate = VCM_DEFAULT_FRAME_RATE; |
161 settings->width = VCM_DEFAULT_CODEC_WIDTH; | 161 settings->width = VCM_DEFAULT_CODEC_WIDTH; |
162 settings->height = VCM_DEFAULT_CODEC_HEIGHT; | 162 settings->height = VCM_DEFAULT_CODEC_HEIGHT; |
163 settings->numberOfSimulcastStreams = 0; | 163 settings->numberOfSimulcastStreams = 0; |
164 settings->qpMax = 56; | 164 settings->qpMax = 56; |
165 settings->codecSpecific.H264 = VideoEncoder::GetDefaultH264Settings(); | 165 *(settings->H264()) = VideoEncoder::GetDefaultH264Settings(); |
166 return; | 166 return; |
167 case kVideoCodecI420: | 167 case kVideoCodecI420: |
168 strncpy(settings->plName, "I420", 5); | 168 strncpy(settings->plName, "I420", 5); |
169 settings->codecType = kVideoCodecI420; | 169 settings->codecType = kVideoCodecI420; |
170 // 96 to 127 dynamic payload types for video codecs. | 170 // 96 to 127 dynamic payload types for video codecs. |
171 settings->plType = kDefaultPayloadType; | 171 settings->plType = kDefaultPayloadType; |
172 // Bitrate needed for this size and framerate. | 172 // Bitrate needed for this size and framerate. |
173 settings->startBitrate = 3 * VCM_DEFAULT_CODEC_WIDTH * | 173 settings->startBitrate = 3 * VCM_DEFAULT_CODEC_WIDTH * |
174 VCM_DEFAULT_CODEC_HEIGHT * 8 * | 174 VCM_DEFAULT_CODEC_HEIGHT * 8 * |
175 VCM_DEFAULT_FRAME_RATE / 1000 / 2; | 175 VCM_DEFAULT_FRAME_RATE / 1000 / 2; |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
325 new_send_codec.minBitrate != send_codec_.minBitrate || | 325 new_send_codec.minBitrate != send_codec_.minBitrate || |
326 new_send_codec.qpMax != send_codec_.qpMax || | 326 new_send_codec.qpMax != send_codec_.qpMax || |
327 new_send_codec.numberOfSimulcastStreams != | 327 new_send_codec.numberOfSimulcastStreams != |
328 send_codec_.numberOfSimulcastStreams || | 328 send_codec_.numberOfSimulcastStreams || |
329 new_send_codec.mode != send_codec_.mode) { | 329 new_send_codec.mode != send_codec_.mode) { |
330 return true; | 330 return true; |
331 } | 331 } |
332 | 332 |
333 switch (new_send_codec.codecType) { | 333 switch (new_send_codec.codecType) { |
334 case kVideoCodecVP8: | 334 case kVideoCodecVP8: |
335 if (memcmp(&new_send_codec.codecSpecific.VP8, | 335 if (memcmp(&new_send_codec.VP8(), send_codec_.VP8(), |
336 &send_codec_.codecSpecific.VP8, | 336 sizeof(new_send_codec.VP8())) != 0) { |
337 sizeof(new_send_codec.codecSpecific.VP8)) != 0) { | |
338 return true; | 337 return true; |
339 } | 338 } |
340 break; | 339 break; |
341 case kVideoCodecVP9: | 340 case kVideoCodecVP9: |
342 if (memcmp(&new_send_codec.codecSpecific.VP9, | 341 if (memcmp(&new_send_codec.VP9(), send_codec_.VP9(), |
343 &send_codec_.codecSpecific.VP9, | 342 sizeof(new_send_codec.VP9())) != 0) { |
344 sizeof(new_send_codec.codecSpecific.VP9)) != 0) { | |
345 return true; | 343 return true; |
346 } | 344 } |
347 break; | 345 break; |
348 case kVideoCodecH264: | 346 case kVideoCodecH264: |
349 if (memcmp(&new_send_codec.codecSpecific.H264, | 347 if (memcmp(&new_send_codec.H264(), send_codec_.H264(), |
350 &send_codec_.codecSpecific.H264, | 348 sizeof(new_send_codec.H264())) != 0) { |
351 sizeof(new_send_codec.codecSpecific.H264)) != 0) { | |
352 return true; | 349 return true; |
353 } | 350 } |
354 break; | 351 break; |
355 case kVideoCodecGeneric: | 352 case kVideoCodecGeneric: |
356 break; | 353 break; |
357 // Known codecs without payload-specifics | 354 // Known codecs without payload-specifics |
358 case kVideoCodecI420: | 355 case kVideoCodecI420: |
359 case kVideoCodecRED: | 356 case kVideoCodecRED: |
360 case kVideoCodecULPFEC: | 357 case kVideoCodecULPFEC: |
361 break; | 358 break; |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
606 | 603 |
607 const VCMExtDecoderMapItem* VCMCodecDataBase::FindExternalDecoderItem( | 604 const VCMExtDecoderMapItem* VCMCodecDataBase::FindExternalDecoderItem( |
608 uint8_t payload_type) const { | 605 uint8_t payload_type) const { |
609 ExternalDecoderMap::const_iterator it = dec_external_map_.find(payload_type); | 606 ExternalDecoderMap::const_iterator it = dec_external_map_.find(payload_type); |
610 if (it != dec_external_map_.end()) { | 607 if (it != dec_external_map_.end()) { |
611 return (*it).second; | 608 return (*it).second; |
612 } | 609 } |
613 return nullptr; | 610 return nullptr; |
614 } | 611 } |
615 } // namespace webrtc | 612 } // namespace webrtc |
OLD | NEW |