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

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

Issue 1327933002: Full impl of NnChannel::SetSendParameters and NnChannel::SetRecvParameters (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 5 years, 3 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 584 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 } 595 }
596 596
597 return true; 597 return true;
598 } 598 }
599 599
600 WebRtcVideoChannel2* WebRtcVideoEngine2::CreateChannel( 600 WebRtcVideoChannel2* WebRtcVideoEngine2::CreateChannel(
601 webrtc::Call* call, 601 webrtc::Call* call,
602 const VideoOptions& options) { 602 const VideoOptions& options) {
603 RTC_DCHECK(initialized_); 603 RTC_DCHECK(initialized_);
604 LOG(LS_INFO) << "CreateChannel. Options: " << options.ToString(); 604 LOG(LS_INFO) << "CreateChannel. Options: " << options.ToString();
605 WebRtcVideoChannel2* channel = new WebRtcVideoChannel2(call, options, 605 return new WebRtcVideoChannel2(call, options, video_codecs_,
606 external_encoder_factory_, external_decoder_factory_); 606 external_encoder_factory_, external_decoder_factory_);
607 channel->SetRecvCodecs(video_codecs_);
608 return channel;
609 } 607 }
610 608
611 const std::vector<VideoCodec>& WebRtcVideoEngine2::codecs() const { 609 const std::vector<VideoCodec>& WebRtcVideoEngine2::codecs() const {
612 return video_codecs_; 610 return video_codecs_;
613 } 611 }
614 612
615 const std::vector<RtpHeaderExtension>& 613 const std::vector<RtpHeaderExtension>&
616 WebRtcVideoEngine2::rtp_header_extensions() const { 614 WebRtcVideoEngine2::rtp_header_extensions() const {
617 return rtp_header_extensions_; 615 return rtp_header_extensions_;
618 } 616 }
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
757 755
758 AddDefaultFeedbackParams(&codec); 756 AddDefaultFeedbackParams(&codec);
759 supported_codecs.push_back(codec); 757 supported_codecs.push_back(codec);
760 } 758 }
761 return supported_codecs; 759 return supported_codecs;
762 } 760 }
763 761
764 WebRtcVideoChannel2::WebRtcVideoChannel2( 762 WebRtcVideoChannel2::WebRtcVideoChannel2(
765 webrtc::Call* call, 763 webrtc::Call* call,
766 const VideoOptions& options, 764 const VideoOptions& options,
765 const std::vector<VideoCodec>& recv_codecs,
767 WebRtcVideoEncoderFactory* external_encoder_factory, 766 WebRtcVideoEncoderFactory* external_encoder_factory,
768 WebRtcVideoDecoderFactory* external_decoder_factory) 767 WebRtcVideoDecoderFactory* external_decoder_factory)
769 : call_(call), 768 : call_(call),
770 unsignalled_ssrc_handler_(&default_unsignalled_ssrc_handler_), 769 unsignalled_ssrc_handler_(&default_unsignalled_ssrc_handler_),
771 external_encoder_factory_(external_encoder_factory), 770 external_encoder_factory_(external_encoder_factory),
772 external_decoder_factory_(external_decoder_factory) { 771 external_decoder_factory_(external_decoder_factory) {
773 RTC_DCHECK(thread_checker_.CalledOnValidThread()); 772 RTC_DCHECK(thread_checker_.CalledOnValidThread());
774 SetDefaultOptions(); 773 SetDefaultOptions();
775 options_.SetAll(options); 774 options_.SetAll(options);
776 options_.cpu_overuse_detection.Get(&signal_cpu_adaptation_); 775 options_.cpu_overuse_detection.Get(&signal_cpu_adaptation_);
777 rtcp_receiver_report_ssrc_ = kDefaultRtcpReceiverReportSsrc; 776 rtcp_receiver_report_ssrc_ = kDefaultRtcpReceiverReportSsrc;
778 sending_ = false; 777 sending_ = false;
779 default_send_ssrc_ = 0; 778 default_send_ssrc_ = 0;
779 SetRecvCodecs(recv_codecs);
780 } 780 }
781 781
782 void WebRtcVideoChannel2::SetDefaultOptions() { 782 void WebRtcVideoChannel2::SetDefaultOptions() {
783 options_.cpu_overuse_detection.Set(true); 783 options_.cpu_overuse_detection.Set(true);
784 options_.dscp.Set(false); 784 options_.dscp.Set(false);
785 options_.suspend_below_min_bitrate.Set(false); 785 options_.suspend_below_min_bitrate.Set(false);
786 options_.video_noise_reduction.Set(true); 786 options_.video_noise_reduction.Set(true);
787 options_.screencast_min_bitrate.Set(0); 787 options_.screencast_min_bitrate.Set(0);
788 } 788 }
789 789
(...skipping 777 matching lines...) Expand 10 before | Expand all | Expand 10 after
1567 // raise bitrates above the 2000k default bitrate cap. 1567 // raise bitrates above the 2000k default bitrate cap.
1568 bool WebRtcVideoChannel2::SetMaxSendBandwidth(int max_bitrate_bps) { 1568 bool WebRtcVideoChannel2::SetMaxSendBandwidth(int max_bitrate_bps) {
1569 // TODO(pbos): Figure out whether b=AS means max bitrate for this 1569 // TODO(pbos): Figure out whether b=AS means max bitrate for this
1570 // WebRtcVideoChannel2 (in which case we're good), or per sender (SSRC), in 1570 // WebRtcVideoChannel2 (in which case we're good), or per sender (SSRC), in
1571 // which case this should not set a Call::BitrateConfig but rather reconfigure 1571 // which case this should not set a Call::BitrateConfig but rather reconfigure
1572 // all senders. 1572 // all senders.
1573 LOG(LS_INFO) << "SetMaxSendBandwidth: " << max_bitrate_bps << "bps."; 1573 LOG(LS_INFO) << "SetMaxSendBandwidth: " << max_bitrate_bps << "bps.";
1574 if (max_bitrate_bps == bitrate_config_.max_bitrate_bps) 1574 if (max_bitrate_bps == bitrate_config_.max_bitrate_bps)
1575 return true; 1575 return true;
1576 1576
1577 if (max_bitrate_bps <= 0) { 1577 if (max_bitrate_bps < 0) {
1578 // Option not set.
1579 return true;
1580 }
1581 if (max_bitrate_bps == 0) {
1578 // Unsetting max bitrate. 1582 // Unsetting max bitrate.
1579 max_bitrate_bps = -1; 1583 max_bitrate_bps = -1;
1580 } 1584 }
1581 bitrate_config_.start_bitrate_bps = -1; 1585 bitrate_config_.start_bitrate_bps = -1;
1582 bitrate_config_.max_bitrate_bps = max_bitrate_bps; 1586 bitrate_config_.max_bitrate_bps = max_bitrate_bps;
1583 if (max_bitrate_bps > 0 && 1587 if (max_bitrate_bps > 0 &&
1584 bitrate_config_.min_bitrate_bps > max_bitrate_bps) { 1588 bitrate_config_.min_bitrate_bps > max_bitrate_bps) {
1585 bitrate_config_.min_bitrate_bps = max_bitrate_bps; 1589 bitrate_config_.min_bitrate_bps = max_bitrate_bps;
1586 } 1590 }
1587 call_->SetBitrateConfig(bitrate_config_); 1591 call_->SetBitrateConfig(bitrate_config_);
(...skipping 1153 matching lines...) Expand 10 before | Expand all | Expand 10 after
2741 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; 2745 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id];
2742 } 2746 }
2743 } 2747 }
2744 2748
2745 return video_codecs; 2749 return video_codecs;
2746 } 2750 }
2747 2751
2748 } // namespace cricket 2752 } // namespace cricket
2749 2753
2750 #endif // HAVE_WEBRTC_VIDEO 2754 #endif // HAVE_WEBRTC_VIDEO
OLDNEW
« no previous file with comments | « talk/media/webrtc/webrtcvideoengine2.h ('k') | talk/media/webrtc/webrtcvideoengine2_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698