| OLD | NEW |
| 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.h" | 5 #include "content/renderer/media/media_stream.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "content/renderer/media/media_stream_dependency_factory.h" | 8 #include "content/renderer/media/media_stream_dependency_factory.h" |
| 9 #include "third_party/WebKit/public/platform/WebString.h" | 9 #include "third_party/WebKit/public/platform/WebString.h" |
| 10 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" | 10 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" |
| 11 | 11 |
| 12 namespace content { | 12 namespace content { |
| 13 | 13 |
| 14 // static | 14 // static |
| 15 MediaStream* MediaStream::GetMediaStream( | 15 MediaStream* MediaStream::GetMediaStream( |
| 16 const blink::WebMediaStream& stream) { | 16 const blink::WebMediaStream& stream) { |
| 17 return static_cast<MediaStream*>(stream.extraData()); | 17 return static_cast<MediaStream*>(stream.extraData()); |
| 18 } | 18 } |
| 19 | 19 |
| 20 // static | 20 // static |
| 21 webrtc::MediaStreamInterface* MediaStream::GetAdapter( | 21 webrtc::MediaStreamInterface* MediaStream::GetAdapter( |
| 22 const blink::WebMediaStream& stream) { | 22 const blink::WebMediaStream& stream) { |
| 23 MediaStream* native_stream = GetMediaStream(stream); | 23 MediaStream* native_stream = GetMediaStream(stream); |
| 24 DCHECK(native_stream); | 24 DCHECK(native_stream); |
| 25 return native_stream->GetWebRtcAdapter(stream); | 25 return native_stream->GetWebRtcAdapter(stream); |
| 26 } | 26 } |
| 27 | 27 |
| 28 MediaStream::MediaStream(MediaStreamDependencyFactory* factory, | 28 MediaStream::MediaStream(MediaStreamDependencyFactory* factory, |
| 29 StreamStopCallback stream_stop, | |
| 30 const blink::WebMediaStream& stream) | 29 const blink::WebMediaStream& stream) |
| 31 : stream_stop_callback_(stream_stop), | 30 : stream_adapter_(NULL), |
| 32 stream_adapter_(NULL), | |
| 33 is_local_(true), | 31 is_local_(true), |
| 34 label_(stream.id().utf8()), | 32 label_(stream.id().utf8()), |
| 35 factory_(factory) { | 33 factory_(factory) { |
| 36 DCHECK(factory_); | 34 DCHECK(factory_); |
| 37 } | 35 } |
| 38 | 36 |
| 39 MediaStream::MediaStream(webrtc::MediaStreamInterface* stream) | 37 MediaStream::MediaStream(webrtc::MediaStreamInterface* stream) |
| 40 : stream_adapter_(stream), | 38 : stream_adapter_(stream), |
| 41 is_local_(false), | 39 is_local_(false), |
| 42 factory_(NULL) { | 40 factory_(NULL) { |
| 43 DCHECK(stream); | 41 DCHECK(stream); |
| 44 } | 42 } |
| 45 | 43 |
| 46 MediaStream::~MediaStream() { | 44 MediaStream::~MediaStream() { |
| 47 } | 45 } |
| 48 | 46 |
| 49 void MediaStream::OnStreamStopped() { | |
| 50 if (!stream_stop_callback_.is_null()) | |
| 51 stream_stop_callback_.Run(label_); | |
| 52 } | |
| 53 | |
| 54 webrtc::MediaStreamInterface* MediaStream::GetWebRtcAdapter( | 47 webrtc::MediaStreamInterface* MediaStream::GetWebRtcAdapter( |
| 55 const blink::WebMediaStream& stream) { | 48 const blink::WebMediaStream& stream) { |
| 56 if (!stream_adapter_) { | 49 if (!stream_adapter_) { |
| 57 DCHECK(is_local_); | 50 DCHECK(is_local_); |
| 58 stream_adapter_ = factory_->CreateNativeLocalMediaStream(stream); | 51 stream_adapter_ = factory_->CreateNativeLocalMediaStream(stream); |
| 59 } | 52 } |
| 60 DCHECK(stream_adapter_); | 53 DCHECK(stream_adapter_); |
| 61 return stream_adapter_.get(); | 54 return stream_adapter_.get(); |
| 62 } | 55 } |
| 63 | 56 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 75 bool MediaStream::RemoveTrack(const blink::WebMediaStream& stream, | 68 bool MediaStream::RemoveTrack(const blink::WebMediaStream& stream, |
| 76 const blink::WebMediaStreamTrack& track) { | 69 const blink::WebMediaStreamTrack& track) { |
| 77 // If the libjingle representation of the stream has not been created, it | 70 // If the libjingle representation of the stream has not been created, it |
| 78 // does not matter if the tracks are added or removed. | 71 // does not matter if the tracks are added or removed. |
| 79 if (!stream_adapter_) | 72 if (!stream_adapter_) |
| 80 return true; | 73 return true; |
| 81 return factory_->RemoveNativeMediaStreamTrack(stream, track); | 74 return factory_->RemoveNativeMediaStreamTrack(stream, track); |
| 82 } | 75 } |
| 83 | 76 |
| 84 } // namespace content | 77 } // namespace content |
| OLD | NEW |