| OLD | NEW | 
|    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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   43 namespace { |   43 namespace { | 
|   44 constexpr int kPacketBufferStartSize = 32; |   44 constexpr int kPacketBufferStartSize = 32; | 
|   45 constexpr int kPacketBufferMaxSixe = 2048; |   45 constexpr int kPacketBufferMaxSixe = 2048; | 
|   46 } |   46 } | 
|   47  |   47  | 
|   48 std::unique_ptr<RtpRtcp> CreateRtpRtcpModule( |   48 std::unique_ptr<RtpRtcp> CreateRtpRtcpModule( | 
|   49     ReceiveStatistics* receive_statistics, |   49     ReceiveStatistics* receive_statistics, | 
|   50     Transport* outgoing_transport, |   50     Transport* outgoing_transport, | 
|   51     RtcpRttStats* rtt_stats, |   51     RtcpRttStats* rtt_stats, | 
|   52     RtcpPacketTypeCounterObserver* rtcp_packet_type_counter_observer, |   52     RtcpPacketTypeCounterObserver* rtcp_packet_type_counter_observer, | 
|   53     RemoteBitrateEstimator* remote_bitrate_estimator, |  | 
|   54     TransportSequenceNumberAllocator* transport_sequence_number_allocator) { |   53     TransportSequenceNumberAllocator* transport_sequence_number_allocator) { | 
|   55   RtpRtcp::Configuration configuration; |   54   RtpRtcp::Configuration configuration; | 
|   56   configuration.audio = false; |   55   configuration.audio = false; | 
|   57   configuration.receiver_only = true; |   56   configuration.receiver_only = true; | 
|   58   configuration.receive_statistics = receive_statistics; |   57   configuration.receive_statistics = receive_statistics; | 
|   59   configuration.outgoing_transport = outgoing_transport; |   58   configuration.outgoing_transport = outgoing_transport; | 
|   60   configuration.intra_frame_callback = nullptr; |   59   configuration.intra_frame_callback = nullptr; | 
|   61   configuration.rtt_stats = rtt_stats; |   60   configuration.rtt_stats = rtt_stats; | 
|   62   configuration.rtcp_packet_type_counter_observer = |   61   configuration.rtcp_packet_type_counter_observer = | 
|   63       rtcp_packet_type_counter_observer; |   62       rtcp_packet_type_counter_observer; | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
|   74   rtp_rtcp->SetSendingStatus(false); |   73   rtp_rtcp->SetSendingStatus(false); | 
|   75   rtp_rtcp->SetSendingMediaStatus(false); |   74   rtp_rtcp->SetSendingMediaStatus(false); | 
|   76   rtp_rtcp->SetRTCPStatus(RtcpMode::kCompound); |   75   rtp_rtcp->SetRTCPStatus(RtcpMode::kCompound); | 
|   77  |   76  | 
|   78   return rtp_rtcp; |   77   return rtp_rtcp; | 
|   79 } |   78 } | 
|   80  |   79  | 
|   81 static const int kPacketLogIntervalMs = 10000; |   80 static const int kPacketLogIntervalMs = 10000; | 
|   82  |   81  | 
|   83 RtpStreamReceiver::RtpStreamReceiver( |   82 RtpStreamReceiver::RtpStreamReceiver( | 
|   84     RemoteBitrateEstimator* remote_bitrate_estimator, |  | 
|   85     Transport* transport, |   83     Transport* transport, | 
|   86     RtcpRttStats* rtt_stats, |   84     RtcpRttStats* rtt_stats, | 
|   87     PacketRouter* packet_router, |   85     PacketRouter* packet_router, | 
|   88     VieRemb* remb, |   86     VieRemb* remb, | 
|   89     const VideoReceiveStream::Config* config, |   87     const VideoReceiveStream::Config* config, | 
|   90     ReceiveStatisticsProxy* receive_stats_proxy, |   88     ReceiveStatisticsProxy* receive_stats_proxy, | 
|   91     ProcessThread* process_thread, |   89     ProcessThread* process_thread, | 
|   92     NackSender* nack_sender, |   90     NackSender* nack_sender, | 
|   93     KeyFrameRequestSender* keyframe_request_sender, |   91     KeyFrameRequestSender* keyframe_request_sender, | 
|   94     video_coding::OnCompleteFrameCallback* complete_frame_callback, |   92     video_coding::OnCompleteFrameCallback* complete_frame_callback, | 
|   95     VCMTiming* timing) |   93     VCMTiming* timing) | 
|   96     : clock_(Clock::GetRealTimeClock()), |   94     : clock_(Clock::GetRealTimeClock()), | 
|   97       config_(*config), |   95       config_(*config), | 
|   98       remote_bitrate_estimator_(remote_bitrate_estimator), |  | 
|   99       packet_router_(packet_router), |   96       packet_router_(packet_router), | 
|  100       remb_(remb), |   97       remb_(remb), | 
|  101       process_thread_(process_thread), |   98       process_thread_(process_thread), | 
|  102       ntp_estimator_(clock_), |   99       ntp_estimator_(clock_), | 
|  103       rtp_header_parser_(RtpHeaderParser::Create()), |  100       rtp_header_parser_(RtpHeaderParser::Create()), | 
|  104       rtp_receiver_(RtpReceiver::CreateVideoReceiver(clock_, |  101       rtp_receiver_(RtpReceiver::CreateVideoReceiver(clock_, | 
|  105                                                      this, |  102                                                      this, | 
|  106                                                      this, |  103                                                      this, | 
|  107                                                      &rtp_payload_registry_)), |  104                                                      &rtp_payload_registry_)), | 
|  108       rtp_receive_statistics_(ReceiveStatistics::Create(clock_)), |  105       rtp_receive_statistics_(ReceiveStatistics::Create(clock_)), | 
|  109       ulpfec_receiver_(UlpfecReceiver::Create(this)), |  106       ulpfec_receiver_(UlpfecReceiver::Create(this)), | 
|  110       receiving_(false), |  107       receiving_(false), | 
|  111       restored_packet_in_use_(false), |  108       restored_packet_in_use_(false), | 
|  112       last_packet_log_ms_(-1), |  109       last_packet_log_ms_(-1), | 
|  113       rtp_rtcp_(CreateRtpRtcpModule(rtp_receive_statistics_.get(), |  110       rtp_rtcp_(CreateRtpRtcpModule(rtp_receive_statistics_.get(), | 
|  114                                     transport, |  111                                     transport, | 
|  115                                     rtt_stats, |  112                                     rtt_stats, | 
|  116                                     receive_stats_proxy, |  113                                     receive_stats_proxy, | 
|  117                                     remote_bitrate_estimator_, |  | 
|  118                                     packet_router)), |  114                                     packet_router)), | 
|  119       complete_frame_callback_(complete_frame_callback), |  115       complete_frame_callback_(complete_frame_callback), | 
|  120       keyframe_request_sender_(keyframe_request_sender), |  116       keyframe_request_sender_(keyframe_request_sender), | 
|  121       timing_(timing) { |  117       timing_(timing) { | 
|  122   packet_router_->AddRtpModule(rtp_rtcp_.get()); |  118   packet_router_->AddRtpModule(rtp_rtcp_.get()); | 
|  123   rtp_receive_statistics_->RegisterRtpStatisticsCallback(receive_stats_proxy); |  119   rtp_receive_statistics_->RegisterRtpStatisticsCallback(receive_stats_proxy); | 
|  124   rtp_receive_statistics_->RegisterRtcpStatisticsCallback(receive_stats_proxy); |  120   rtp_receive_statistics_->RegisterRtcpStatisticsCallback(receive_stats_proxy); | 
|  125  |  121  | 
|  126   RTC_DCHECK(config_.rtp.rtcp_mode != RtcpMode::kOff) |  122   RTC_DCHECK(config_.rtp.rtcp_mode != RtcpMode::kOff) | 
|  127       << "A stream should not be configured with RTCP disabled. This value is " |  123       << "A stream should not be configured with RTCP disabled. This value is " | 
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  302   return 0; |  298   return 0; | 
|  303 } |  299 } | 
|  304  |  300  | 
|  305 void RtpStreamReceiver::OnIncomingSSRCChanged(const uint32_t ssrc) { |  301 void RtpStreamReceiver::OnIncomingSSRCChanged(const uint32_t ssrc) { | 
|  306   rtp_rtcp_->SetRemoteSSRC(ssrc); |  302   rtp_rtcp_->SetRemoteSSRC(ssrc); | 
|  307 } |  303 } | 
|  308  |  304  | 
|  309 bool RtpStreamReceiver::DeliverRtp(const uint8_t* rtp_packet, |  305 bool RtpStreamReceiver::DeliverRtp(const uint8_t* rtp_packet, | 
|  310                                    size_t rtp_packet_length, |  306                                    size_t rtp_packet_length, | 
|  311                                    const PacketTime& packet_time) { |  307                                    const PacketTime& packet_time) { | 
|  312   RTC_DCHECK(remote_bitrate_estimator_); |  | 
|  313   { |  308   { | 
|  314     rtc::CritScope lock(&receive_cs_); |  309     rtc::CritScope lock(&receive_cs_); | 
|  315     if (!receiving_) { |  310     if (!receiving_) { | 
|  316       return false; |  311       return false; | 
|  317     } |  312     } | 
|  318   } |  313   } | 
|  319  |  314  | 
|  320   RTPHeader header; |  315   RTPHeader header; | 
|  321   if (!rtp_header_parser_->Parse(rtp_packet, rtp_packet_length, |  316   if (!rtp_header_parser_->Parse(rtp_packet, rtp_packet_length, | 
|  322                                  &header)) { |  317                                  &header)) { | 
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  654     return; |  649     return; | 
|  655  |  650  | 
|  656   if (!sprop_decoder.DecodeSprop(sprop_base64_it->second.c_str())) |  651   if (!sprop_decoder.DecodeSprop(sprop_base64_it->second.c_str())) | 
|  657     return; |  652     return; | 
|  658  |  653  | 
|  659   tracker_.InsertSpsPpsNalus(sprop_decoder.sps_nalu(), |  654   tracker_.InsertSpsPpsNalus(sprop_decoder.sps_nalu(), | 
|  660                              sprop_decoder.pps_nalu()); |  655                              sprop_decoder.pps_nalu()); | 
|  661 } |  656 } | 
|  662  |  657  | 
|  663 }  // namespace webrtc |  658 }  // namespace webrtc | 
| OLD | NEW |