Chromium Code Reviews| Index: content/renderer/media/media_stream_video_source.cc |
| diff --git a/content/renderer/media/media_stream_video_source.cc b/content/renderer/media/media_stream_video_source.cc |
| index acdb7dfc9012677655a044d41e43688d08d1cde3..78faea021bc510494d8361f275722cd8ea5c0994 100644 |
| --- a/content/renderer/media/media_stream_video_source.cc |
| +++ b/content/renderer/media/media_stream_video_source.cc |
| @@ -9,17 +9,29 @@ |
| namespace content { |
| +MediaStreamVideoSource::MediaStreamVideoSource() |
| + : factory_(NULL) {} |
| + |
| void MediaStreamVideoSource::AddTrack( |
| const blink::WebMediaStreamTrack& track, |
|
Peng
2014/01/09 15:32:55
If the video track has been connected to a video s
Ronghua Wu (Left Chromium)
2014/01/09 16:50:06
I've not decided yet. Open to suggestion. Either t
Peng
2014/01/09 19:29:46
IMHO, supporting changing video source in a track
|
| const blink::WebMediaConstraints& constraints) { |
|
Peng
2014/01/09 15:32:55
Does it allow adding a track more than once? maybe
Ronghua Wu (Left Chromium)
2014/01/09 16:50:06
A track can update its constraints. So I think wha
|
| - // TODO(ronghuawu): Put |track| in the registered tracks list. Will later |
| - // deliver frames to it according to |constraints|. |
| + WebRtcVideoSourceAdapter* adapter = |
| + new WebRtcVideoSourceAdapter(track, constraints, factory_); |
| + if (!adapter->Init()) { |
| + return; |
| + } |
| + adapters_.push_back(adapter); |
| } |
| void MediaStreamVideoSource::RemoveTrack( |
| const blink::WebMediaStreamTrack& track) { |
| - // TODO(ronghuawu): Remove |track| from the list, i.e. will stop delivering |
| - // frame to |track|. |
| + for (WebRtcVideoSourceAdapters::iterator iter = adapters_.begin(); |
| + iter != adapters_.end(); ++iter) { |
| + if (track.id() == (*iter)->track().id()) { |
| + adapters_.erase(iter); |
| + break; |
| + } |
| + } |
| } |
| void MediaStreamVideoSource::SetReadyState( |
| @@ -34,6 +46,15 @@ void MediaStreamVideoSource::DeliverVideoFrame( |
| } |
| MediaStreamVideoSource::~MediaStreamVideoSource() { |
| + for (WebRtcVideoSourceAdapters::iterator iter = adapters_.begin(); |
| + iter != adapters_.end(); ++iter) { |
| + delete *iter; |
| + } |
| +} |
| + |
| +void MediaStreamVideoSource::SetMsFactory( |
| + MediaStreamDependencyFactory* factory) { |
| + factory_ = factory; |
| } |
| } // namespace content |