OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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_center.h" | 5 #include "content/renderer/media/media_stream_center.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 14 matching lines...) Expand all Loading... | |
25 | 25 |
26 namespace content { | 26 namespace content { |
27 | 27 |
28 static webrtc::MediaStreamInterface* GetNativeMediaStream( | 28 static webrtc::MediaStreamInterface* GetNativeMediaStream( |
29 const WebKit::WebMediaStream& stream) { | 29 const WebKit::WebMediaStream& stream) { |
30 MediaStreamExtraData* extra_data = | 30 MediaStreamExtraData* extra_data = |
31 static_cast<MediaStreamExtraData*>(stream.extraData()); | 31 static_cast<MediaStreamExtraData*>(stream.extraData()); |
32 return extra_data->stream(); | 32 return extra_data->stream(); |
33 } | 33 } |
34 | 34 |
35 | |
36 static webrtc::MediaStreamTrackInterface* GetNativeMediaStreamTrack( | 35 static webrtc::MediaStreamTrackInterface* GetNativeMediaStreamTrack( |
37 const WebKit::WebMediaStream& stream, | 36 const WebKit::WebMediaStream& stream, |
38 const WebKit::WebMediaStreamTrack& component) { | 37 const WebKit::WebMediaStreamTrack& component) { |
39 std::string track_id = UTF16ToUTF8(component.id()); | 38 std::string track_id = UTF16ToUTF8(component.id()); |
40 webrtc::MediaStreamInterface* native_stream = GetNativeMediaStream(stream); | 39 webrtc::MediaStreamInterface* native_stream = GetNativeMediaStream(stream); |
41 if (native_stream) { | 40 if (native_stream) { |
42 if (component.source().type() == WebKit::WebMediaStreamSource::TypeAudio) { | 41 if (component.source().type() == WebKit::WebMediaStreamSource::TypeAudio) { |
43 return native_stream->FindAudioTrack(track_id); | 42 return native_stream->FindAudioTrack(track_id); |
44 } | 43 } |
45 if (component.source().type() == WebKit::WebMediaStreamSource::TypeVideo) { | 44 if (component.source().type() == WebKit::WebMediaStreamSource::TypeVideo) { |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
92 extra_data->OnLocalStreamStop(); | 91 extra_data->OnLocalStreamStop(); |
93 } | 92 } |
94 | 93 |
95 void MediaStreamCenter::didCreateMediaStream( | 94 void MediaStreamCenter::didCreateMediaStream( |
96 WebKit::WebMediaStream& stream) { | 95 WebKit::WebMediaStream& stream) { |
97 if (!rtc_factory_) | 96 if (!rtc_factory_) |
98 return; | 97 return; |
99 rtc_factory_->CreateNativeLocalMediaStream(&stream); | 98 rtc_factory_->CreateNativeLocalMediaStream(&stream); |
100 } | 99 } |
101 | 100 |
101 bool MediaStreamCenter::didAddMediaStreamTrack( | |
henrika (OOO until Aug 14)
2013/04/09 16:53:43
Why do we return bool here but void for didCreateM
perkj_chrome
2013/04/10 19:58:00
Good question- this is WebKit magic. Normally an e
| |
102 const WebKit::WebMediaStream& stream, | |
103 const WebKit::WebMediaStreamTrack& track) { | |
104 if (!rtc_factory_) { | |
tommi (sloooow) - chröme
2013/04/09 13:28:49
no {}
perkj_chrome
2013/04/10 19:58:00
Done.
| |
105 return false; | |
106 } | |
107 return rtc_factory_->AddNativeLocalMediaTrack(stream, track); | |
henrika (OOO until Aug 14)
2013/04/09 16:53:43
Why is the rtc_factory used for didAdd but bot for
perkj_chrome
2013/04/10 19:58:00
make sence. Moved Removed.
| |
108 } | |
109 | |
110 bool MediaStreamCenter::didRemoveMediaStreamTrack( | |
111 const WebKit::WebMediaStream& stream, | |
112 const WebKit::WebMediaStreamTrack& track) { | |
113 webrtc::MediaStreamInterface* native_stream = GetNativeMediaStream(stream); | |
114 WebKit::WebMediaStreamSource::Type type = track.source().type(); | |
115 std::string track_id = UTF16ToUTF8(track.id()); | |
116 if (type == WebKit::WebMediaStreamSource::TypeAudio) { | |
tommi (sloooow) - chröme
2013/04/09 13:28:49
This looks a bit hard to read and spot the three r
perkj_chrome
2013/04/10 19:58:00
Done.
| |
117 webrtc::AudioTrackInterface* audio_track = | |
118 native_stream->FindAudioTrack(track_id); | |
119 return native_stream->RemoveTrack(audio_track); | |
120 } else if (type == WebKit::WebMediaStreamSource::TypeVideo) { | |
121 webrtc::VideoTrackInterface* video_track = | |
122 native_stream->FindVideoTrack(track_id); | |
123 return native_stream->RemoveTrack(video_track); | |
124 } | |
125 NOTREACHED(); | |
126 return false; | |
127 } | |
128 | |
102 } // namespace content | 129 } // namespace content |
OLD | NEW |