| 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 80d202b08463cab68bd672af966fe3d2e3f06a62..a7fd261d4775b951ecf9c1903ccfa8e9c2fec36c 100644
|
| --- a/content/renderer/media/media_stream_video_track.cc
|
| +++ b/content/renderer/media/media_stream_video_track.cc
|
| @@ -57,10 +57,7 @@ MediaStreamVideoTrack::MediaStreamVideoTrack(
|
|
|
| MediaStreamVideoTrack::~MediaStreamVideoTrack() {
|
| DCHECK(sinks_.empty());
|
| - // TODO(perkj): source can be NULL if this is actually a remote video track.
|
| - // Remove as soon as we only have one implementation of video tracks.
|
| - if (source_)
|
| - source_->RemoveTrack(this);
|
| + StopTrack();
|
| }
|
|
|
| void MediaStreamVideoTrack::AddSink(MediaStreamVideoSink* sink) {
|
| @@ -102,6 +99,15 @@ void MediaStreamVideoTrack::SetEnabled(bool enabled) {
|
| }
|
| }
|
|
|
| +void MediaStreamVideoTrack::StopTrack() {
|
| + DCHECK(thread_checker_.CalledOnValidThread());
|
| + if (source_) {
|
| + source_->RemoveTrack(this);
|
| + source_ = NULL;
|
| + }
|
| + OnReadyStateChanged(blink::WebMediaStreamSource::ReadyStateEnded);
|
| +}
|
| +
|
| void MediaStreamVideoTrack::OnVideoFrame(
|
| const scoped_refptr<media::VideoFrame>& frame) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|