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

Side by Side Diff: webrtc/media/engine/webrtcvideoengine2.cc

Issue 2509273002: Unify VideoCodecType to/from string functionality (Closed)
Patch Set: Created 4 years, 1 month 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) 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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698