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