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

Side by Side Diff: content/public/renderer/media_stream_video_sink.cc

Issue 1849003002: Add video frame refresh to MediaStream and VideoCapture stacks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed nick's PS3 comments (moving non-observer impl out of MSVideoSink interface). Created 4 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 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/public/renderer/media_stream_video_sink.h" 5 #include "content/public/renderer/media_stream_video_sink.h"
6 6
7 #include "base/logging.h"
8 #include "content/renderer/media/media_stream_video_track.h" 7 #include "content/renderer/media/media_stream_video_track.h"
9 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
10 8
11 namespace content { 9 namespace content {
12 10
13 void MediaStreamVideoSink::AddToVideoTrack( 11 MediaStreamVideoSink::MediaStreamVideoSink() : MediaStreamSink() {}
14 MediaStreamVideoSink* sink, 12
15 const VideoCaptureDeliverFrameCB& callback, 13 MediaStreamVideoSink::~MediaStreamVideoSink() {
16 const blink::WebMediaStreamTrack& track) { 14 // Ensure this sink has disconnected from the track.
17 DCHECK_EQ(blink::WebMediaStreamSource::TypeVideo, track.source().getType()); 15 DisconnectFromTrack();
18 MediaStreamVideoTrack* const video_track =
19 static_cast<MediaStreamVideoTrack*>(track.getExtraData());
20 video_track->AddSink(sink, callback);
21 } 16 }
22 17
23 void MediaStreamVideoSink::RemoveFromVideoTrack( 18 void MediaStreamVideoSink::ConnectToTrack(
24 MediaStreamVideoSink* sink, 19 const blink::WebMediaStreamTrack& track,
25 const blink::WebMediaStreamTrack& track) { 20 const VideoCaptureDeliverFrameCB& callback) {
26 DCHECK_EQ(blink::WebMediaStreamSource::TypeVideo, track.source().getType()); 21 DCHECK(connected_track_.isNull());
22 connected_track_ = track;
27 MediaStreamVideoTrack* const video_track = 23 MediaStreamVideoTrack* const video_track =
28 static_cast<MediaStreamVideoTrack*>(track.getExtraData()); 24 MediaStreamVideoTrack::GetVideoTrack(connected_track_);
29 video_track->RemoveSink(sink); 25 DCHECK(video_track);
26 video_track->AddSink(this, callback);
27 }
28
29 void MediaStreamVideoSink::DisconnectFromTrack() {
30 MediaStreamVideoTrack* const video_track =
31 MediaStreamVideoTrack::GetVideoTrack(connected_track_);
32 if (video_track)
33 video_track->RemoveSink(this);
34 connected_track_.reset();
30 } 35 }
31 36
32 } // namespace content 37 } // namespace content
OLDNEW
« no previous file with comments | « content/public/renderer/media_stream_video_sink.h ('k') | content/renderer/media/media_stream_constraints_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698