OLD | NEW |
---|---|
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 | 10 |
(...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
585 received_bytes_per_second_counter_.GetStats(); | 585 received_bytes_per_second_counter_.GetStats(); |
586 if (recv_bytes_per_sec.num_samples > kMinRequiredPeriodicSamples) { | 586 if (recv_bytes_per_sec.num_samples > kMinRequiredPeriodicSamples) { |
587 RTC_HISTOGRAM_COUNTS_100000("WebRTC.Call.BitrateReceivedInKbps", | 587 RTC_HISTOGRAM_COUNTS_100000("WebRTC.Call.BitrateReceivedInKbps", |
588 recv_bytes_per_sec.average * 8 / 1000); | 588 recv_bytes_per_sec.average * 8 / 1000); |
589 LOG(LS_INFO) << "WebRTC.Call.BitrateReceivedInBps, " | 589 LOG(LS_INFO) << "WebRTC.Call.BitrateReceivedInBps, " |
590 << recv_bytes_per_sec.ToStringWithMultiplier(8); | 590 << recv_bytes_per_sec.ToStringWithMultiplier(8); |
591 } | 591 } |
592 } | 592 } |
593 | 593 |
594 PacketReceiver* Call::Receiver() { | 594 PacketReceiver* Call::Receiver() { |
595 // TODO(solenberg): Some test cases in EndToEndTest use this from a different | 595 RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_); |
596 // thread. Re-enable once that is fixed. | |
597 // RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_); | |
598 return this; | 596 return this; |
599 } | 597 } |
600 | 598 |
601 webrtc::AudioSendStream* Call::CreateAudioSendStream( | 599 webrtc::AudioSendStream* Call::CreateAudioSendStream( |
602 const webrtc::AudioSendStream::Config& config) { | 600 const webrtc::AudioSendStream::Config& config) { |
603 TRACE_EVENT0("webrtc", "Call::CreateAudioSendStream"); | 601 TRACE_EVENT0("webrtc", "Call::CreateAudioSendStream"); |
604 RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_); | 602 RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_); |
605 event_log_->LogAudioSendStreamConfig(CreateRtcLogStreamConfig(config)); | 603 event_log_->LogAudioSendStreamConfig(CreateRtcLogStreamConfig(config)); |
606 | 604 |
607 rtc::Optional<RtpState> suspended_rtp_state; | 605 rtc::Optional<RtpState> suspended_rtp_state; |
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
899 // Remove all SSRCs pointing to the FlexfecReceiveStreamImpl to be | 897 // Remove all SSRCs pointing to the FlexfecReceiveStreamImpl to be |
900 // destroyed. | 898 // destroyed. |
901 receive_side_cc_.GetRemoteBitrateEstimator(UseSendSideBwe(config)) | 899 receive_side_cc_.GetRemoteBitrateEstimator(UseSendSideBwe(config)) |
902 ->RemoveStream(ssrc); | 900 ->RemoveStream(ssrc); |
903 } | 901 } |
904 | 902 |
905 delete receive_stream; | 903 delete receive_stream; |
906 } | 904 } |
907 | 905 |
908 Call::Stats Call::GetStats() const { | 906 Call::Stats Call::GetStats() const { |
909 // TODO(solenberg): Some test cases in EndToEndTest use this from a different | 907 // TODO(solenberg): Some test cases in EndToEndTest use this from a different |
eladalon
2017/08/18 14:37:58
We can take care of this separately, as it require
| |
910 // thread. Re-enable once that is fixed. | 908 // thread. Re-enable once that is fixed. |
911 // RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_); | 909 // RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_); |
912 Stats stats; | 910 Stats stats; |
913 // Fetch available send/receive bitrates. | 911 // Fetch available send/receive bitrates. |
914 uint32_t send_bandwidth = 0; | 912 uint32_t send_bandwidth = 0; |
915 transport_send_->send_side_cc()->GetBitrateController()->AvailableBandwidth( | 913 transport_send_->send_side_cc()->GetBitrateController()->AvailableBandwidth( |
916 &send_bandwidth); | 914 &send_bandwidth); |
917 std::vector<unsigned int> ssrcs; | 915 std::vector<unsigned int> ssrcs; |
918 uint32_t recv_bandwidth = 0; | 916 uint32_t recv_bandwidth = 0; |
919 receive_side_cc_.GetRemoteBitrateEstimator(false)->LatestEstimate( | 917 receive_side_cc_.GetRemoteBitrateEstimator(false)->LatestEstimate( |
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1367 } | 1365 } |
1368 } | 1366 } |
1369 return DELIVERY_UNKNOWN_SSRC; | 1367 return DELIVERY_UNKNOWN_SSRC; |
1370 } | 1368 } |
1371 | 1369 |
1372 PacketReceiver::DeliveryStatus Call::DeliverPacket( | 1370 PacketReceiver::DeliveryStatus Call::DeliverPacket( |
1373 MediaType media_type, | 1371 MediaType media_type, |
1374 const uint8_t* packet, | 1372 const uint8_t* packet, |
1375 size_t length, | 1373 size_t length, |
1376 const PacketTime& packet_time) { | 1374 const PacketTime& packet_time) { |
1377 // TODO(solenberg): Tests call this function on a network thread, libjingle | 1375 RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_); |
1378 // calls on the worker thread. We should move towards always using a network | |
1379 // thread. Then this check can be enabled. | |
1380 // RTC_DCHECK_CALLED_SEQUENTIALLY(&configuration_sequence_checker_); | |
1381 if (RtpHeaderParser::IsRtcp(packet, length)) | 1376 if (RtpHeaderParser::IsRtcp(packet, length)) |
1382 return DeliverRtcp(media_type, packet, length); | 1377 return DeliverRtcp(media_type, packet, length); |
1383 | 1378 |
1384 return DeliverRtp(media_type, packet, length, packet_time); | 1379 return DeliverRtp(media_type, packet, length, packet_time); |
1385 } | 1380 } |
1386 | 1381 |
1387 // TODO(brandtr): Update this member function when we support protecting | 1382 // TODO(brandtr): Update this member function when we support protecting |
1388 // audio packets with FlexFEC. | 1383 // audio packets with FlexFEC. |
1389 void Call::OnRecoveredPacket(const uint8_t* packet, size_t length) { | 1384 void Call::OnRecoveredPacket(const uint8_t* packet, size_t length) { |
1390 ReadLockScoped read_lock(*receive_crit_); | 1385 ReadLockScoped read_lock(*receive_crit_); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1422 (use_send_side_bwe && header.extension.hasTransportSequenceNumber)) { | 1417 (use_send_side_bwe && header.extension.hasTransportSequenceNumber)) { |
1423 receive_side_cc_.OnReceivedPacket( | 1418 receive_side_cc_.OnReceivedPacket( |
1424 packet.arrival_time_ms(), packet.payload_size() + packet.padding_size(), | 1419 packet.arrival_time_ms(), packet.payload_size() + packet.padding_size(), |
1425 header); | 1420 header); |
1426 } | 1421 } |
1427 } | 1422 } |
1428 | 1423 |
1429 } // namespace internal | 1424 } // namespace internal |
1430 | 1425 |
1431 } // namespace webrtc | 1426 } // namespace webrtc |
OLD | NEW |