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

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

Issue 1671893002: Remove ViEChannel calls for VideoReceiveStream. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: remove number_of_cores_ 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 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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 10
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 uint32_t* sent_nack_rate_bps, 70 uint32_t* sent_nack_rate_bps,
71 uint32_t* sent_fec_rate_bps) override { 71 uint32_t* sent_fec_rate_bps) override {
72 return owner_->ProtectionRequest(delta_fec_params, key_fec_params, 72 return owner_->ProtectionRequest(delta_fec_params, key_fec_params,
73 sent_video_rate_bps, sent_nack_rate_bps, 73 sent_video_rate_bps, sent_nack_rate_bps,
74 sent_fec_rate_bps); 74 sent_fec_rate_bps);
75 } 75 }
76 private: 76 private:
77 ViEChannel* owner_; 77 ViEChannel* owner_;
78 }; 78 };
79 79
80 ViEChannel::ViEChannel(uint32_t number_of_cores, 80 ViEChannel::ViEChannel(Transport* transport,
81 Transport* transport,
82 ProcessThread* module_process_thread, 81 ProcessThread* module_process_thread,
83 PayloadRouter* send_payload_router, 82 PayloadRouter* send_payload_router,
84 VideoCodingModule* vcm, 83 VideoCodingModule* vcm,
85 RtcpIntraFrameObserver* intra_frame_observer, 84 RtcpIntraFrameObserver* intra_frame_observer,
86 RtcpBandwidthObserver* bandwidth_observer, 85 RtcpBandwidthObserver* bandwidth_observer,
87 TransportFeedbackObserver* transport_feedback_observer, 86 TransportFeedbackObserver* transport_feedback_observer,
88 RemoteBitrateEstimator* remote_bitrate_estimator, 87 RemoteBitrateEstimator* remote_bitrate_estimator,
89 RtcpRttStats* rtt_stats, 88 RtcpRttStats* rtt_stats,
90 PacedSender* paced_sender, 89 PacedSender* paced_sender,
91 PacketRouter* packet_router, 90 PacketRouter* packet_router,
92 size_t max_rtp_streams, 91 size_t max_rtp_streams,
93 bool sender) 92 bool sender)
94 : number_of_cores_(number_of_cores), 93 : sender_(sender),
95 sender_(sender),
96 module_process_thread_(module_process_thread), 94 module_process_thread_(module_process_thread),
97 send_payload_router_(send_payload_router), 95 send_payload_router_(send_payload_router),
98 vcm_protection_callback_(new ViEChannelProtectionCallback(this)), 96 vcm_protection_callback_(new ViEChannelProtectionCallback(this)),
99 vcm_(vcm), 97 vcm_(vcm),
100 vie_receiver_(vcm_, remote_bitrate_estimator, this), 98 vie_receiver_(vcm_, remote_bitrate_estimator, this),
101 vie_sync_(vcm_), 99 vie_sync_(vcm_),
102 stats_observer_(new ChannelStatsObserver(this)), 100 stats_observer_(new ChannelStatsObserver(this)),
103 receive_stats_callback_(nullptr), 101 receive_stats_callback_(nullptr),
104 incoming_video_stream_(nullptr), 102 incoming_video_stream_(nullptr),
105 intra_frame_observer_(intra_frame_observer), 103 intra_frame_observer_(intra_frame_observer),
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 packet_router_->RemoveRtpModule(rtp_rtcp_modules_[i], sender_); 406 packet_router_->RemoveRtpModule(rtp_rtcp_modules_[i], sender_);
409 } 407 }
410 // Register new active modules. 408 // Register new active modules.
411 for (size_t i = num_prev_active_modules; i < num_active_modules; ++i) { 409 for (size_t i = num_prev_active_modules; i < num_active_modules; ++i) {
412 module_process_thread_->RegisterModule(rtp_rtcp_modules_[i]); 410 module_process_thread_->RegisterModule(rtp_rtcp_modules_[i]);
413 packet_router_->AddRtpModule(rtp_rtcp_modules_[i], sender_); 411 packet_router_->AddRtpModule(rtp_rtcp_modules_[i], sender_);
414 } 412 }
415 return 0; 413 return 0;
416 } 414 }
417 415
418 int32_t ViEChannel::SetReceiveCodec(const VideoCodec& video_codec) {
419 RTC_DCHECK(!sender_);
420 if (!vie_receiver_.SetReceiveCodec(video_codec)) {
421 return -1;
422 }
423
424 if (video_codec.codecType != kVideoCodecRED &&
425 video_codec.codecType != kVideoCodecULPFEC) {
426 // Register codec type with VCM, but do not register RED or ULPFEC.
427 if (vcm_->RegisterReceiveCodec(&video_codec, number_of_cores_, false) !=
428 VCM_OK) {
429 return -1;
430 }
431 }
432 return 0;
433 }
434
435 void ViEChannel::RegisterExternalDecoder(const uint8_t pl_type,
436 VideoDecoder* decoder) {
437 RTC_DCHECK(!sender_);
438 vcm_->RegisterExternalDecoder(decoder, pl_type);
439 }
440
441 int32_t ViEChannel::ReceiveCodecStatistics(uint32_t* num_key_frames,
442 uint32_t* num_delta_frames) {
443 rtc::CritScope lock(&crit_);
444 *num_key_frames = receive_frame_counts_.key_frames;
445 *num_delta_frames = receive_frame_counts_.delta_frames;
446 return 0;
447 }
448
449 void ViEChannel::SetExpectedRenderDelay(int delay_ms) {
450 RTC_DCHECK(!sender_);
451 vcm_->SetRenderDelay(delay_ms);
452 }
453
454 void ViEChannel::SetRTCPMode(const RtcpMode rtcp_mode) { 416 void ViEChannel::SetRTCPMode(const RtcpMode rtcp_mode) {
417 RTC_DCHECK(sender_);
455 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 418 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
456 rtp_rtcp->SetRTCPStatus(rtcp_mode); 419 rtp_rtcp->SetRTCPStatus(rtcp_mode);
457 } 420 }
458 421
459 void ViEChannel::SetProtectionMode(bool enable_nack, 422 void ViEChannel::SetProtectionMode(bool enable_nack,
460 bool enable_fec, 423 bool enable_fec,
461 int payload_type_red, 424 int payload_type_red,
462 int payload_type_fec) { 425 int payload_type_fec) {
463 // Validate payload types. 426 // Validate payload types.
464 if (enable_fec) { 427 if (enable_fec) {
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 return 0; 536 return 0;
574 // Enable the extension. 537 // Enable the extension.
575 int error = 0; 538 int error = 0;
576 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { 539 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
577 error |= rtp_rtcp->RegisterSendRtpHeaderExtension( 540 error |= rtp_rtcp->RegisterSendRtpHeaderExtension(
578 kRtpExtensionTransmissionTimeOffset, id); 541 kRtpExtensionTransmissionTimeOffset, id);
579 } 542 }
580 return error; 543 return error;
581 } 544 }
582 545
583 int ViEChannel::SetReceiveTimestampOffsetStatus(bool enable, int id) {
584 return vie_receiver_.SetReceiveTimestampOffsetStatus(enable, id) ? 0 : -1;
585 }
586
587 int ViEChannel::SetSendAbsoluteSendTimeStatus(bool enable, int id) { 546 int ViEChannel::SetSendAbsoluteSendTimeStatus(bool enable, int id) {
588 // Disable any previous registrations of this extension to avoid errors. 547 // Disable any previous registrations of this extension to avoid errors.
589 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 548 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
590 rtp_rtcp->DeregisterSendRtpHeaderExtension(kRtpExtensionAbsoluteSendTime); 549 rtp_rtcp->DeregisterSendRtpHeaderExtension(kRtpExtensionAbsoluteSendTime);
591 if (!enable) 550 if (!enable)
592 return 0; 551 return 0;
593 // Enable the extension. 552 // Enable the extension.
594 int error = 0; 553 int error = 0;
595 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { 554 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
596 error |= rtp_rtcp->RegisterSendRtpHeaderExtension( 555 error |= rtp_rtcp->RegisterSendRtpHeaderExtension(
597 kRtpExtensionAbsoluteSendTime, id); 556 kRtpExtensionAbsoluteSendTime, id);
598 } 557 }
599 return error; 558 return error;
600 } 559 }
601 560
602 int ViEChannel::SetReceiveAbsoluteSendTimeStatus(bool enable, int id) {
603 return vie_receiver_.SetReceiveAbsoluteSendTimeStatus(enable, id) ? 0 : -1;
604 }
605
606 int ViEChannel::SetSendVideoRotationStatus(bool enable, int id) { 561 int ViEChannel::SetSendVideoRotationStatus(bool enable, int id) {
607 // Disable any previous registrations of this extension to avoid errors. 562 // Disable any previous registrations of this extension to avoid errors.
608 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 563 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
609 rtp_rtcp->DeregisterSendRtpHeaderExtension(kRtpExtensionVideoRotation); 564 rtp_rtcp->DeregisterSendRtpHeaderExtension(kRtpExtensionVideoRotation);
610 if (!enable) 565 if (!enable)
611 return 0; 566 return 0;
612 // Enable the extension. 567 // Enable the extension.
613 int error = 0; 568 int error = 0;
614 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { 569 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
615 error |= rtp_rtcp->RegisterSendRtpHeaderExtension( 570 error |= rtp_rtcp->RegisterSendRtpHeaderExtension(
616 kRtpExtensionVideoRotation, id); 571 kRtpExtensionVideoRotation, id);
617 } 572 }
618 return error; 573 return error;
619 } 574 }
620 575
621 int ViEChannel::SetReceiveVideoRotationStatus(bool enable, int id) {
622 return vie_receiver_.SetReceiveVideoRotationStatus(enable, id) ? 0 : -1;
623 }
624
625 int ViEChannel::SetSendTransportSequenceNumber(bool enable, int id) { 576 int ViEChannel::SetSendTransportSequenceNumber(bool enable, int id) {
577 RTC_DCHECK(sender_);
626 // Disable any previous registrations of this extension to avoid errors. 578 // Disable any previous registrations of this extension to avoid errors.
627 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { 579 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
628 rtp_rtcp->DeregisterSendRtpHeaderExtension( 580 rtp_rtcp->DeregisterSendRtpHeaderExtension(
629 kRtpExtensionTransportSequenceNumber); 581 kRtpExtensionTransportSequenceNumber);
630 } 582 }
631 if (!enable) 583 if (!enable)
632 return 0; 584 return 0;
633 // Enable the extension. 585 // Enable the extension.
634 int error = 0; 586 int error = 0;
635 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { 587 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
636 error |= rtp_rtcp->RegisterSendRtpHeaderExtension( 588 error |= rtp_rtcp->RegisterSendRtpHeaderExtension(
637 kRtpExtensionTransportSequenceNumber, id); 589 kRtpExtensionTransportSequenceNumber, id);
638 } 590 }
639 return error; 591 return error;
640 } 592 }
641 593
642 int ViEChannel::SetReceiveTransportSequenceNumber(bool enable, int id) {
643 return vie_receiver_.SetReceiveTransportSequenceNumber(enable, id) ? 0 : -1;
644 }
645
646 void ViEChannel::SetRtcpXrRrtrStatus(bool enable) {
647 rtp_rtcp_modules_[0]->SetRtcpXrRrtrStatus(enable);
648 }
649
650 void ViEChannel::EnableTMMBR(bool enable) {
651 rtp_rtcp_modules_[0]->SetTMMBRStatus(enable);
652 }
653
654 int32_t ViEChannel::SetSSRC(const uint32_t SSRC, 594 int32_t ViEChannel::SetSSRC(const uint32_t SSRC,
655 const StreamType usage, 595 const StreamType usage,
656 const uint8_t simulcast_idx) { 596 const uint8_t simulcast_idx) {
597 RTC_DCHECK(sender_);
657 RtpRtcp* rtp_rtcp = rtp_rtcp_modules_[simulcast_idx]; 598 RtpRtcp* rtp_rtcp = rtp_rtcp_modules_[simulcast_idx];
658 if (usage == kViEStreamTypeRtx) { 599 if (usage == kViEStreamTypeRtx) {
659 rtp_rtcp->SetRtxSsrc(SSRC); 600 rtp_rtcp->SetRtxSsrc(SSRC);
660 } else { 601 } else {
661 rtp_rtcp->SetSSRC(SSRC); 602 rtp_rtcp->SetSSRC(SSRC);
662 } 603 }
663 return 0; 604 return 0;
664 } 605 }
665 606
666 int32_t ViEChannel::SetRemoteSSRCType(const StreamType usage,
667 const uint32_t SSRC) {
668 vie_receiver_.SetRtxSsrc(SSRC);
669 return 0;
670 }
671
672 int32_t ViEChannel::GetLocalSSRC(uint8_t idx, unsigned int* ssrc) { 607 int32_t ViEChannel::GetLocalSSRC(uint8_t idx, unsigned int* ssrc) {
673 RTC_DCHECK_LE(idx, rtp_rtcp_modules_.size()); 608 RTC_DCHECK_LE(idx, rtp_rtcp_modules_.size());
674 *ssrc = rtp_rtcp_modules_[idx]->SSRC(); 609 *ssrc = rtp_rtcp_modules_[idx]->SSRC();
675 return 0; 610 return 0;
676 } 611 }
677 612
678 uint32_t ViEChannel::GetRemoteSSRC() { 613 uint32_t ViEChannel::GetRemoteSSRC() {
614 RTC_DCHECK(sender_);
679 return vie_receiver_.GetRemoteSsrc(); 615 return vie_receiver_.GetRemoteSsrc();
680 } 616 }
681 617
682 int ViEChannel::SetRtxSendPayloadType(int payload_type, 618 int ViEChannel::SetRtxSendPayloadType(int payload_type,
683 int associated_payload_type) { 619 int associated_payload_type) {
684 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 620 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
685 rtp_rtcp->SetRtxSendPayloadType(payload_type, associated_payload_type); 621 rtp_rtcp->SetRtxSendPayloadType(payload_type, associated_payload_type);
686 SetRtxSendStatus(true); 622 SetRtxSendStatus(true);
687 return 0; 623 return 0;
688 } 624 }
689 625
690 void ViEChannel::SetRtxSendStatus(bool enable) { 626 void ViEChannel::SetRtxSendStatus(bool enable) {
691 int rtx_settings = 627 int rtx_settings =
692 enable ? kRtxRetransmitted | kRtxRedundantPayloads : kRtxOff; 628 enable ? kRtxRetransmitted | kRtxRedundantPayloads : kRtxOff;
693 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 629 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
694 rtp_rtcp->SetRtxSendStatus(rtx_settings); 630 rtp_rtcp->SetRtxSendStatus(rtx_settings);
695 } 631 }
696 632
697 void ViEChannel::SetRtxReceivePayloadType(int payload_type,
698 int associated_payload_type) {
699 vie_receiver_.SetRtxPayloadType(payload_type, associated_payload_type);
700 }
701
702 void ViEChannel::SetUseRtxPayloadMappingOnRestore(bool val) {
703 vie_receiver_.SetUseRtxPayloadMappingOnRestore(val);
704 }
705
706 void ViEChannel::SetRtpStateForSsrc(uint32_t ssrc, const RtpState& rtp_state) { 633 void ViEChannel::SetRtpStateForSsrc(uint32_t ssrc, const RtpState& rtp_state) {
707 RTC_DCHECK(!rtp_rtcp_modules_[0]->Sending()); 634 RTC_DCHECK(!rtp_rtcp_modules_[0]->Sending());
708 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) { 635 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) {
709 if (rtp_rtcp->SetRtpStateForSsrc(ssrc, rtp_state)) 636 if (rtp_rtcp->SetRtpStateForSsrc(ssrc, rtp_state))
710 return; 637 return;
711 } 638 }
712 } 639 }
713 640
714 RtpState ViEChannel::GetRtpStateForSsrc(uint32_t ssrc) { 641 RtpState ViEChannel::GetRtpStateForSsrc(uint32_t ssrc) {
715 RTC_DCHECK(!rtp_rtcp_modules_[0]->Sending()); 642 RTC_DCHECK(!rtp_rtcp_modules_[0]->Sending());
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
779 *rtt_ms = rtt; 706 *rtt_ms = rtt;
780 return 0; 707 return 0;
781 } 708 }
782 709
783 void ViEChannel::RegisterSendChannelRtcpStatisticsCallback( 710 void ViEChannel::RegisterSendChannelRtcpStatisticsCallback(
784 RtcpStatisticsCallback* callback) { 711 RtcpStatisticsCallback* callback) {
785 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 712 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
786 rtp_rtcp->RegisterRtcpStatisticsCallback(callback); 713 rtp_rtcp->RegisterRtcpStatisticsCallback(callback);
787 } 714 }
788 715
789 void ViEChannel::RegisterReceiveChannelRtcpStatisticsCallback(
790 RtcpStatisticsCallback* callback) {
791 vie_receiver_.GetReceiveStatistics()->RegisterRtcpStatisticsCallback(
792 callback);
793 rtp_rtcp_modules_[0]->RegisterRtcpStatisticsCallback(callback);
794 }
795
796 void ViEChannel::RegisterRtcpPacketTypeCounterObserver( 716 void ViEChannel::RegisterRtcpPacketTypeCounterObserver(
797 RtcpPacketTypeCounterObserver* observer) { 717 RtcpPacketTypeCounterObserver* observer) {
798 rtcp_packet_type_counter_observer_.Set(observer); 718 rtcp_packet_type_counter_observer_.Set(observer);
799 } 719 }
800 720
801 void ViEChannel::GetSendStreamDataCounters( 721 void ViEChannel::GetSendStreamDataCounters(
802 StreamDataCounters* rtp_counters, 722 StreamDataCounters* rtp_counters,
803 StreamDataCounters* rtx_counters) const { 723 StreamDataCounters* rtx_counters) const {
804 *rtp_counters = StreamDataCounters(); 724 *rtp_counters = StreamDataCounters();
805 *rtx_counters = StreamDataCounters(); 725 *rtx_counters = StreamDataCounters();
(...skipping 23 matching lines...) Expand all
829 } 749 }
830 } 750 }
831 } 751 }
832 752
833 void ViEChannel::RegisterSendChannelRtpStatisticsCallback( 753 void ViEChannel::RegisterSendChannelRtpStatisticsCallback(
834 StreamDataCountersCallback* callback) { 754 StreamDataCountersCallback* callback) {
835 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 755 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
836 rtp_rtcp->RegisterSendChannelRtpStatisticsCallback(callback); 756 rtp_rtcp->RegisterSendChannelRtpStatisticsCallback(callback);
837 } 757 }
838 758
839 void ViEChannel::RegisterReceiveChannelRtpStatisticsCallback(
840 StreamDataCountersCallback* callback) {
841 vie_receiver_.GetReceiveStatistics()->RegisterRtpStatisticsCallback(callback);
842 }
843
844 void ViEChannel::GetSendRtcpPacketTypeCounter( 759 void ViEChannel::GetSendRtcpPacketTypeCounter(
845 RtcpPacketTypeCounter* packet_counter) const { 760 RtcpPacketTypeCounter* packet_counter) const {
846 std::map<uint32_t, RtcpPacketTypeCounter> counter_map = 761 std::map<uint32_t, RtcpPacketTypeCounter> counter_map =
847 rtcp_packet_type_counter_observer_.GetPacketTypeCounterMap(); 762 rtcp_packet_type_counter_observer_.GetPacketTypeCounterMap();
848 763
849 RtcpPacketTypeCounter counter; 764 RtcpPacketTypeCounter counter;
850 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 765 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
851 counter.Add(counter_map[rtp_rtcp->SSRC()]); 766 counter.Add(counter_map[rtp_rtcp->SSRC()]);
852 *packet_counter = counter; 767 *packet_counter = counter;
853 } 768 }
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
915 StartDecodeThread(); 830 StartDecodeThread();
916 vie_receiver_.StartReceive(); 831 vie_receiver_.StartReceive();
917 } 832 }
918 833
919 void ViEChannel::StopReceive() { 834 void ViEChannel::StopReceive() {
920 vie_receiver_.StopReceive(); 835 vie_receiver_.StopReceive();
921 if (!sender_) 836 if (!sender_)
922 StopDecodeThread(); 837 StopDecodeThread();
923 } 838 }
924 839
925 int32_t ViEChannel::ReceivedRTPPacket(const void* rtp_packet,
926 size_t rtp_packet_length,
927 const PacketTime& packet_time) {
928 return vie_receiver_.ReceivedRTPPacket(
929 rtp_packet, rtp_packet_length, packet_time);
930 }
931
932 int32_t ViEChannel::ReceivedRTCPPacket(const void* rtcp_packet, 840 int32_t ViEChannel::ReceivedRTCPPacket(const void* rtcp_packet,
933 size_t rtcp_packet_length) { 841 size_t rtcp_packet_length) {
934 return vie_receiver_.ReceivedRTCPPacket(rtcp_packet, rtcp_packet_length); 842 RTC_DCHECK(sender_);
843 return vie_receiver_.DeliverRtcp(
844 reinterpret_cast<const uint8_t*>(rtcp_packet), rtcp_packet_length)
845 ? 0
846 : -1;
935 } 847 }
936 848
937 int32_t ViEChannel::SetMTU(uint16_t mtu) { 849 int32_t ViEChannel::SetMTU(uint16_t mtu) {
850 RTC_DCHECK(sender_);
938 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_) 851 for (RtpRtcp* rtp_rtcp : rtp_rtcp_modules_)
939 rtp_rtcp->SetMaxTransferUnit(mtu); 852 rtp_rtcp->SetMaxTransferUnit(mtu);
940 return 0; 853 return 0;
941 } 854 }
942 855
943 RtpRtcp* ViEChannel::rtp_rtcp() { 856 RtpRtcp* ViEChannel::rtp_rtcp() {
944 return rtp_rtcp_modules_[0]; 857 return rtp_rtcp_modules_[0];
945 } 858 }
946 859
860 ViEReceiver* ViEChannel::vie_receiver() {
861 return &vie_receiver_;
862 }
863
947 VCMProtectionCallback* ViEChannel::vcm_protection_callback() { 864 VCMProtectionCallback* ViEChannel::vcm_protection_callback() {
948 return vcm_protection_callback_.get(); 865 return vcm_protection_callback_.get();
949 } 866 }
950 867
951 CallStatsObserver* ViEChannel::GetStatsObserver() { 868 CallStatsObserver* ViEChannel::GetStatsObserver() {
952 return stats_observer_.get(); 869 return stats_observer_.get();
953 } 870 }
954 871
955 // Do not acquire the lock of |vcm_| in this function. Decode callback won't 872 // Do not acquire the lock of |vcm_| in this function. Decode callback won't
956 // necessarily be called from the decoding thread. The decoding thread may have 873 // necessarily be called from the decoding thread. The decoding thread may have
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
1153 vie_receiver_.GetRtpReceiver()); 1070 vie_receiver_.GetRtpReceiver());
1154 } 1071 }
1155 1072
1156 int32_t ViEChannel::VoiceChannel() { 1073 int32_t ViEChannel::VoiceChannel() {
1157 RTC_DCHECK(!sender_); 1074 RTC_DCHECK(!sender_);
1158 return vie_sync_.VoiceChannel(); 1075 return vie_sync_.VoiceChannel();
1159 } 1076 }
1160 1077
1161 void ViEChannel::RegisterPreRenderCallback( 1078 void ViEChannel::RegisterPreRenderCallback(
1162 I420FrameCallback* pre_render_callback) { 1079 I420FrameCallback* pre_render_callback) {
1080 RTC_DCHECK(!sender_);
1163 rtc::CritScope lock(&crit_); 1081 rtc::CritScope lock(&crit_);
1164 pre_render_callback_ = pre_render_callback; 1082 pre_render_callback_ = pre_render_callback;
1165 } 1083 }
1166 1084
1167 void ViEChannel::RegisterPreDecodeImageCallback(
1168 EncodedImageCallback* pre_decode_callback) {
1169 RTC_DCHECK(!sender_);
1170 vcm_->RegisterPreDecodeImageCallback(pre_decode_callback);
1171 }
1172
1173 // TODO(pbos): Remove as soon as audio can handle a changing payload type 1085 // TODO(pbos): Remove as soon as audio can handle a changing payload type
1174 // without this callback. 1086 // without this callback.
1175 int32_t ViEChannel::OnInitializeDecoder( 1087 int32_t ViEChannel::OnInitializeDecoder(
1176 const int8_t payload_type, 1088 const int8_t payload_type,
1177 const char payload_name[RTP_PAYLOAD_NAME_SIZE], 1089 const char payload_name[RTP_PAYLOAD_NAME_SIZE],
1178 const int frequency, 1090 const int frequency,
1179 const size_t channels, 1091 const size_t channels,
1180 const uint32_t rate) { 1092 const uint32_t rate) {
1181 RTC_NOTREACHED(); 1093 RTC_NOTREACHED();
1182 return 0; 1094 return 0;
(...skipping 15 matching lines...) Expand all
1198 rtc::CritScope lock(&crit_); 1110 rtc::CritScope lock(&crit_);
1199 receive_stats_callback_ = receive_statistics_proxy; 1111 receive_stats_callback_ = receive_statistics_proxy;
1200 } 1112 }
1201 1113
1202 void ViEChannel::SetIncomingVideoStream( 1114 void ViEChannel::SetIncomingVideoStream(
1203 IncomingVideoStream* incoming_video_stream) { 1115 IncomingVideoStream* incoming_video_stream) {
1204 rtc::CritScope lock(&crit_); 1116 rtc::CritScope lock(&crit_);
1205 incoming_video_stream_ = incoming_video_stream; 1117 incoming_video_stream_ = incoming_video_stream;
1206 } 1118 }
1207 } // namespace webrtc 1119 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698