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

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 last round of comments from xjz and emircan. 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()
14 MediaStreamVideoSink* sink, 12 : MediaStreamSink(), connected_track_(nullptr) {}
15 const VideoCaptureDeliverFrameCB& callback, 13
16 const blink::WebMediaStreamTrack& track) { 14 MediaStreamVideoSink::~MediaStreamVideoSink() {
17 DCHECK_EQ(blink::WebMediaStreamSource::TypeVideo, track.source().getType()); 15 // Ensure this sink has disconnected from the track.
18 MediaStreamVideoTrack* const video_track = 16 DisconnectFromTrack();
19 static_cast<MediaStreamVideoTrack*>(track.getExtraData());
20 video_track->AddSink(sink, callback);
21 } 17 }
22 18
23 void MediaStreamVideoSink::RemoveFromVideoTrack( 19 void MediaStreamVideoSink::ConnectToTrack(
24 MediaStreamVideoSink* sink, 20 const blink::WebMediaStreamTrack& track,
25 const blink::WebMediaStreamTrack& track) { 21 const VideoCaptureDeliverFrameCB& callback) {
26 DCHECK_EQ(blink::WebMediaStreamSource::TypeVideo, track.source().getType()); 22 DCHECK(!connected_track_);
27 MediaStreamVideoTrack* const video_track = 23 connected_track_ = MediaStreamVideoTrack::GetVideoTrack(track);
28 static_cast<MediaStreamVideoTrack*>(track.getExtraData()); 24 DCHECK(connected_track_);
29 video_track->RemoveSink(sink); 25 connected_track_->AddSink(this, callback);
26 }
27
28 void MediaStreamVideoSink::DisconnectFromTrack() {
29 if (connected_track_) {
30 connected_track_->RemoveSink(this);
31 connected_track_ = nullptr;
32 }
33 }
34
35 void MediaStreamVideoSink::RequestRefreshFrame() {
36 if (connected_track_)
37 connected_track_->RequestRefreshFrame();
30 } 38 }
31 39
32 } // namespace content 40 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698