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

Unified Diff: content/renderer/media/media_stream_video_source.cc

Issue 129923002: Implements MediaStreamVideoSource. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 11 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_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

Powered by Google App Engine
This is Rietveld 408576698