Chromium Code Reviews| Index: webrtc/pc/channel.cc |
| diff --git a/webrtc/pc/channel.cc b/webrtc/pc/channel.cc |
| index f5428a43effac7a93fce554e11946c220946337c..9e56d67d38860fe11da087ecdee2d2ef3cc1f027 100644 |
| --- a/webrtc/pc/channel.cc |
| +++ b/webrtc/pc/channel.cc |
| @@ -30,6 +30,10 @@ |
| namespace cricket { |
| using rtc::Bind; |
| +std::vector<webrtc::RtpSource> GetSourcesImpl( |
| + WebRtcVoiceMediaChannel* media_channel, |
| + uint32_t ssrc); |
| + |
| namespace { |
| // See comment below for why we need to use a pointer to a unique_ptr. |
| bool SetRawAudioSink_w(VoiceMediaChannel* channel, |
| @@ -1608,9 +1612,13 @@ bool VoiceChannel::GetStats(VoiceMediaInfo* stats) { |
| std::vector<webrtc::RtpSource> VoiceChannel::GetSources(uint32_t ssrc) const { |
| return worker_thread()->Invoke<std::vector<webrtc::RtpSource>>( |
| - RTC_FROM_HERE, |
| - Bind(&WebRtcVoiceMediaChannel::GetSources, |
| - static_cast<WebRtcVoiceMediaChannel*>(media_channel()), ssrc)); |
| + RTC_FROM_HERE, Bind(&VoiceChannel::GetSources_w, this, ssrc)); |
| +} |
| + |
| +std::vector<webrtc::RtpSource> VoiceChannel::GetSources_w(uint32_t ssrc) const { |
| + RTC_DCHECK(worker_thread()->IsCurrent()); |
| + return GetSourcesImpl(static_cast<WebRtcVoiceMediaChannel*>(media_channel()), |
|
Taylor Brandstetter
2017/05/18 17:57:05
This wouldn't be necessary if GetSources was pure
Zhi Huang
2017/05/23 03:40:35
Yes. Once the circular dependency problem is solve
|
| + ssrc); |
| } |
| void VoiceChannel::StartMediaMonitor(int cms) { |