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

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

Issue 675013005: Split libjingle's signaling thread from the UI thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update tests, remove circular dependency Created 6 years, 1 month 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_track.h" 5 #include "content/renderer/media/media_stream_track.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" 8 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
9 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" 9 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h"
10 10
11 namespace content { 11 namespace content {
12 12
13 // static 13 // static
14 MediaStreamTrack* MediaStreamTrack::GetTrack( 14 MediaStreamTrack* MediaStreamTrack::GetTrack(
15 const blink::WebMediaStreamTrack& track) { 15 const blink::WebMediaStreamTrack& track) {
16 if (track.isNull()) 16 if (track.isNull())
17 return NULL; 17 return NULL;
18 return static_cast<MediaStreamTrack*>(track.extraData()); 18 return static_cast<MediaStreamTrack*>(track.extraData());
19 } 19 }
20 20
21 MediaStreamTrack::MediaStreamTrack( 21 MediaStreamTrack::MediaStreamTrack(bool is_local_track)
22 const scoped_refptr<webrtc::MediaStreamTrackInterface>& track, 22 : is_local_track_(is_local_track) {
23 bool is_local_track)
24 : track_(track), is_local_track_(is_local_track) {
25 } 23 }
26 24
27 MediaStreamTrack::~MediaStreamTrack() { 25 MediaStreamTrack::~MediaStreamTrack() {
28 } 26 }
29 27
30 void MediaStreamTrack::SetEnabled(bool enabled) {
31 DCHECK(thread_checker_.CalledOnValidThread());
32 if (track_.get())
33 track_->set_enabled(enabled);
34 }
35
36 // TODO(tommi): Remove this hack when we have a separate implementation for
37 // remote media stream tracks. Stop() can probably be made pure virtual.
38 void MediaStreamTrack::Stop() {
39 DCHECK(!is_local_track_) << "Local implementations must override Stop()";
40 // Stop means that a track should be stopped permanently. But
41 // since there is no proper way of doing that on a remote track, we can
42 // at least disable the track. Blink will not call down to the content layer
43 // after a track has been stopped.
44 SetEnabled(false);
45 }
46
47 webrtc::AudioTrackInterface* MediaStreamTrack::GetAudioAdapter() { 28 webrtc::AudioTrackInterface* MediaStreamTrack::GetAudioAdapter() {
48 DCHECK(thread_checker_.CalledOnValidThread()); 29 NOTREACHED();
49 DCHECK_EQ(track_->kind(), "audio"); 30 return nullptr;
50 return static_cast<webrtc::AudioTrackInterface*>(track_.get());
51 } 31 }
52 32
53 } // namespace content 33 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_track.h ('k') | content/renderer/media/media_stream_video_track.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698