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

Side by Side Diff: content/renderer/media/media_stream_video_track.cc

Issue 218763007: Update MediaStreamTrack::Stop to latest draft. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments. Created 6 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 | Annotate | Revision Log
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/renderer/media/media_stream_video_track.h" 5 #include "content/renderer/media/media_stream_video_track.h"
6 6
7 #include "content/renderer/media/media_stream_dependency_factory.h" 7 #include "content/renderer/media/media_stream_dependency_factory.h"
8 8
9 namespace content { 9 namespace content {
10 10
(...skipping 28 matching lines...) Expand all
39 MediaStreamDependencyFactory* factory) 39 MediaStreamDependencyFactory* factory)
40 : MediaStreamTrack(NULL, true), 40 : MediaStreamTrack(NULL, true),
41 enabled_(enabled), 41 enabled_(enabled),
42 source_(source), 42 source_(source),
43 factory_(factory) { 43 factory_(factory) {
44 source->AddTrack(this, constraints, callback); 44 source->AddTrack(this, constraints, callback);
45 } 45 }
46 46
47 MediaStreamVideoTrack::~MediaStreamVideoTrack() { 47 MediaStreamVideoTrack::~MediaStreamVideoTrack() {
48 DCHECK(sinks_.empty()); 48 DCHECK(sinks_.empty());
49 source_->RemoveTrack(this); 49 Stop();
50 } 50 }
51 51
52 void MediaStreamVideoTrack::AddSink(MediaStreamVideoSink* sink) { 52 void MediaStreamVideoTrack::AddSink(MediaStreamVideoSink* sink) {
53 DCHECK(thread_checker_.CalledOnValidThread()); 53 DCHECK(thread_checker_.CalledOnValidThread());
54 DCHECK(std::find(sinks_.begin(), sinks_.end(), sink) == sinks_.end()); 54 DCHECK(std::find(sinks_.begin(), sinks_.end(), sink) == sinks_.end());
55 sinks_.push_back(sink); 55 sinks_.push_back(sink);
56 } 56 }
57 57
58 void MediaStreamVideoTrack::RemoveSink(MediaStreamVideoSink* sink) { 58 void MediaStreamVideoTrack::RemoveSink(MediaStreamVideoSink* sink) {
59 DCHECK(thread_checker_.CalledOnValidThread()); 59 DCHECK(thread_checker_.CalledOnValidThread());
(...skipping 21 matching lines...) Expand all
81 void MediaStreamVideoTrack::SetEnabled(bool enabled) { 81 void MediaStreamVideoTrack::SetEnabled(bool enabled) {
82 DCHECK(thread_checker_.CalledOnValidThread()); 82 DCHECK(thread_checker_.CalledOnValidThread());
83 enabled_ = enabled; 83 enabled_ = enabled;
84 MediaStreamTrack::SetEnabled(enabled); 84 MediaStreamTrack::SetEnabled(enabled);
85 for (std::vector<MediaStreamVideoSink*>::iterator it = sinks_.begin(); 85 for (std::vector<MediaStreamVideoSink*>::iterator it = sinks_.begin();
86 it != sinks_.end(); ++it) { 86 it != sinks_.end(); ++it) {
87 (*it)->OnEnabledChanged(enabled); 87 (*it)->OnEnabledChanged(enabled);
88 } 88 }
89 } 89 }
90 90
91 void MediaStreamVideoTrack::Stop() {
92 DCHECK(thread_checker_.CalledOnValidThread());
93 if (source_) {
94 source_->RemoveTrack(this);
95 source_ = NULL;
96 }
97 OnReadyStateChanged(blink::WebMediaStreamSource::ReadyStateEnded);
98 }
99
91 void MediaStreamVideoTrack::OnVideoFrame( 100 void MediaStreamVideoTrack::OnVideoFrame(
92 const scoped_refptr<media::VideoFrame>& frame) { 101 const scoped_refptr<media::VideoFrame>& frame) {
93 DCHECK(thread_checker_.CalledOnValidThread()); 102 DCHECK(thread_checker_.CalledOnValidThread());
94 if (!enabled_) 103 if (!enabled_)
95 return; 104 return;
96 105
97 for (std::vector<MediaStreamVideoSink*>::iterator it = sinks_.begin(); 106 for (std::vector<MediaStreamVideoSink*>::iterator it = sinks_.begin();
98 it != sinks_.end(); ++it) { 107 it != sinks_.end(); ++it) {
99 (*it)->OnVideoFrame(frame); 108 (*it)->OnVideoFrame(frame);
100 } 109 }
101 } 110 }
102 111
103 void MediaStreamVideoTrack::OnReadyStateChanged( 112 void MediaStreamVideoTrack::OnReadyStateChanged(
104 blink::WebMediaStreamSource::ReadyState state) { 113 blink::WebMediaStreamSource::ReadyState state) {
105 DCHECK(thread_checker_.CalledOnValidThread()); 114 DCHECK(thread_checker_.CalledOnValidThread());
106 for (std::vector<MediaStreamVideoSink*>::iterator it = sinks_.begin(); 115 for (std::vector<MediaStreamVideoSink*>::iterator it = sinks_.begin();
107 it != sinks_.end(); ++it) { 116 it != sinks_.end(); ++it) {
108 (*it)->OnReadyStateChanged(state); 117 (*it)->OnReadyStateChanged(state);
109 } 118 }
110 } 119 }
111 120
112 } // namespace content 121 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_video_track.h ('k') | content/renderer/media/media_stream_video_track_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698