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

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

Issue 14346002: Connect webrtc MediaSourceInterface ready states with webkit WebMediaStreamSource (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/media_stream_source_observer.cc
diff --git a/content/renderer/media/media_stream_source_observer.cc b/content/renderer/media/media_stream_source_observer.cc
new file mode 100644
index 0000000000000000000000000000000000000000..094212ad622c6068b8255fdbb41bc050bda33fd7
--- /dev/null
+++ b/content/renderer/media/media_stream_source_observer.cc
@@ -0,0 +1,61 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/renderer/media/media_stream_source_observer.h"
+
+#include "base/logging.h"
+
+namespace content {
+
+MediaStreamSourceObserver::MediaStreamSourceObserver(
+ webrtc::MediaSourceInterface* webrtc_source,
+ const WebKit::WebMediaStreamSource& webkit_source)
+ : state_(webrtc_source->state()),
+ webrtc_source_(webrtc_source),
+ webkit_source_(webkit_source) {
+ DCHECK(CalledOnValidThread());
+ webrtc_source_->RegisterObserver(this);
+}
+
+MediaStreamSourceObserver::~MediaStreamSourceObserver() {
+ if (webrtc_source_)
+ webrtc_source_->UnregisterObserver(this);
+}
+
+void MediaStreamSourceObserver::OnChanged() {
+ DCHECK(CalledOnValidThread());
+ // There should be no more notification after kEnded.
+ DCHECK(webrtc_source_ != NULL);
+
tommi (sloooow) - chröme 2013/04/23 09:50:55 one empty line
+
+ webrtc::MediaSourceInterface::SourceState state = webrtc_source_->state();
+ if (state == state_)
+ return;
+ state_ = state;
+
+ switch (state) {
+ case webrtc::MediaSourceInterface::kInitializing:
+ /* kInitializing is not ready state. */
perkj_chrome 2013/04/18 13:36:20 Can you rewrite this comment a bit. Ie kInitializi
tommi (sloooow) - chröme 2013/04/23 09:50:55 This looks like copy/paste from another changelist
+ break;
+ case webrtc::MediaSourceInterface::kLive:
+ webkit_source_.setReadyState(
+ WebKit::WebMediaStreamSource::ReadyStateLive);
+ break;
+ case webrtc::MediaSourceInterface::kMuted:
+ webkit_source_.setReadyState(
+ WebKit::WebMediaStreamSource::ReadyStateMuted);
+ break;
+ case webrtc::MediaSourceInterface::kEnded:
+ webkit_source_.setReadyState(
+ WebKit::WebMediaStreamSource::ReadyStateEnded);
+ webrtc_source_->UnregisterObserver(this);
+ webrtc_source_ = NULL;
+ webkit_source_.reset();
+ break;
+ default:
+ NOTREACHED();
+ }
+}
+
+} // namespace content

Powered by Google App Engine
This is Rietveld 408576698