| 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_) {
|
|
|