Chromium Code Reviews| Index: talk/media/base/capturerenderadapter.cc |
| diff --git a/talk/media/base/capturerenderadapter.cc b/talk/media/base/capturerenderadapter.cc |
| index 87b3c11d897d1be27d728005ff580023a2821f1e..4ac7e2aab5339bcdd629d7566b7132d885ce04ee 100644 |
| --- a/talk/media/base/capturerenderadapter.cc |
| +++ b/talk/media/base/capturerenderadapter.cc |
| @@ -38,17 +38,7 @@ CaptureRenderAdapter::CaptureRenderAdapter(VideoCapturer* video_capturer) |
| } |
| CaptureRenderAdapter::~CaptureRenderAdapter() { |
| - // 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( |
| @@ -81,20 +71,21 @@ void CaptureRenderAdapter::RemoveSink( |
| } |
| void CaptureRenderAdapter::Init() { |
| - video_capturer_->SignalVideoFrame.connect( |
| - this, |
| - &CaptureRenderAdapter::OnVideoFrame); |
| + rtc::VideoSinkCapabilities capabilities; |
| + // All renderers must handle rotation. |
| + capabilities.can_apply_rotation = true; |
| + |
| + video_capturer_->AddSink(this, capabilities); |
| } |
| -void CaptureRenderAdapter::OnVideoFrame(VideoCapturer* capturer, |
| - const VideoFrame* video_frame) { |
| +void CaptureRenderAdapter::OnFrame(const VideoFrame& frame) { |
| rtc::CritScope cs(&capture_crit_); |
| if (sinks_.empty()) { |
|
nisse-webrtc
2016/02/03 09:16:34
This test isn't needed, right?
perkj_webrtc
2016/02/08 14:32:00
Done.
|
| return; |
| } |
| for (auto* sink : sinks_) |
| - sink->OnFrame(*video_frame); |
| + sink->OnFrame(frame); |
| } |
| } // namespace cricket |