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

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

Issue 1646253004: Split out dscp option from VideoOptions to new struct MediaChannelOptions. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase. Created 4 years, 10 months 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 * libjingle 2 * libjingle
3 * Copyright 2014 Google Inc. 3 * Copyright 2014 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 LOG(LS_INFO) << "WebRtcVideoEngine2::~WebRtcVideoEngine2"; 519 LOG(LS_INFO) << "WebRtcVideoEngine2::~WebRtcVideoEngine2";
520 } 520 }
521 521
522 void WebRtcVideoEngine2::Init() { 522 void WebRtcVideoEngine2::Init() {
523 LOG(LS_INFO) << "WebRtcVideoEngine2::Init"; 523 LOG(LS_INFO) << "WebRtcVideoEngine2::Init";
524 initialized_ = true; 524 initialized_ = true;
525 } 525 }
526 526
527 WebRtcVideoChannel2* WebRtcVideoEngine2::CreateChannel( 527 WebRtcVideoChannel2* WebRtcVideoEngine2::CreateChannel(
528 webrtc::Call* call, 528 webrtc::Call* call,
529 const VideoOptions& options) { 529 const MediaChannelOptions& options,
530 const VideoOptions& video_options) {
530 RTC_DCHECK(initialized_); 531 RTC_DCHECK(initialized_);
531 LOG(LS_INFO) << "CreateChannel. Options: " << options.ToString(); 532 LOG(LS_INFO) << "CreateChannel. Options: " << video_options.ToString();
532 return new WebRtcVideoChannel2(call, options, video_codecs_, 533 return new WebRtcVideoChannel2(call, options, video_options, video_codecs_,
533 external_encoder_factory_, external_decoder_factory_); 534 external_encoder_factory_,
535 external_decoder_factory_);
534 } 536 }
535 537
536 const std::vector<VideoCodec>& WebRtcVideoEngine2::codecs() const { 538 const std::vector<VideoCodec>& WebRtcVideoEngine2::codecs() const {
537 return video_codecs_; 539 return video_codecs_;
538 } 540 }
539 541
540 RtpCapabilities WebRtcVideoEngine2::GetCapabilities() const { 542 RtpCapabilities WebRtcVideoEngine2::GetCapabilities() const {
541 RtpCapabilities capabilities; 543 RtpCapabilities capabilities;
542 capabilities.header_extensions.push_back( 544 capabilities.header_extensions.push_back(
543 RtpHeaderExtension(kRtpTimestampOffsetHeaderExtension, 545 RtpHeaderExtension(kRtpTimestampOffsetHeaderExtension,
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 0); 614 0);
613 615
614 AddDefaultFeedbackParams(&codec); 616 AddDefaultFeedbackParams(&codec);
615 supported_codecs.push_back(codec); 617 supported_codecs.push_back(codec);
616 } 618 }
617 return supported_codecs; 619 return supported_codecs;
618 } 620 }
619 621
620 WebRtcVideoChannel2::WebRtcVideoChannel2( 622 WebRtcVideoChannel2::WebRtcVideoChannel2(
621 webrtc::Call* call, 623 webrtc::Call* call,
622 const VideoOptions& options, 624 const MediaChannelOptions& options,
625 const VideoOptions& video_options,
623 const std::vector<VideoCodec>& recv_codecs, 626 const std::vector<VideoCodec>& recv_codecs,
624 WebRtcVideoEncoderFactory* external_encoder_factory, 627 WebRtcVideoEncoderFactory* external_encoder_factory,
625 WebRtcVideoDecoderFactory* external_decoder_factory) 628 WebRtcVideoDecoderFactory* external_decoder_factory)
626 : call_(call), 629 : VideoMediaChannel(options),
630 call_(call),
627 unsignalled_ssrc_handler_(&default_unsignalled_ssrc_handler_), 631 unsignalled_ssrc_handler_(&default_unsignalled_ssrc_handler_),
628 external_encoder_factory_(external_encoder_factory), 632 external_encoder_factory_(external_encoder_factory),
629 external_decoder_factory_(external_decoder_factory) { 633 external_decoder_factory_(external_decoder_factory) {
630 RTC_DCHECK(thread_checker_.CalledOnValidThread()); 634 RTC_DCHECK(thread_checker_.CalledOnValidThread());
631 SetDefaultOptions(); 635 SetDefaultOptions();
632 options_.SetAll(options); 636 options_.SetAll(video_options);
633 if (options_.cpu_overuse_detection) 637 if (options_.cpu_overuse_detection)
634 signal_cpu_adaptation_ = *options_.cpu_overuse_detection; 638 signal_cpu_adaptation_ = *options_.cpu_overuse_detection;
635 rtcp_receiver_report_ssrc_ = kDefaultRtcpReceiverReportSsrc; 639 rtcp_receiver_report_ssrc_ = kDefaultRtcpReceiverReportSsrc;
636 sending_ = false; 640 sending_ = false;
637 default_send_ssrc_ = 0; 641 default_send_ssrc_ = 0;
638 RTC_DCHECK(ValidateCodecFormats(recv_codecs)); 642 RTC_DCHECK(ValidateCodecFormats(recv_codecs));
639 recv_codecs_ = FilterSupportedCodecs(MapCodecs(recv_codecs)); 643 recv_codecs_ = FilterSupportedCodecs(MapCodecs(recv_codecs));
640 } 644 }
641 645
642 void WebRtcVideoChannel2::SetDefaultOptions() { 646 void WebRtcVideoChannel2::SetDefaultOptions() {
643 options_.cpu_overuse_detection = rtc::Optional<bool>(true); 647 options_.cpu_overuse_detection = rtc::Optional<bool>(true);
644 options_.dscp = rtc::Optional<bool>(false);
645 options_.suspend_below_min_bitrate = rtc::Optional<bool>(false); 648 options_.suspend_below_min_bitrate = rtc::Optional<bool>(false);
646 options_.screencast_min_bitrate_kbps = rtc::Optional<int>(0); 649 options_.screencast_min_bitrate_kbps = rtc::Optional<int>(0);
647 } 650 }
648 651
649 WebRtcVideoChannel2::~WebRtcVideoChannel2() { 652 WebRtcVideoChannel2::~WebRtcVideoChannel2() {
650 for (auto& kv : send_streams_) 653 for (auto& kv : send_streams_)
651 delete kv.second; 654 delete kv.second;
652 for (auto& kv : receive_streams_) 655 for (auto& kv : receive_streams_)
653 delete kv.second; 656 delete kv.second;
654 } 657 }
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 // Handle RTCP mode. 770 // Handle RTCP mode.
768 if (params.rtcp.reduced_size != send_params_.rtcp.reduced_size) { 771 if (params.rtcp.reduced_size != send_params_.rtcp.reduced_size) {
769 changed_params->rtcp_mode = rtc::Optional<webrtc::RtcpMode>( 772 changed_params->rtcp_mode = rtc::Optional<webrtc::RtcpMode>(
770 params.rtcp.reduced_size ? webrtc::RtcpMode::kReducedSize 773 params.rtcp.reduced_size ? webrtc::RtcpMode::kReducedSize
771 : webrtc::RtcpMode::kCompound); 774 : webrtc::RtcpMode::kCompound);
772 } 775 }
773 776
774 return true; 777 return true;
775 } 778 }
776 779
780 rtc::DiffServCodePoint WebRtcVideoChannel2::MediaTypeDscpValue() const {
781 return rtc::DSCP_AF41;
782 }
783
777 bool WebRtcVideoChannel2::SetSendParameters(const VideoSendParameters& params) { 784 bool WebRtcVideoChannel2::SetSendParameters(const VideoSendParameters& params) {
778 TRACE_EVENT0("webrtc", "WebRtcVideoChannel2::SetSendParameters"); 785 TRACE_EVENT0("webrtc", "WebRtcVideoChannel2::SetSendParameters");
779 LOG(LS_INFO) << "SetSendParameters: " << params.ToString(); 786 LOG(LS_INFO) << "SetSendParameters: " << params.ToString();
780 ChangedSendParameters changed_params; 787 ChangedSendParameters changed_params;
781 if (!GetChangedSendParameters(params, &changed_params)) { 788 if (!GetChangedSendParameters(params, &changed_params)) {
782 return false; 789 return false;
783 } 790 }
784 791
785 bool bitrate_config_changed = false; 792 bool bitrate_config_changed = false;
786 793
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 } 826 }
820 827
821 if (changed_params.options) { 828 if (changed_params.options) {
822 options_.SetAll(*changed_params.options); 829 options_.SetAll(*changed_params.options);
823 { 830 {
824 rtc::CritScope lock(&capturer_crit_); 831 rtc::CritScope lock(&capturer_crit_);
825 if (options_.cpu_overuse_detection) { 832 if (options_.cpu_overuse_detection) {
826 signal_cpu_adaptation_ = *options_.cpu_overuse_detection; 833 signal_cpu_adaptation_ = *options_.cpu_overuse_detection;
827 } 834 }
828 } 835 }
829 rtc::DiffServCodePoint dscp =
830 options_.dscp.value_or(false) ? rtc::DSCP_AF41 : rtc::DSCP_DEFAULT;
831 MediaChannel::SetDscp(dscp);
832 } 836 }
833 837
834 { 838 {
835 rtc::CritScope stream_lock(&stream_crit_); 839 rtc::CritScope stream_lock(&stream_crit_);
836 for (auto& kv : send_streams_) { 840 for (auto& kv : send_streams_) {
837 kv.second->SetSendParameters(changed_params); 841 kv.second->SetSendParameters(changed_params);
838 } 842 }
839 if (changed_params.codec) { 843 if (changed_params.codec) {
840 // Update receive feedback parameters from new codec. 844 // Update receive feedback parameters from new codec.
841 LOG(LS_INFO) 845 LOG(LS_INFO)
(...skipping 1685 matching lines...) Expand 10 before | Expand all | Expand 10 after
2527 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; 2531 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id];
2528 } 2532 }
2529 } 2533 }
2530 2534
2531 return video_codecs; 2535 return video_codecs;
2532 } 2536 }
2533 2537
2534 } // namespace cricket 2538 } // namespace cricket
2535 2539
2536 #endif // HAVE_WEBRTC_VIDEO 2540 #endif // HAVE_WEBRTC_VIDEO
OLDNEW
« no previous file with comments | « webrtc/media/webrtc/webrtcvideoengine2.h ('k') | webrtc/media/webrtc/webrtcvideoengine2_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698