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 525 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
536 if (default_recv_ssrc_ != 0) { | 536 if (default_recv_ssrc_ != 0) { |
537 channel->SetSink(default_recv_ssrc_, default_sink_); | 537 channel->SetSink(default_recv_ssrc_, default_sink_); |
538 } | 538 } |
539 } | 539 } |
540 | 540 |
541 WebRtcVideoEngine2::WebRtcVideoEngine2() | 541 WebRtcVideoEngine2::WebRtcVideoEngine2() |
542 : initialized_(false), | 542 : initialized_(false), |
543 external_decoder_factory_(NULL), | 543 external_decoder_factory_(NULL), |
544 external_encoder_factory_(NULL) { | 544 external_encoder_factory_(NULL) { |
545 LOG(LS_INFO) << "WebRtcVideoEngine2::WebRtcVideoEngine2()"; | 545 LOG(LS_INFO) << "WebRtcVideoEngine2::WebRtcVideoEngine2()"; |
| 546 video_codecs_ = GetSupportedCodecs(external_encoder_factory_); |
546 } | 547 } |
547 | 548 |
548 WebRtcVideoEngine2::~WebRtcVideoEngine2() { | 549 WebRtcVideoEngine2::~WebRtcVideoEngine2() { |
549 LOG(LS_INFO) << "WebRtcVideoEngine2::~WebRtcVideoEngine2"; | 550 LOG(LS_INFO) << "WebRtcVideoEngine2::~WebRtcVideoEngine2"; |
550 } | 551 } |
551 | 552 |
552 void WebRtcVideoEngine2::Init() { | 553 void WebRtcVideoEngine2::Init() { |
553 LOG(LS_INFO) << "WebRtcVideoEngine2::Init"; | 554 LOG(LS_INFO) << "WebRtcVideoEngine2::Init"; |
554 initialized_ = true; | 555 initialized_ = true; |
555 } | 556 } |
556 | 557 |
557 WebRtcVideoChannel2* WebRtcVideoEngine2::CreateChannel( | 558 WebRtcVideoChannel2* WebRtcVideoEngine2::CreateChannel( |
558 webrtc::Call* call, | 559 webrtc::Call* call, |
559 const MediaConfig& config, | 560 const MediaConfig& config, |
560 const VideoOptions& options) { | 561 const VideoOptions& options) { |
561 RTC_DCHECK(initialized_); | 562 RTC_DCHECK(initialized_); |
562 LOG(LS_INFO) << "CreateChannel. Options: " << options.ToString(); | 563 LOG(LS_INFO) << "CreateChannel. Options: " << options.ToString(); |
563 return new WebRtcVideoChannel2(call, config, options, | 564 return new WebRtcVideoChannel2(call, config, options, |
564 external_encoder_factory_, | 565 external_encoder_factory_, |
565 external_decoder_factory_); | 566 external_decoder_factory_); |
566 } | 567 } |
567 | 568 |
568 const std::vector<VideoCodec> WebRtcVideoEngine2::codecs() const { | 569 const std::vector<VideoCodec>& WebRtcVideoEngine2::codecs() const { |
569 return GetSupportedCodecs(external_encoder_factory_); | 570 return video_codecs_; |
570 } | 571 } |
571 | 572 |
572 RtpCapabilities WebRtcVideoEngine2::GetCapabilities() const { | 573 RtpCapabilities WebRtcVideoEngine2::GetCapabilities() const { |
573 RtpCapabilities capabilities; | 574 RtpCapabilities capabilities; |
574 capabilities.header_extensions.push_back( | 575 capabilities.header_extensions.push_back( |
575 webrtc::RtpExtension(webrtc::RtpExtension::kTimestampOffsetUri, | 576 webrtc::RtpExtension(webrtc::RtpExtension::kTimestampOffsetUri, |
576 webrtc::RtpExtension::kTimestampOffsetDefaultId)); | 577 webrtc::RtpExtension::kTimestampOffsetDefaultId)); |
577 capabilities.header_extensions.push_back( | 578 capabilities.header_extensions.push_back( |
578 webrtc::RtpExtension(webrtc::RtpExtension::kAbsSendTimeUri, | 579 webrtc::RtpExtension(webrtc::RtpExtension::kAbsSendTimeUri, |
579 webrtc::RtpExtension::kAbsSendTimeDefaultId)); | 580 webrtc::RtpExtension::kAbsSendTimeDefaultId)); |
(...skipping 26 matching lines...) Expand all Loading... |
606 simulcast_encoder_factory_.reset(); | 607 simulcast_encoder_factory_.reset(); |
607 | 608 |
608 if (encoder_factory && | 609 if (encoder_factory && |
609 WebRtcSimulcastEncoderFactory::UseSimulcastEncoderFactory( | 610 WebRtcSimulcastEncoderFactory::UseSimulcastEncoderFactory( |
610 encoder_factory->supported_codecs())) { | 611 encoder_factory->supported_codecs())) { |
611 simulcast_encoder_factory_.reset( | 612 simulcast_encoder_factory_.reset( |
612 new WebRtcSimulcastEncoderFactory(encoder_factory)); | 613 new WebRtcSimulcastEncoderFactory(encoder_factory)); |
613 encoder_factory = simulcast_encoder_factory_.get(); | 614 encoder_factory = simulcast_encoder_factory_.get(); |
614 } | 615 } |
615 external_encoder_factory_ = encoder_factory; | 616 external_encoder_factory_ = encoder_factory; |
| 617 |
| 618 video_codecs_ = GetSupportedCodecs(encoder_factory); |
616 } | 619 } |
617 | 620 |
618 static std::vector<VideoCodec> GetSupportedCodecs( | 621 static std::vector<VideoCodec> GetSupportedCodecs( |
619 const WebRtcVideoEncoderFactory* external_encoder_factory) { | 622 const WebRtcVideoEncoderFactory* external_encoder_factory) { |
620 std::vector<VideoCodec> supported_codecs = DefaultVideoCodecList(); | 623 std::vector<VideoCodec> supported_codecs = DefaultVideoCodecList(); |
621 | 624 |
622 if (external_encoder_factory == nullptr) { | 625 if (external_encoder_factory == nullptr) { |
623 LOG(LS_INFO) << "Supported codecs: " | 626 LOG(LS_INFO) << "Supported codecs: " |
624 << CodecVectorToString(supported_codecs); | 627 << CodecVectorToString(supported_codecs); |
625 return supported_codecs; | 628 return supported_codecs; |
(...skipping 1945 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2571 rtx_mapping[video_codecs[i].codec.id] != | 2574 rtx_mapping[video_codecs[i].codec.id] != |
2572 ulpfec_config.red_payload_type) { | 2575 ulpfec_config.red_payload_type) { |
2573 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; | 2576 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; |
2574 } | 2577 } |
2575 } | 2578 } |
2576 | 2579 |
2577 return video_codecs; | 2580 return video_codecs; |
2578 } | 2581 } |
2579 | 2582 |
2580 } // namespace cricket | 2583 } // namespace cricket |
OLD | NEW |