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

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

Issue 2516983004: Move ownership of PacketRouter from CongestionController to Call. (Closed)
Patch Set: Add back packet_router method and 4-argument constructor. Created 4 years 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') | no next file » | 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 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 // arbitrary thread. 287 // arbitrary thread.
288 class VideoSendStreamImpl : public webrtc::BitrateAllocatorObserver, 288 class VideoSendStreamImpl : public webrtc::BitrateAllocatorObserver,
289 public webrtc::OverheadObserver, 289 public webrtc::OverheadObserver,
290 public webrtc::VCMProtectionCallback, 290 public webrtc::VCMProtectionCallback,
291 public ViEEncoder::EncoderSink { 291 public ViEEncoder::EncoderSink {
292 public: 292 public:
293 VideoSendStreamImpl(SendStatisticsProxy* stats_proxy, 293 VideoSendStreamImpl(SendStatisticsProxy* stats_proxy,
294 rtc::TaskQueue* worker_queue, 294 rtc::TaskQueue* worker_queue,
295 CallStats* call_stats, 295 CallStats* call_stats,
296 CongestionController* congestion_controller, 296 CongestionController* congestion_controller,
297 PacketRouter* packet_router,
297 BitrateAllocator* bitrate_allocator, 298 BitrateAllocator* bitrate_allocator,
298 SendDelayStats* send_delay_stats, 299 SendDelayStats* send_delay_stats,
299 VieRemb* remb, 300 VieRemb* remb,
300 ViEEncoder* vie_encoder, 301 ViEEncoder* vie_encoder,
301 RtcEventLog* event_log, 302 RtcEventLog* event_log,
302 const VideoSendStream::Config* config, 303 const VideoSendStream::Config* config,
303 int initial_encoder_max_bitrate, 304 int initial_encoder_max_bitrate,
304 std::map<uint32_t, RtpState> suspended_ssrcs); 305 std::map<uint32_t, RtpState> suspended_ssrcs);
305 ~VideoSendStreamImpl() override; 306 ~VideoSendStreamImpl() override;
306 307
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 ProcessThread* module_process_thread_; 367 ProcessThread* module_process_thread_;
367 rtc::ThreadChecker module_process_thread_checker_; 368 rtc::ThreadChecker module_process_thread_checker_;
368 rtc::TaskQueue* const worker_queue_; 369 rtc::TaskQueue* const worker_queue_;
369 370
370 rtc::CriticalSection encoder_activity_crit_sect_; 371 rtc::CriticalSection encoder_activity_crit_sect_;
371 CheckEncoderActivityTask* check_encoder_activity_task_ 372 CheckEncoderActivityTask* check_encoder_activity_task_
372 GUARDED_BY(encoder_activity_crit_sect_); 373 GUARDED_BY(encoder_activity_crit_sect_);
373 374
374 CallStats* const call_stats_; 375 CallStats* const call_stats_;
375 CongestionController* const congestion_controller_; 376 CongestionController* const congestion_controller_;
377 PacketRouter* const packet_router_;
376 BitrateAllocator* const bitrate_allocator_; 378 BitrateAllocator* const bitrate_allocator_;
377 VieRemb* const remb_; 379 VieRemb* const remb_;
378 380
379 // TODO(brandtr): Consider moving this to a new FlexfecSendStream class. 381 // TODO(brandtr): Consider moving this to a new FlexfecSendStream class.
380 std::unique_ptr<FlexfecSender> flexfec_sender_; 382 std::unique_ptr<FlexfecSender> flexfec_sender_;
381 383
382 rtc::CriticalSection ivf_writers_crit_; 384 rtc::CriticalSection ivf_writers_crit_;
383 std::unique_ptr<IvfFileWriter> file_writers_[kMaxSimulcastStreams] GUARDED_BY( 385 std::unique_ptr<IvfFileWriter> file_writers_[kMaxSimulcastStreams] GUARDED_BY(
384 ivf_writers_crit_); 386 ivf_writers_crit_);
385 387
(...skipping 28 matching lines...) Expand all
414 // an object on the correct task queue. 416 // an object on the correct task queue.
415 class VideoSendStream::ConstructionTask : public rtc::QueuedTask { 417 class VideoSendStream::ConstructionTask : public rtc::QueuedTask {
416 public: 418 public:
417 ConstructionTask(std::unique_ptr<VideoSendStreamImpl>* send_stream, 419 ConstructionTask(std::unique_ptr<VideoSendStreamImpl>* send_stream,
418 rtc::Event* done_event, 420 rtc::Event* done_event,
419 SendStatisticsProxy* stats_proxy, 421 SendStatisticsProxy* stats_proxy,
420 ViEEncoder* vie_encoder, 422 ViEEncoder* vie_encoder,
421 ProcessThread* module_process_thread, 423 ProcessThread* module_process_thread,
422 CallStats* call_stats, 424 CallStats* call_stats,
423 CongestionController* congestion_controller, 425 CongestionController* congestion_controller,
426 PacketRouter* packet_router,
424 BitrateAllocator* bitrate_allocator, 427 BitrateAllocator* bitrate_allocator,
425 SendDelayStats* send_delay_stats, 428 SendDelayStats* send_delay_stats,
426 VieRemb* remb, 429 VieRemb* remb,
427 RtcEventLog* event_log, 430 RtcEventLog* event_log,
428 const VideoSendStream::Config* config, 431 const VideoSendStream::Config* config,
429 int initial_encoder_max_bitrate, 432 int initial_encoder_max_bitrate,
430 const std::map<uint32_t, RtpState>& suspended_ssrcs) 433 const std::map<uint32_t, RtpState>& suspended_ssrcs)
431 : send_stream_(send_stream), 434 : send_stream_(send_stream),
432 done_event_(done_event), 435 done_event_(done_event),
433 stats_proxy_(stats_proxy), 436 stats_proxy_(stats_proxy),
434 vie_encoder_(vie_encoder), 437 vie_encoder_(vie_encoder),
435 call_stats_(call_stats), 438 call_stats_(call_stats),
436 congestion_controller_(congestion_controller), 439 congestion_controller_(congestion_controller),
440 packet_router_(packet_router),
437 bitrate_allocator_(bitrate_allocator), 441 bitrate_allocator_(bitrate_allocator),
438 send_delay_stats_(send_delay_stats), 442 send_delay_stats_(send_delay_stats),
439 remb_(remb), 443 remb_(remb),
440 event_log_(event_log), 444 event_log_(event_log),
441 config_(config), 445 config_(config),
442 initial_encoder_max_bitrate_(initial_encoder_max_bitrate), 446 initial_encoder_max_bitrate_(initial_encoder_max_bitrate),
443 suspended_ssrcs_(suspended_ssrcs) {} 447 suspended_ssrcs_(suspended_ssrcs) {}
444 448
445 ~ConstructionTask() override { done_event_->Set(); } 449 ~ConstructionTask() override { done_event_->Set(); }
446 450
447 private: 451 private:
448 bool Run() override { 452 bool Run() override {
449 send_stream_->reset(new VideoSendStreamImpl( 453 send_stream_->reset(new VideoSendStreamImpl(
450 stats_proxy_, rtc::TaskQueue::Current(), call_stats_, 454 stats_proxy_, rtc::TaskQueue::Current(), call_stats_,
451 congestion_controller_, bitrate_allocator_, send_delay_stats_, remb_, 455 congestion_controller_, packet_router_, bitrate_allocator_,
452 vie_encoder_, event_log_, config_, initial_encoder_max_bitrate_, 456 send_delay_stats_, remb_, vie_encoder_, event_log_, config_,
453 std::move(suspended_ssrcs_))); 457 initial_encoder_max_bitrate_, std::move(suspended_ssrcs_)));
454 return true; 458 return true;
455 } 459 }
456 460
457 std::unique_ptr<VideoSendStreamImpl>* const send_stream_; 461 std::unique_ptr<VideoSendStreamImpl>* const send_stream_;
458 rtc::Event* const done_event_; 462 rtc::Event* const done_event_;
459 SendStatisticsProxy* const stats_proxy_; 463 SendStatisticsProxy* const stats_proxy_;
460 ViEEncoder* const vie_encoder_; 464 ViEEncoder* const vie_encoder_;
461 CallStats* const call_stats_; 465 CallStats* const call_stats_;
462 CongestionController* const congestion_controller_; 466 CongestionController* const congestion_controller_;
467 PacketRouter* const packet_router_;
463 BitrateAllocator* const bitrate_allocator_; 468 BitrateAllocator* const bitrate_allocator_;
464 SendDelayStats* const send_delay_stats_; 469 SendDelayStats* const send_delay_stats_;
465 VieRemb* const remb_; 470 VieRemb* const remb_;
466 RtcEventLog* const event_log_; 471 RtcEventLog* const event_log_;
467 const VideoSendStream::Config* config_; 472 const VideoSendStream::Config* config_;
468 int initial_encoder_max_bitrate_; 473 int initial_encoder_max_bitrate_;
469 std::map<uint32_t, RtpState> suspended_ssrcs_; 474 std::map<uint32_t, RtpState> suspended_ssrcs_;
470 }; 475 };
471 476
472 class VideoSendStream::DestructAndGetRtpStateTask : public rtc::QueuedTask { 477 class VideoSendStream::DestructAndGetRtpStateTask : public rtc::QueuedTask {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 std::vector<VideoStream> streams_; 572 std::vector<VideoStream> streams_;
568 int min_transmit_bitrate_bps_; 573 int min_transmit_bitrate_bps_;
569 }; 574 };
570 575
571 VideoSendStream::VideoSendStream( 576 VideoSendStream::VideoSendStream(
572 int num_cpu_cores, 577 int num_cpu_cores,
573 ProcessThread* module_process_thread, 578 ProcessThread* module_process_thread,
574 rtc::TaskQueue* worker_queue, 579 rtc::TaskQueue* worker_queue,
575 CallStats* call_stats, 580 CallStats* call_stats,
576 CongestionController* congestion_controller, 581 CongestionController* congestion_controller,
582 PacketRouter* packet_router,
577 BitrateAllocator* bitrate_allocator, 583 BitrateAllocator* bitrate_allocator,
578 SendDelayStats* send_delay_stats, 584 SendDelayStats* send_delay_stats,
579 VieRemb* remb, 585 VieRemb* remb,
580 RtcEventLog* event_log, 586 RtcEventLog* event_log,
581 VideoSendStream::Config config, 587 VideoSendStream::Config config,
582 VideoEncoderConfig encoder_config, 588 VideoEncoderConfig encoder_config,
583 const std::map<uint32_t, RtpState>& suspended_ssrcs) 589 const std::map<uint32_t, RtpState>& suspended_ssrcs)
584 : worker_queue_(worker_queue), 590 : worker_queue_(worker_queue),
585 thread_sync_event_(false /* manual_reset */, false), 591 thread_sync_event_(false /* manual_reset */, false),
586 stats_proxy_(Clock::GetRealTimeClock(), 592 stats_proxy_(Clock::GetRealTimeClock(),
587 config, 593 config,
588 encoder_config.content_type), 594 encoder_config.content_type),
589 config_(std::move(config)) { 595 config_(std::move(config)) {
590 vie_encoder_.reset(new ViEEncoder( 596 vie_encoder_.reset(new ViEEncoder(
591 num_cpu_cores, &stats_proxy_, config_.encoder_settings, 597 num_cpu_cores, &stats_proxy_, config_.encoder_settings,
592 config_.pre_encode_callback, config_.post_encode_callback)); 598 config_.pre_encode_callback, config_.post_encode_callback));
593 599
594 worker_queue_->PostTask(std::unique_ptr<rtc::QueuedTask>(new ConstructionTask( 600 worker_queue_->PostTask(std::unique_ptr<rtc::QueuedTask>(new ConstructionTask(
595 &send_stream_, &thread_sync_event_, &stats_proxy_, vie_encoder_.get(), 601 &send_stream_, &thread_sync_event_, &stats_proxy_, vie_encoder_.get(),
596 module_process_thread, call_stats, congestion_controller, 602 module_process_thread, call_stats, congestion_controller, packet_router,
597 bitrate_allocator, send_delay_stats, remb, event_log, &config_, 603 bitrate_allocator, send_delay_stats, remb, event_log, &config_,
598 encoder_config.max_bitrate_bps, suspended_ssrcs))); 604 encoder_config.max_bitrate_bps, suspended_ssrcs)));
599 605
600 // Wait for ConstructionTask to complete so that |send_stream_| can be used. 606 // Wait for ConstructionTask to complete so that |send_stream_| can be used.
601 // |module_process_thread| must be registered and deregistered on the thread 607 // |module_process_thread| must be registered and deregistered on the thread
602 // it was created on. 608 // it was created on.
603 thread_sync_event_.Wait(rtc::Event::kForever); 609 thread_sync_event_.Wait(rtc::Event::kForever);
604 send_stream_->RegisterProcessThread(module_process_thread); 610 send_stream_->RegisterProcessThread(module_process_thread);
605 611
606 vie_encoder_->RegisterProcessThread(module_process_thread); 612 vie_encoder_->RegisterProcessThread(module_process_thread);
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 const std::vector<rtc::PlatformFile>& files, 700 const std::vector<rtc::PlatformFile>& files,
695 size_t byte_limit) { 701 size_t byte_limit) {
696 send_stream_->EnableEncodedFrameRecording(files, byte_limit); 702 send_stream_->EnableEncodedFrameRecording(files, byte_limit);
697 } 703 }
698 704
699 VideoSendStreamImpl::VideoSendStreamImpl( 705 VideoSendStreamImpl::VideoSendStreamImpl(
700 SendStatisticsProxy* stats_proxy, 706 SendStatisticsProxy* stats_proxy,
701 rtc::TaskQueue* worker_queue, 707 rtc::TaskQueue* worker_queue,
702 CallStats* call_stats, 708 CallStats* call_stats,
703 CongestionController* congestion_controller, 709 CongestionController* congestion_controller,
710 PacketRouter* packet_router,
704 BitrateAllocator* bitrate_allocator, 711 BitrateAllocator* bitrate_allocator,
705 SendDelayStats* send_delay_stats, 712 SendDelayStats* send_delay_stats,
706 VieRemb* remb, 713 VieRemb* remb,
707 ViEEncoder* vie_encoder, 714 ViEEncoder* vie_encoder,
708 RtcEventLog* event_log, 715 RtcEventLog* event_log,
709 const VideoSendStream::Config* config, 716 const VideoSendStream::Config* config,
710 int initial_encoder_max_bitrate, 717 int initial_encoder_max_bitrate,
711 std::map<uint32_t, RtpState> suspended_ssrcs) 718 std::map<uint32_t, RtpState> suspended_ssrcs)
712 : stats_proxy_(stats_proxy), 719 : stats_proxy_(stats_proxy),
713 config_(config), 720 config_(config),
714 suspended_ssrcs_(std::move(suspended_ssrcs)), 721 suspended_ssrcs_(std::move(suspended_ssrcs)),
715 module_process_thread_(nullptr), 722 module_process_thread_(nullptr),
716 worker_queue_(worker_queue), 723 worker_queue_(worker_queue),
717 check_encoder_activity_task_(nullptr), 724 check_encoder_activity_task_(nullptr),
718 call_stats_(call_stats), 725 call_stats_(call_stats),
719 congestion_controller_(congestion_controller), 726 congestion_controller_(congestion_controller),
727 packet_router_(packet_router),
720 bitrate_allocator_(bitrate_allocator), 728 bitrate_allocator_(bitrate_allocator),
721 remb_(remb), 729 remb_(remb),
722 flexfec_sender_(MaybeCreateFlexfecSender(*config_)), 730 flexfec_sender_(MaybeCreateFlexfecSender(*config_)),
723 max_padding_bitrate_(0), 731 max_padding_bitrate_(0),
724 encoder_min_bitrate_bps_(0), 732 encoder_min_bitrate_bps_(0),
725 encoder_max_bitrate_bps_(initial_encoder_max_bitrate), 733 encoder_max_bitrate_bps_(initial_encoder_max_bitrate),
726 encoder_target_rate_bps_(0), 734 encoder_target_rate_bps_(0),
727 vie_encoder_(vie_encoder), 735 vie_encoder_(vie_encoder),
728 encoder_feedback_(Clock::GetRealTimeClock(), 736 encoder_feedback_(Clock::GetRealTimeClock(),
729 config_->rtp.ssrcs, 737 config_->rtp.ssrcs,
730 vie_encoder), 738 vie_encoder),
731 protection_bitrate_calculator_(Clock::GetRealTimeClock(), this), 739 protection_bitrate_calculator_(Clock::GetRealTimeClock(), this),
732 bandwidth_observer_(congestion_controller_->GetBitrateController() 740 bandwidth_observer_(congestion_controller_->GetBitrateController()
733 ->CreateRtcpBandwidthObserver()), 741 ->CreateRtcpBandwidthObserver()),
734 rtp_rtcp_modules_(CreateRtpRtcpModules( 742 rtp_rtcp_modules_(CreateRtpRtcpModules(
735 config_->send_transport, 743 config_->send_transport,
736 &encoder_feedback_, 744 &encoder_feedback_,
737 bandwidth_observer_.get(), 745 bandwidth_observer_.get(),
738 congestion_controller_->GetTransportFeedbackObserver(), 746 congestion_controller_->GetTransportFeedbackObserver(),
739 call_stats_->rtcp_rtt_stats(), 747 call_stats_->rtcp_rtt_stats(),
740 congestion_controller_->pacer(), 748 congestion_controller_->pacer(),
741 congestion_controller_->packet_router(), 749 packet_router_,
742 flexfec_sender_.get(), 750 flexfec_sender_.get(),
743 stats_proxy_, 751 stats_proxy_,
744 send_delay_stats, 752 send_delay_stats,
745 event_log, 753 event_log,
746 congestion_controller_->GetRetransmissionRateLimiter(), 754 congestion_controller_->GetRetransmissionRateLimiter(),
747 this, 755 this,
748 config_->rtp.ssrcs.size())), 756 config_->rtp.ssrcs.size())),
749 payload_router_(rtp_rtcp_modules_, 757 payload_router_(rtp_rtcp_modules_,
750 config_->encoder_settings.payload_type), 758 config_->encoder_settings.payload_type),
751 weak_ptr_factory_(this), 759 weak_ptr_factory_(this),
752 overhead_bytes_per_packet_(0), 760 overhead_bytes_per_packet_(0),
753 transport_overhead_bytes_per_packet_(0) { 761 transport_overhead_bytes_per_packet_(0) {
754 RTC_DCHECK_RUN_ON(worker_queue_); 762 RTC_DCHECK_RUN_ON(worker_queue_);
755 LOG(LS_INFO) << "VideoSendStreamInternal: " << config_->ToString(); 763 LOG(LS_INFO) << "VideoSendStreamInternal: " << config_->ToString();
756 weak_ptr_ = weak_ptr_factory_.GetWeakPtr(); 764 weak_ptr_ = weak_ptr_factory_.GetWeakPtr();
757 module_process_thread_checker_.DetachFromThread(); 765 module_process_thread_checker_.DetachFromThread();
758 766
759 RTC_DCHECK(!config_->rtp.ssrcs.empty()); 767 RTC_DCHECK(!config_->rtp.ssrcs.empty());
760 RTC_DCHECK(call_stats_); 768 RTC_DCHECK(call_stats_);
761 RTC_DCHECK(congestion_controller_); 769 RTC_DCHECK(congestion_controller_);
762 RTC_DCHECK(remb_); 770 RTC_DCHECK(remb_);
763 771
764 congestion_controller_->EnablePeriodicAlrProbing( 772 congestion_controller_->EnablePeriodicAlrProbing(
765 config_->periodic_alr_bandwidth_probing); 773 config_->periodic_alr_bandwidth_probing);
766 774
767 // RTP/RTCP initialization. 775 // RTP/RTCP initialization.
768 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { 776 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
769 congestion_controller_->packet_router()->AddRtpModule(rtp_rtcp); 777 packet_router_->AddRtpModule(rtp_rtcp);
770 } 778 }
771 779
772 for (size_t i = 0; i < config_->rtp.extensions.size(); ++i) { 780 for (size_t i = 0; i < config_->rtp.extensions.size(); ++i) {
773 const std::string& extension = config_->rtp.extensions[i].uri; 781 const std::string& extension = config_->rtp.extensions[i].uri;
774 int id = config_->rtp.extensions[i].id; 782 int id = config_->rtp.extensions[i].id;
775 // One-byte-extension local identifiers are in the range 1-14 inclusive. 783 // One-byte-extension local identifiers are in the range 1-14 inclusive.
776 RTC_DCHECK_GE(id, 1); 784 RTC_DCHECK_GE(id, 1);
777 RTC_DCHECK_LE(id, 14); 785 RTC_DCHECK_LE(id, 14);
778 RTC_DCHECK(RtpExtension::IsSupportedForVideo(extension)); 786 RTC_DCHECK(RtpExtension::IsSupportedForVideo(extension));
779 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { 787 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 VideoSendStreamImpl::~VideoSendStreamImpl() { 848 VideoSendStreamImpl::~VideoSendStreamImpl() {
841 RTC_DCHECK_RUN_ON(worker_queue_); 849 RTC_DCHECK_RUN_ON(worker_queue_);
842 RTC_DCHECK(!payload_router_.active()) 850 RTC_DCHECK(!payload_router_.active())
843 << "VideoSendStreamImpl::Stop not called"; 851 << "VideoSendStreamImpl::Stop not called";
844 LOG(LS_INFO) << "~VideoSendStreamInternal: " << config_->ToString(); 852 LOG(LS_INFO) << "~VideoSendStreamInternal: " << config_->ToString();
845 853
846 rtp_rtcp_modules_[0]->SetREMBStatus(false); 854 rtp_rtcp_modules_[0]->SetREMBStatus(false);
847 remb_->RemoveRembSender(rtp_rtcp_modules_[0]); 855 remb_->RemoveRembSender(rtp_rtcp_modules_[0]);
848 856
849 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { 857 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
850 congestion_controller_->packet_router()->RemoveRtpModule(rtp_rtcp); 858 packet_router_->RemoveRtpModule(rtp_rtcp);
851 delete rtp_rtcp; 859 delete rtp_rtcp;
852 } 860 }
853 } 861 }
854 862
855 bool VideoSendStreamImpl::DeliverRtcp(const uint8_t* packet, size_t length) { 863 bool VideoSendStreamImpl::DeliverRtcp(const uint8_t* packet, size_t length) {
856 // Runs on a network thread. 864 // Runs on a network thread.
857 RTC_DCHECK(!worker_queue_->IsCurrent()); 865 RTC_DCHECK(!worker_queue_->IsCurrent());
858 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 866 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
859 rtp_rtcp->IncomingRtcpPacket(packet, length); 867 rtp_rtcp->IncomingRtcpPacket(packet, length);
860 return true; 868 return true;
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
1250 const uint16_t mtu = static_cast<uint16_t>( 1258 const uint16_t mtu = static_cast<uint16_t>(
1251 config_->rtp.max_packet_size + transport_overhead_bytes_per_packet); 1259 config_->rtp.max_packet_size + transport_overhead_bytes_per_packet);
1252 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { 1260 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
1253 rtp_rtcp->SetTransportOverhead(transport_overhead_bytes_per_packet); 1261 rtp_rtcp->SetTransportOverhead(transport_overhead_bytes_per_packet);
1254 rtp_rtcp->SetMaxTransferUnit(mtu); 1262 rtp_rtcp->SetMaxTransferUnit(mtu);
1255 } 1263 }
1256 } 1264 }
1257 1265
1258 } // namespace internal 1266 } // namespace internal
1259 } // namespace webrtc 1267 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video/video_send_stream.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698