Index: webrtc/media/base/capturerenderadapter.cc |
diff --git a/webrtc/media/base/capturerenderadapter.cc b/webrtc/media/base/capturerenderadapter.cc |
index f8d28f792f675be05595a533bbc08725b3f16f31..1c7260df3a58190bbfcff996383930398a5535fc 100644 |
--- a/webrtc/media/base/capturerenderadapter.cc |
+++ b/webrtc/media/base/capturerenderadapter.cc |
@@ -21,17 +21,7 @@ CaptureRenderAdapter::CaptureRenderAdapter(VideoCapturer* video_capturer) |
} |
CaptureRenderAdapter::~CaptureRenderAdapter() { |
pthatcher1
2016/02/09 17:13:41
Deleted! Woohoo!
|
- // Since the signal we're connecting to is multi-threaded, |
- // disconnect_all() will block until all calls are serviced, meaning any |
- // outstanding calls to OnVideoFrame will be done when this is done, and no |
- // more calls will be serviced by this. |
- // We do this explicitly instead of just letting the has_slots<> destructor |
- // take care of it because we need to do this *before* sinks_ is |
- // cleared by the destructor; otherwise we could mess with it while |
- // OnVideoFrame is running. |
- // We *don't* take capture_crit_ here since it could deadlock with the lock |
- // taken by the video frame signal. |
- disconnect_all(); |
+ video_capturer_->RemoveSink(this); |
} |
CaptureRenderAdapter* CaptureRenderAdapter::Create( |
@@ -64,20 +54,17 @@ void CaptureRenderAdapter::RemoveSink( |
} |
void CaptureRenderAdapter::Init() { |
- video_capturer_->SignalVideoFrame.connect( |
- this, |
- &CaptureRenderAdapter::OnVideoFrame); |
+ video_capturer_->AddSink(this); |
} |
-void CaptureRenderAdapter::OnVideoFrame(VideoCapturer* capturer, |
- const VideoFrame* video_frame) { |
+void CaptureRenderAdapter::OnFrame(const VideoFrame& frame) { |
rtc::CritScope cs(&capture_crit_); |
if (sinks_.empty()) { |
return; |
} |
for (auto* sink : sinks_) |
- sink->OnFrame(*video_frame); |
+ sink->OnFrame(frame); |
} |
} // namespace cricket |