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

Unified Diff: content/renderer/media/media_stream_video_track.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: Account for frameRate constraints when setting refresh rate in MediaStreamVideoWebRtcSink. Created 4 years, 9 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/renderer/media/media_stream_video_track.cc
diff --git a/content/renderer/media/media_stream_video_track.cc b/content/renderer/media/media_stream_video_track.cc
index 00e75faba188b6801f73a3f51218854afe3afb9a..9403e463d890a3bdba47c6185f640c9588ecf224 100644
--- a/content/renderer/media/media_stream_video_track.cc
+++ b/content/renderer/media/media_stream_video_track.cc
@@ -212,6 +212,10 @@ blink::WebMediaStreamTrack MediaStreamVideoTrack::CreateVideoTrack(
// static
MediaStreamVideoTrack* MediaStreamVideoTrack::GetVideoTrack(
const blink::WebMediaStreamTrack& track) {
+ if (track.isNull() ||
+ track.source().getType() != blink::WebMediaStreamSource::TypeVideo) {
+ return nullptr;
+ }
return static_cast<MediaStreamVideoTrack*>(track.getExtraData());
}
@@ -247,9 +251,9 @@ void MediaStreamVideoTrack::AddSink(
DCHECK(std::find(sinks_.begin(), sinks_.end(), sink) == sinks_.end());
sinks_.push_back(sink);
frame_deliverer_->AddCallback(sink, callback);
+
// Request source to deliver a frame because a new sink is added.
- if (source_)
- source_->RequestRefreshFrame();
+ RequestRefreshFrame();
}
void MediaStreamVideoTrack::RemoveSink(MediaStreamVideoSink* sink) {
@@ -268,6 +272,12 @@ void MediaStreamVideoTrack::SetEnabled(bool enabled) {
sink->OnEnabledChanged(enabled);
}
+void MediaStreamVideoTrack::RequestRefreshFrame() {
+ DCHECK(main_render_thread_checker_.CalledOnValidThread());
+ if (source_)
+ source_->RequestRefreshFrame();
+}
+
void MediaStreamVideoTrack::Stop() {
DCHECK(main_render_thread_checker_.CalledOnValidThread());
if (source_) {

Powered by Google App Engine
This is Rietveld 408576698