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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: content/public/renderer/media_stream_video_sink.cc
diff --git a/content/public/renderer/media_stream_video_sink.cc b/content/public/renderer/media_stream_video_sink.cc
index 118d732c6b3b090e9d737e9d2579bdc345201c76..d2c3488af04bc54e01af04e8c52ddf056fe0e5a7 100644
--- a/content/public/renderer/media_stream_video_sink.cc
+++ b/content/public/renderer/media_stream_video_sink.cc
@@ -4,29 +4,34 @@
#include "content/public/renderer/media_stream_video_sink.h"
-#include "base/logging.h"
#include "content/renderer/media/media_stream_video_track.h"
-#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
namespace content {
-void MediaStreamVideoSink::AddToVideoTrack(
- MediaStreamVideoSink* sink,
- const VideoCaptureDeliverFrameCB& callback,
- const blink::WebMediaStreamTrack& track) {
- DCHECK_EQ(blink::WebMediaStreamSource::TypeVideo, track.source().getType());
+MediaStreamVideoSink::MediaStreamVideoSink() : MediaStreamSink() {}
+
+MediaStreamVideoSink::~MediaStreamVideoSink() {
+ // Ensure this sink has disconnected from the track.
+ DisconnectFromTrack();
+}
+
+void MediaStreamVideoSink::ConnectToTrack(
+ const blink::WebMediaStreamTrack& track,
+ const VideoCaptureDeliverFrameCB& callback) {
+ DCHECK(connected_track_.isNull());
+ connected_track_ = track;
MediaStreamVideoTrack* const video_track =
- static_cast<MediaStreamVideoTrack*>(track.getExtraData());
- video_track->AddSink(sink, callback);
+ MediaStreamVideoTrack::GetVideoTrack(connected_track_);
+ DCHECK(video_track);
+ video_track->AddSink(this, callback);
}
-void MediaStreamVideoSink::RemoveFromVideoTrack(
- MediaStreamVideoSink* sink,
- const blink::WebMediaStreamTrack& track) {
- DCHECK_EQ(blink::WebMediaStreamSource::TypeVideo, track.source().getType());
+void MediaStreamVideoSink::DisconnectFromTrack() {
MediaStreamVideoTrack* const video_track =
- static_cast<MediaStreamVideoTrack*>(track.getExtraData());
- video_track->RemoveSink(sink);
+ MediaStreamVideoTrack::GetVideoTrack(connected_track_);
+ if (video_track)
+ video_track->RemoveSink(this);
+ connected_track_.reset();
}
} // namespace content
« 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