OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 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 1709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1720 | 1720 |
1721 const std::vector<uint32_t>& | 1721 const std::vector<uint32_t>& |
1722 WebRtcVideoChannel2::WebRtcVideoSendStream::GetSsrcs() const { | 1722 WebRtcVideoChannel2::WebRtcVideoSendStream::GetSsrcs() const { |
1723 return ssrcs_; | 1723 return ssrcs_; |
1724 } | 1724 } |
1725 | 1725 |
1726 WebRtcVideoChannel2::WebRtcVideoSendStream::AllocatedEncoder | 1726 WebRtcVideoChannel2::WebRtcVideoSendStream::AllocatedEncoder |
1727 WebRtcVideoChannel2::WebRtcVideoSendStream::CreateVideoEncoder( | 1727 WebRtcVideoChannel2::WebRtcVideoSendStream::CreateVideoEncoder( |
1728 const VideoCodec& codec) { | 1728 const VideoCodec& codec) { |
1729 RTC_DCHECK_RUN_ON(&thread_checker_); | 1729 RTC_DCHECK_RUN_ON(&thread_checker_); |
1730 webrtc::VideoCodecType type = CodecTypeFromName(codec.name); | 1730 webrtc::VideoCodecType type = webrtc::PayloadNameToCodecType(codec.name) |
| 1731 .value_or(webrtc::kVideoCodecUnknown); |
1731 | 1732 |
1732 // Do not re-create encoders of the same type. | 1733 // Do not re-create encoders of the same type. |
1733 if (type == allocated_encoder_.type && allocated_encoder_.encoder != NULL) { | 1734 if (type == allocated_encoder_.type && allocated_encoder_.encoder != NULL) { |
1734 return allocated_encoder_; | 1735 return allocated_encoder_; |
1735 } | 1736 } |
1736 | 1737 |
1737 if (external_encoder_factory_ != NULL) { | 1738 if (external_encoder_factory_ != NULL) { |
1738 webrtc::VideoEncoder* encoder = | 1739 webrtc::VideoEncoder* encoder = |
1739 external_encoder_factory_->CreateVideoEncoder(codec); | 1740 external_encoder_factory_->CreateVideoEncoder(codec); |
1740 if (encoder != NULL) { | 1741 if (encoder != NULL) { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1773 RTC_DCHECK_RUN_ON(&thread_checker_); | 1774 RTC_DCHECK_RUN_ON(&thread_checker_); |
1774 parameters_.encoder_config = CreateVideoEncoderConfig(codec_settings.codec); | 1775 parameters_.encoder_config = CreateVideoEncoderConfig(codec_settings.codec); |
1775 RTC_DCHECK_GT(parameters_.encoder_config.number_of_streams, 0u); | 1776 RTC_DCHECK_GT(parameters_.encoder_config.number_of_streams, 0u); |
1776 | 1777 |
1777 AllocatedEncoder new_encoder = CreateVideoEncoder(codec_settings.codec); | 1778 AllocatedEncoder new_encoder = CreateVideoEncoder(codec_settings.codec); |
1778 parameters_.config.encoder_settings.encoder = new_encoder.encoder; | 1779 parameters_.config.encoder_settings.encoder = new_encoder.encoder; |
1779 parameters_.config.encoder_settings.full_overuse_time = new_encoder.external; | 1780 parameters_.config.encoder_settings.full_overuse_time = new_encoder.external; |
1780 parameters_.config.encoder_settings.payload_name = codec_settings.codec.name; | 1781 parameters_.config.encoder_settings.payload_name = codec_settings.codec.name; |
1781 parameters_.config.encoder_settings.payload_type = codec_settings.codec.id; | 1782 parameters_.config.encoder_settings.payload_type = codec_settings.codec.id; |
1782 if (new_encoder.external) { | 1783 if (new_encoder.external) { |
1783 webrtc::VideoCodecType type = CodecTypeFromName(codec_settings.codec.name); | 1784 webrtc::VideoCodecType type = |
| 1785 webrtc::PayloadNameToCodecType(codec_settings.codec.name) |
| 1786 .value_or(webrtc::kVideoCodecUnknown); |
1784 parameters_.config.encoder_settings.internal_source = | 1787 parameters_.config.encoder_settings.internal_source = |
1785 external_encoder_factory_->EncoderTypeHasInternalSource(type); | 1788 external_encoder_factory_->EncoderTypeHasInternalSource(type); |
1786 } | 1789 } |
1787 parameters_.config.rtp.ulpfec = codec_settings.ulpfec; | 1790 parameters_.config.rtp.ulpfec = codec_settings.ulpfec; |
1788 | 1791 |
1789 // Set RTX payload type if RTX is enabled. | 1792 // Set RTX payload type if RTX is enabled. |
1790 if (!parameters_.config.rtp.rtx.ssrcs.empty()) { | 1793 if (!parameters_.config.rtp.rtx.ssrcs.empty()) { |
1791 if (codec_settings.rtx_payload_type == -1) { | 1794 if (codec_settings.rtx_payload_type == -1) { |
1792 LOG(LS_WARNING) << "RTX SSRCs configured but there's no configured RTX " | 1795 LOG(LS_WARNING) << "RTX SSRCs configured but there's no configured RTX " |
1793 "payload type. Ignoring."; | 1796 "payload type. Ignoring."; |
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2212 return rtc::Optional<uint32_t>(); | 2215 return rtc::Optional<uint32_t>(); |
2213 } else { | 2216 } else { |
2214 return rtc::Optional<uint32_t>(primary_ssrcs[0]); | 2217 return rtc::Optional<uint32_t>(primary_ssrcs[0]); |
2215 } | 2218 } |
2216 } | 2219 } |
2217 | 2220 |
2218 WebRtcVideoChannel2::WebRtcVideoReceiveStream::AllocatedDecoder | 2221 WebRtcVideoChannel2::WebRtcVideoReceiveStream::AllocatedDecoder |
2219 WebRtcVideoChannel2::WebRtcVideoReceiveStream::CreateOrReuseVideoDecoder( | 2222 WebRtcVideoChannel2::WebRtcVideoReceiveStream::CreateOrReuseVideoDecoder( |
2220 std::vector<AllocatedDecoder>* old_decoders, | 2223 std::vector<AllocatedDecoder>* old_decoders, |
2221 const VideoCodec& codec) { | 2224 const VideoCodec& codec) { |
2222 webrtc::VideoCodecType type = CodecTypeFromName(codec.name); | 2225 webrtc::VideoCodecType type = webrtc::PayloadNameToCodecType(codec.name) |
| 2226 .value_or(webrtc::kVideoCodecUnknown); |
2223 | 2227 |
2224 for (size_t i = 0; i < old_decoders->size(); ++i) { | 2228 for (size_t i = 0; i < old_decoders->size(); ++i) { |
2225 if ((*old_decoders)[i].type == type) { | 2229 if ((*old_decoders)[i].type == type) { |
2226 AllocatedDecoder decoder = (*old_decoders)[i]; | 2230 AllocatedDecoder decoder = (*old_decoders)[i]; |
2227 (*old_decoders)[i] = old_decoders->back(); | 2231 (*old_decoders)[i] = old_decoders->back(); |
2228 old_decoders->pop_back(); | 2232 old_decoders->pop_back(); |
2229 return decoder; | 2233 return decoder; |
2230 } | 2234 } |
2231 } | 2235 } |
2232 | 2236 |
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2590 rtx_mapping[video_codecs[i].codec.id] != | 2594 rtx_mapping[video_codecs[i].codec.id] != |
2591 ulpfec_config.red_payload_type) { | 2595 ulpfec_config.red_payload_type) { |
2592 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; | 2596 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; |
2593 } | 2597 } |
2594 } | 2598 } |
2595 | 2599 |
2596 return video_codecs; | 2600 return video_codecs; |
2597 } | 2601 } |
2598 | 2602 |
2599 } // namespace cricket | 2603 } // namespace cricket |
OLD | NEW |