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

Side by Side Diff: webrtc/video/video_send_stream.cc

Issue 2710493008: Recreate WebrtcVideoSendStream if screen content setting is changed. (Closed)
Patch Set: readability Created 3 years, 9 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
« no previous file with comments | « webrtc/video/video_send_stream.h ('k') | webrtc/video/video_send_stream_tests.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 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 #include "webrtc/video/video_send_stream.h" 10 #include "webrtc/video/video_send_stream.h"
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after
622 VieRemb* remb, 622 VieRemb* remb,
623 RtcEventLog* event_log, 623 RtcEventLog* event_log,
624 VideoSendStream::Config config, 624 VideoSendStream::Config config,
625 VideoEncoderConfig encoder_config, 625 VideoEncoderConfig encoder_config,
626 const std::map<uint32_t, RtpState>& suspended_ssrcs) 626 const std::map<uint32_t, RtpState>& suspended_ssrcs)
627 : worker_queue_(worker_queue), 627 : worker_queue_(worker_queue),
628 thread_sync_event_(false /* manual_reset */, false), 628 thread_sync_event_(false /* manual_reset */, false),
629 stats_proxy_(Clock::GetRealTimeClock(), 629 stats_proxy_(Clock::GetRealTimeClock(),
630 config, 630 config,
631 encoder_config.content_type), 631 encoder_config.content_type),
632 config_(std::move(config)) { 632 config_(std::move(config)),
633 content_type_(encoder_config.content_type) {
633 vie_encoder_.reset(new ViEEncoder( 634 vie_encoder_.reset(new ViEEncoder(
634 num_cpu_cores, &stats_proxy_, config_.encoder_settings, 635 num_cpu_cores, &stats_proxy_, config_.encoder_settings,
635 config_.pre_encode_callback, config_.post_encode_callback)); 636 config_.pre_encode_callback, config_.post_encode_callback));
636 worker_queue_->PostTask(std::unique_ptr<rtc::QueuedTask>(new ConstructionTask( 637 worker_queue_->PostTask(std::unique_ptr<rtc::QueuedTask>(new ConstructionTask(
637 &send_stream_, &thread_sync_event_, &stats_proxy_, vie_encoder_.get(), 638 &send_stream_, &thread_sync_event_, &stats_proxy_, vie_encoder_.get(),
638 module_process_thread, call_stats, congestion_controller, packet_router, 639 module_process_thread, call_stats, congestion_controller, packet_router,
639 bitrate_allocator, send_delay_stats, remb, event_log, &config_, 640 bitrate_allocator, send_delay_stats, remb, event_log, &config_,
640 encoder_config.max_bitrate_bps, suspended_ssrcs))); 641 encoder_config.max_bitrate_bps, suspended_ssrcs)));
641 642
642 // Wait for ConstructionTask to complete so that |send_stream_| can be used. 643 // Wait for ConstructionTask to complete so that |send_stream_| can be used.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 rtc::VideoSourceInterface<webrtc::VideoFrame>* source, 686 rtc::VideoSourceInterface<webrtc::VideoFrame>* source,
686 const DegradationPreference& degradation_preference) { 687 const DegradationPreference& degradation_preference) {
687 RTC_DCHECK_RUN_ON(&thread_checker_); 688 RTC_DCHECK_RUN_ON(&thread_checker_);
688 vie_encoder_->SetSource(source, degradation_preference); 689 vie_encoder_->SetSource(source, degradation_preference);
689 } 690 }
690 691
691 void VideoSendStream::ReconfigureVideoEncoder(VideoEncoderConfig config) { 692 void VideoSendStream::ReconfigureVideoEncoder(VideoEncoderConfig config) {
692 // TODO(perkj): Some test cases in VideoSendStreamTest call 693 // TODO(perkj): Some test cases in VideoSendStreamTest call
693 // ReconfigureVideoEncoder from the network thread. 694 // ReconfigureVideoEncoder from the network thread.
694 // RTC_DCHECK_RUN_ON(&thread_checker_); 695 // RTC_DCHECK_RUN_ON(&thread_checker_);
696 RTC_DCHECK(content_type_ == config.content_type);
695 vie_encoder_->ConfigureEncoder(std::move(config), config_.rtp.max_packet_size, 697 vie_encoder_->ConfigureEncoder(std::move(config), config_.rtp.max_packet_size,
696 config_.rtp.nack.rtp_history_ms > 0); 698 config_.rtp.nack.rtp_history_ms > 0);
697 } 699 }
698 700
699 VideoSendStream::Stats VideoSendStream::GetStats() { 701 VideoSendStream::Stats VideoSendStream::GetStats() {
700 // TODO(perkj, solenberg): Some test cases in EndToEndTest call GetStats from 702 // TODO(perkj, solenberg): Some test cases in EndToEndTest call GetStats from
701 // a network thread. See comment in Call::GetStats(). 703 // a network thread. See comment in Call::GetStats().
702 // RTC_DCHECK_RUN_ON(&thread_checker_); 704 // RTC_DCHECK_RUN_ON(&thread_checker_);
703 return stats_proxy_.GetStats(); 705 return stats_proxy_.GetStats();
704 } 706 }
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after
1335 std::min(config_->rtp.max_packet_size, 1337 std::min(config_->rtp.max_packet_size,
1336 kPathMTU - transport_overhead_bytes_per_packet_); 1338 kPathMTU - transport_overhead_bytes_per_packet_);
1337 1339
1338 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { 1340 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
1339 rtp_rtcp->SetMaxRtpPacketSize(rtp_packet_size); 1341 rtp_rtcp->SetMaxRtpPacketSize(rtp_packet_size);
1340 } 1342 }
1341 } 1343 }
1342 1344
1343 } // namespace internal 1345 } // namespace internal
1344 } // namespace webrtc 1346 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video/video_send_stream.h ('k') | webrtc/video/video_send_stream_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698