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

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

Issue 2996643002: BWE allocation strategy
Patch Set: Comments handling Created 3 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 * 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 940 matching lines...) Expand 10 before | Expand all | Expand 10 after
951 RTC_DCHECK_RUN_ON(worker_queue_); 951 RTC_DCHECK_RUN_ON(worker_queue_);
952 LOG(LS_INFO) << "VideoSendStream::Start"; 952 LOG(LS_INFO) << "VideoSendStream::Start";
953 if (payload_router_.IsActive()) 953 if (payload_router_.IsActive())
954 return; 954 return;
955 TRACE_EVENT_INSTANT0("webrtc", "VideoSendStream::Start"); 955 TRACE_EVENT_INSTANT0("webrtc", "VideoSendStream::Start");
956 payload_router_.SetActive(true); 956 payload_router_.SetActive(true);
957 957
958 bitrate_allocator_->AddObserver( 958 bitrate_allocator_->AddObserver(
959 this, encoder_min_bitrate_bps_, encoder_max_bitrate_bps_, 959 this, encoder_min_bitrate_bps_, encoder_max_bitrate_bps_,
960 max_padding_bitrate_, !config_->suspend_below_min_bitrate, 960 max_padding_bitrate_, !config_->suspend_below_min_bitrate,
961 config_->track_id); 961 config_->track_id);
962 962
963 // Start monitoring encoder activity. 963 // Start monitoring encoder activity.
964 { 964 {
965 rtc::CritScope lock(&encoder_activity_crit_sect_); 965 rtc::CritScope lock(&encoder_activity_crit_sect_);
966 RTC_DCHECK(!check_encoder_activity_task_); 966 RTC_DCHECK(!check_encoder_activity_task_);
967 check_encoder_activity_task_ = new CheckEncoderActivityTask(weak_ptr_); 967 check_encoder_activity_task_ = new CheckEncoderActivityTask(weak_ptr_);
968 worker_queue_->PostDelayedTask( 968 worker_queue_->PostDelayedTask(
969 std::unique_ptr<rtc::QueuedTask>(check_encoder_activity_task_), 969 std::unique_ptr<rtc::QueuedTask>(check_encoder_activity_task_),
970 CheckEncoderActivityTask::kEncoderTimeOutMs); 970 CheckEncoderActivityTask::kEncoderTimeOutMs);
971 } 971 }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1005 const BitrateAllocation& allocation) { 1005 const BitrateAllocation& allocation) {
1006 payload_router_.OnBitrateAllocationUpdated(allocation); 1006 payload_router_.OnBitrateAllocationUpdated(allocation);
1007 } 1007 }
1008 1008
1009 void VideoSendStreamImpl::SignalEncoderActive() { 1009 void VideoSendStreamImpl::SignalEncoderActive() {
1010 RTC_DCHECK_RUN_ON(worker_queue_); 1010 RTC_DCHECK_RUN_ON(worker_queue_);
1011 LOG(LS_INFO) << "SignalEncoderActive, Encoder is active."; 1011 LOG(LS_INFO) << "SignalEncoderActive, Encoder is active.";
1012 bitrate_allocator_->AddObserver( 1012 bitrate_allocator_->AddObserver(
1013 this, encoder_min_bitrate_bps_, encoder_max_bitrate_bps_, 1013 this, encoder_min_bitrate_bps_, encoder_max_bitrate_bps_,
1014 max_padding_bitrate_, !config_->suspend_below_min_bitrate, 1014 max_padding_bitrate_, !config_->suspend_below_min_bitrate,
1015 config_->track_id); 1015 config_->track_id);
1016 } 1016 }
1017 1017
1018 void VideoSendStreamImpl::OnEncoderConfigurationChanged( 1018 void VideoSendStreamImpl::OnEncoderConfigurationChanged(
1019 std::vector<VideoStream> streams, 1019 std::vector<VideoStream> streams,
1020 int min_transmit_bitrate_bps) { 1020 int min_transmit_bitrate_bps) {
1021 if (!worker_queue_->IsCurrent()) { 1021 if (!worker_queue_->IsCurrent()) {
1022 worker_queue_->PostTask( 1022 worker_queue_->PostTask(
1023 std::unique_ptr<rtc::QueuedTask>(new EncoderReconfiguredTask( 1023 std::unique_ptr<rtc::QueuedTask>(new EncoderReconfiguredTask(
1024 weak_ptr_, std::move(streams), min_transmit_bitrate_bps))); 1024 weak_ptr_, std::move(streams), min_transmit_bitrate_bps)));
1025 return; 1025 return;
(...skipping 22 matching lines...) Expand all
1048 protection_bitrate_calculator_.SetEncodingData( 1048 protection_bitrate_calculator_.SetEncodingData(
1049 streams[0].width, streams[0].height, number_of_temporal_layers, 1049 streams[0].width, streams[0].height, number_of_temporal_layers,
1050 config_->rtp.max_packet_size); 1050 config_->rtp.max_packet_size);
1051 1051
1052 if (payload_router_.IsActive()) { 1052 if (payload_router_.IsActive()) {
1053 // The send stream is started already. Update the allocator with new bitrate 1053 // The send stream is started already. Update the allocator with new bitrate
1054 // limits. 1054 // limits.
1055 bitrate_allocator_->AddObserver( 1055 bitrate_allocator_->AddObserver(
1056 this, encoder_min_bitrate_bps_, encoder_max_bitrate_bps_, 1056 this, encoder_min_bitrate_bps_, encoder_max_bitrate_bps_,
1057 max_padding_bitrate_, !config_->suspend_below_min_bitrate, 1057 max_padding_bitrate_, !config_->suspend_below_min_bitrate,
1058 config_->track_id); 1058 config_->track_id);
1059 } 1059 }
1060 } 1060 }
1061 1061
1062 EncodedImageCallback::Result VideoSendStreamImpl::OnEncodedImage( 1062 EncodedImageCallback::Result VideoSendStreamImpl::OnEncodedImage(
1063 const EncodedImage& encoded_image, 1063 const EncodedImage& encoded_image,
1064 const CodecSpecificInfo* codec_specific_info, 1064 const CodecSpecificInfo* codec_specific_info,
1065 const RTPFragmentationHeader* fragmentation) { 1065 const RTPFragmentationHeader* fragmentation) {
1066 // Encoded is called on whatever thread the real encoder implementation run 1066 // Encoded is called on whatever thread the real encoder implementation run
1067 // on. In the case of hardware encoders, there might be several encoders 1067 // on. In the case of hardware encoders, there might be several encoders
1068 // running in parallel on different threads. 1068 // running in parallel on different threads.
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
1382 std::min(config_->rtp.max_packet_size, 1382 std::min(config_->rtp.max_packet_size,
1383 kPathMTU - transport_overhead_bytes_per_packet_); 1383 kPathMTU - transport_overhead_bytes_per_packet_);
1384 1384
1385 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { 1385 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
1386 rtp_rtcp->SetMaxRtpPacketSize(rtp_packet_size); 1386 rtp_rtcp->SetMaxRtpPacketSize(rtp_packet_size);
1387 } 1387 }
1388 } 1388 }
1389 1389
1390 } // namespace internal 1390 } // namespace internal
1391 } // namespace webrtc 1391 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnection.h ('k') | webrtc/voice_engine/channel.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698