| Index: webrtc/media/engine/webrtcvoiceengine.cc
 | 
| diff --git a/webrtc/media/engine/webrtcvoiceengine.cc b/webrtc/media/engine/webrtcvoiceengine.cc
 | 
| index 8fcda89962ee768153b9d6337a862309b7e67aab..c11b0c1d07829121ea10adf9549e5f9aece62c3f 100644
 | 
| --- a/webrtc/media/engine/webrtcvoiceengine.cc
 | 
| +++ b/webrtc/media/engine/webrtcvoiceengine.cc
 | 
| @@ -1581,6 +1581,12 @@ class WebRtcVoiceMediaChannel::WebRtcAudioReceiveStream {
 | 
|      playout_ = playout;
 | 
|    }
 | 
|  
 | 
| +  std::vector<webrtc::RtpSource> GetSources() {
 | 
| +    RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
 | 
| +    RTC_DCHECK(stream_);
 | 
| +    return stream_->GetSources();
 | 
| +  }
 | 
| +
 | 
|   private:
 | 
|    void RecreateAudioReceiveStream() {
 | 
|      RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
 | 
| @@ -2600,6 +2606,15 @@ void WebRtcVoiceMediaChannel::SetRawAudioSink(
 | 
|    it->second->SetRawAudioSink(std::move(sink));
 | 
|  }
 | 
|  
 | 
| +std::vector<webrtc::RtpSource> WebRtcVoiceMediaChannel::GetSources(
 | 
| +    uint32_t ssrc) {
 | 
| +  auto it = recv_streams_.find(ssrc);
 | 
| +  RTC_DCHECK(it != recv_streams_.end())
 | 
| +      << "Attempting to get contributing sources for SSRC:" << ssrc
 | 
| +      << " which doesn't exist.";
 | 
| +  return it->second->GetSources();
 | 
| +}
 | 
| +
 | 
|  int WebRtcVoiceMediaChannel::GetReceiveChannelId(uint32_t ssrc) const {
 | 
|    RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
 | 
|    const auto it = recv_streams_.find(ssrc);
 | 
| 
 |