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_dependency_factory.h" | 5 #include "content/renderer/media/media_stream_dependency_factory.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/synchronization/waitable_event.h" | 9 #include "base/synchronization/waitable_event.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
11 #include "content/renderer/media/media_stream_extra_data.h" | |
12 #include "content/renderer/media/media_stream_source_extra_data.h" | 11 #include "content/renderer/media/media_stream_source_extra_data.h" |
13 #include "content/renderer/media/peer_connection_handler_jsep.h" | 12 #include "content/renderer/media/peer_connection_handler_jsep.h" |
14 #include "content/renderer/media/rtc_peer_connection_handler.h" | 13 #include "content/renderer/media/rtc_peer_connection_handler.h" |
15 #include "content/renderer/media/rtc_video_capturer.h" | 14 #include "content/renderer/media/rtc_video_capturer.h" |
16 #include "content/renderer/media/video_capture_impl_manager.h" | 15 #include "content/renderer/media/video_capture_impl_manager.h" |
17 #include "content/renderer/media/webrtc_audio_device_impl.h" | 16 #include "content/renderer/media/webrtc_audio_device_impl.h" |
18 #include "content/renderer/media/webrtc_uma_histograms.h" | 17 #include "content/renderer/media/webrtc_uma_histograms.h" |
19 #include "content/renderer/p2p/ipc_network_manager.h" | 18 #include "content/renderer/p2p/ipc_network_manager.h" |
20 #include "content/renderer/p2p/ipc_socket_factory.h" | 19 #include "content/renderer/p2p/ipc_socket_factory.h" |
21 #include "content/renderer/p2p/port_allocator.h" | 20 #include "content/renderer/p2p/port_allocator.h" |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 CreateLocalVideoTrack(UTF16ToUTF8(source.id()), | 172 CreateLocalVideoTrack(UTF16ToUTF8(source.id()), |
174 source_data->device_info().session_id)); | 173 source_data->device_info().session_id)); |
175 native_stream->AddTrack(video_track); | 174 native_stream->AddTrack(video_track); |
176 video_track->set_enabled(video_components[i].isEnabled()); | 175 video_track->set_enabled(video_components[i].isEnabled()); |
177 } | 176 } |
178 | 177 |
179 description->setExtraData(new MediaStreamExtraData(native_stream)); | 178 description->setExtraData(new MediaStreamExtraData(native_stream)); |
180 return true; | 179 return true; |
181 } | 180 } |
182 | 181 |
| 182 bool MediaStreamDependencyFactory::CreateNativeLocalMediaStream( |
| 183 WebKit::WebMediaStreamDescriptor* description, |
| 184 const MediaStreamExtraData::StreamStopCallback& stream_stop) { |
| 185 if(!CreateNativeLocalMediaStream(description)) |
| 186 return false; |
| 187 |
| 188 MediaStreamExtraData* extra_data = |
| 189 static_cast<MediaStreamExtraData*>(description->extraData()); |
| 190 extra_data->SetLocalStreamStopCallback(stream_stop); |
| 191 return true; |
| 192 } |
| 193 |
183 bool MediaStreamDependencyFactory::CreatePeerConnectionFactory( | 194 bool MediaStreamDependencyFactory::CreatePeerConnectionFactory( |
184 talk_base::Thread* worker_thread, | 195 talk_base::Thread* worker_thread, |
185 talk_base::Thread* signaling_thread, | 196 talk_base::Thread* signaling_thread, |
186 content::P2PSocketDispatcher* socket_dispatcher, | 197 content::P2PSocketDispatcher* socket_dispatcher, |
187 talk_base::NetworkManager* network_manager, | 198 talk_base::NetworkManager* network_manager, |
188 talk_base::PacketSocketFactory* socket_factory) { | 199 talk_base::PacketSocketFactory* socket_factory) { |
189 if (!pc_factory_.get()) { | 200 if (!pc_factory_.get()) { |
190 scoped_refptr<P2PPortAllocatorFactory> pa_factory = | 201 scoped_refptr<P2PPortAllocatorFactory> pa_factory = |
191 new talk_base::RefCountedObject<P2PPortAllocatorFactory>( | 202 new talk_base::RefCountedObject<P2PPortAllocatorFactory>( |
192 socket_dispatcher, | 203 socket_dispatcher, |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 base::Unretained(this))); | 372 base::Unretained(this))); |
362 // Stopping the thread will wait until all tasks have been | 373 // Stopping the thread will wait until all tasks have been |
363 // processed before returning. We wait for the above task to finish before | 374 // processed before returning. We wait for the above task to finish before |
364 // letting the the function continue to avoid any potential race issues. | 375 // letting the the function continue to avoid any potential race issues. |
365 chrome_worker_thread_.Stop(); | 376 chrome_worker_thread_.Stop(); |
366 } else { | 377 } else { |
367 NOTREACHED() << "Worker thread not running."; | 378 NOTREACHED() << "Worker thread not running."; |
368 } | 379 } |
369 } | 380 } |
370 } | 381 } |
OLD | NEW |