| Index: webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc b/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc
|
| index 20f57460a68ffc1cb30d84b43e46dd2361400c7f..ed0383f0d66a89808923a736065668ec9f60dd06 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_receiver_impl.cc
|
| @@ -163,7 +163,11 @@ bool RtpReceiverImpl::IncomingRtpPacket(
|
| webrtc_rtp_header.header = rtp_header;
|
| CheckCSRC(webrtc_rtp_header);
|
|
|
| - UpdateSources();
|
| + auto audio_level =
|
| + rtp_header.extension.hasAudioLevel
|
| + ? rtc::Optional<uint8_t>(rtp_header.extension.audioLevel)
|
| + : rtc::Optional<uint8_t>();
|
| + UpdateSources(audio_level);
|
|
|
| size_t payload_data_length = payload_length - rtp_header.paddingLength;
|
|
|
| @@ -500,7 +504,8 @@ void RtpReceiverImpl::CheckCSRC(const WebRtcRTPHeader& rtp_header) {
|
| }
|
| }
|
|
|
| -void RtpReceiverImpl::UpdateSources() {
|
| +void RtpReceiverImpl::UpdateSources(
|
| + const rtc::Optional<uint8_t>& ssrc_audio_level) {
|
| rtc::CritScope lock(&critical_section_rtp_receiver_);
|
| int64_t now_ms = clock_->TimeInMilliseconds();
|
|
|
| @@ -527,6 +532,8 @@ void RtpReceiverImpl::UpdateSources() {
|
| ssrc_sources_.rbegin()->update_timestamp_ms(now_ms);
|
| }
|
|
|
| + ssrc_sources_.back().set_audio_level(ssrc_audio_level);
|
| +
|
| RemoveOutdatedSources(now_ms);
|
| }
|
|
|
|
|