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

Side by Side 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: rebase Created 7 years, 7 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
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/renderer/media/media_stream_source_observer.h"
6
7 #include "base/logging.h"
8 #include "content/renderer/media/media_stream_source_extra_data.h"
9
10 namespace content {
11
12 MediaStreamSourceObserver::MediaStreamSourceObserver(
13 webrtc::MediaSourceInterface* webrtc_source,
14 MediaStreamSourceExtraData* extra_data)
15 : state_(webrtc_source->state()),
16 webrtc_source_(webrtc_source),
17 extra_data_(extra_data) {
18 DCHECK(CalledOnValidThread());
tommi (sloooow) - chröme 2013/04/26 08:54:48 nit: this isn't needed in a ctor.
kcwu 2013/04/26 10:20:53 Done.
19 webrtc_source_->RegisterObserver(this);
20 }
21
22 MediaStreamSourceObserver::~MediaStreamSourceObserver() {
23 if (webrtc_source_)
tommi (sloooow) - chröme 2013/04/26 08:54:48 ...but checking if we're on the correct thread in
kcwu 2013/04/26 10:20:53 Done.
24 webrtc_source_->UnregisterObserver(this);
25 }
26
27 void MediaStreamSourceObserver::OnChanged() {
28 DCHECK(CalledOnValidThread());
29 // There should be no more notification after kEnded.
30 DCHECK(webrtc_source_ != NULL);
31
tommi (sloooow) - chröme 2013/04/26 08:54:48 only one empty line
kcwu 2013/04/26 10:20:53 Done.
32
33 webrtc::MediaSourceInterface::SourceState state = webrtc_source_->state();
34 if (state == state_)
35 return;
36 state_ = state;
37 WebKit::WebMediaStreamSource webkit_source(extra_data_->webkit_source());
38
39 switch (state) {
40 case webrtc::MediaSourceInterface::kInitializing:
41 // Ignore the kInitializing state since there is no match in
42 // WebMediaStreamSource::ReadyState.
43 break;
44 case webrtc::MediaSourceInterface::kLive:
45 webkit_source.setReadyState(
46 WebKit::WebMediaStreamSource::ReadyStateLive);
47 break;
48 case webrtc::MediaSourceInterface::kMuted:
49 webkit_source.setReadyState(
50 WebKit::WebMediaStreamSource::ReadyStateMuted);
51 break;
52 case webrtc::MediaSourceInterface::kEnded:
53 webkit_source.setReadyState(
54 WebKit::WebMediaStreamSource::ReadyStateEnded);
55 webrtc_source_->UnregisterObserver(this);
56 webrtc_source_ = NULL;
57 break;
58 default:
59 NOTREACHED();
60 break;
61 }
62 }
63
64 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_source_observer.h ('k') | content/renderer/media/mock_media_stream_dependency_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698