Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(577)

Side by Side Diff: content/renderer/media/video_source_handler.cc

Issue 1083883003: Move BindToCurrentLoop from media/base/ to base/ Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix media/base/callback_holder.h compile Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/video_source_handler.h" 5 #include "content/renderer/media/video_source_handler.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind_to_current_loop.h"
9 #include "base/logging.h" 10 #include "base/logging.h"
10 #include "base/memory/weak_ptr.h" 11 #include "base/memory/weak_ptr.h"
11 #include "base/synchronization/lock.h" 12 #include "base/synchronization/lock.h"
12 #include "base/trace_event/trace_event.h" 13 #include "base/trace_event/trace_event.h"
13 #include "content/public/renderer/media_stream_video_sink.h" 14 #include "content/public/renderer/media_stream_video_sink.h"
14 #include "content/renderer/media/media_stream.h" 15 #include "content/renderer/media/media_stream.h"
15 #include "content/renderer/media/media_stream_registry_interface.h" 16 #include "content/renderer/media/media_stream_registry_interface.h"
16 #include "media/base/bind_to_current_loop.h"
17 #include "media/base/video_capture_types.h" 17 #include "media/base/video_capture_types.h"
18 #include "third_party/WebKit/public/platform/WebMediaStream.h" 18 #include "third_party/WebKit/public/platform/WebMediaStream.h"
19 #include "third_party/WebKit/public/platform/WebURL.h" 19 #include "third_party/WebKit/public/platform/WebURL.h"
20 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h" 20 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h"
21 #include "url/gurl.h" 21 #include "url/gurl.h"
22 22
23 namespace content { 23 namespace content {
24 24
25 // PpFrameReceiver implements MediaStreamVideoSink so that it can be attached 25 // PpFrameReceiver implements MediaStreamVideoSink so that it can be attached
26 // to video track to receive the captured frame. 26 // to video track to receive the captured frame.
27 // It can be attached to a FrameReaderInterface to output the received frame. 27 // It can be attached to a FrameReaderInterface to output the received frame.
28 class PpFrameReceiver : public MediaStreamVideoSink { 28 class PpFrameReceiver : public MediaStreamVideoSink {
29 public: 29 public:
30 PpFrameReceiver(blink::WebMediaStreamTrack track) 30 PpFrameReceiver(blink::WebMediaStreamTrack track)
31 : track_(track), 31 : track_(track),
32 reader_(NULL), 32 reader_(NULL),
33 weak_factory_(this) { 33 weak_factory_(this) {
34 } 34 }
35 35
36 ~PpFrameReceiver() override {} 36 ~PpFrameReceiver() override {}
37 37
38 void SetReader(FrameReaderInterface* reader) { 38 void SetReader(FrameReaderInterface* reader) {
39 if (reader) { 39 if (reader) {
40 DCHECK(!reader_); 40 DCHECK(!reader_);
41 MediaStreamVideoSink::AddToVideoTrack( 41 MediaStreamVideoSink::AddToVideoTrack(
42 this, 42 this,
43 media::BindToCurrentLoop( 43 base::BindToCurrentLoop(
44 base::Bind( 44 base::Bind(
45 &PpFrameReceiver::OnVideoFrame, 45 &PpFrameReceiver::OnVideoFrame,
46 weak_factory_.GetWeakPtr())), 46 weak_factory_.GetWeakPtr())),
47 track_); 47 track_);
48 } else { 48 } else {
49 DCHECK(reader_); 49 DCHECK(reader_);
50 MediaStreamVideoSink::RemoveFromVideoTrack(this, track_); 50 MediaStreamVideoSink::RemoveFromVideoTrack(this, track_);
51 weak_factory_.InvalidateWeakPtrs(); 51 weak_factory_.InvalidateWeakPtrs();
52 } 52 }
53 reader_ = reader; 53 reader_ = reader;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 FrameReaderInterface* reader) 147 FrameReaderInterface* reader)
148 : receiver_(new PpFrameReceiver(blink_track)) { 148 : receiver_(new PpFrameReceiver(blink_track)) {
149 receiver_->SetReader(reader); 149 receiver_->SetReader(reader);
150 } 150 }
151 151
152 VideoSourceHandler::SourceInfo::~SourceInfo() { 152 VideoSourceHandler::SourceInfo::~SourceInfo() {
153 receiver_->SetReader(NULL); 153 receiver_->SetReader(NULL);
154 } 154 }
155 155
156 } // namespace content 156 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/video_capture_impl_unittest.cc ('k') | content/renderer/media/video_track_adapter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698