| 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_impl.h" | 5 #include "content/renderer/media/media_stream_impl.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 size_t pos = manager_label.rfind("#"); | 66 size_t pos = manager_label.rfind("#"); |
| 67 // If # isn't found, the string is left intact. | 67 // If # isn't found, the string is left intact. |
| 68 manager_label = manager_label.substr(0, pos); | 68 manager_label = manager_label.substr(0, pos); |
| 69 return manager_label; | 69 return manager_label; |
| 70 } | 70 } |
| 71 | 71 |
| 72 | 72 |
| 73 int MediaStreamImpl::next_request_id_ = 0; | 73 int MediaStreamImpl::next_request_id_ = 0; |
| 74 | 74 |
| 75 MediaStreamImpl::MediaStreamImpl( | 75 MediaStreamImpl::MediaStreamImpl( |
| 76 content::RenderView* render_view, |
| 76 MediaStreamDispatcher* media_stream_dispatcher, | 77 MediaStreamDispatcher* media_stream_dispatcher, |
| 77 content::P2PSocketDispatcher* p2p_socket_dispatcher, | 78 content::P2PSocketDispatcher* p2p_socket_dispatcher, |
| 78 VideoCaptureImplManager* vc_manager, | 79 VideoCaptureImplManager* vc_manager, |
| 79 MediaStreamDependencyFactory* dependency_factory) | 80 MediaStreamDependencyFactory* dependency_factory) |
| 80 : dependency_factory_(dependency_factory), | 81 : content::RenderViewObserver(render_view), |
| 82 dependency_factory_(dependency_factory), |
| 81 media_stream_dispatcher_(media_stream_dispatcher), | 83 media_stream_dispatcher_(media_stream_dispatcher), |
| 82 p2p_socket_dispatcher_(p2p_socket_dispatcher), | 84 p2p_socket_dispatcher_(p2p_socket_dispatcher), |
| 83 network_manager_(NULL), | 85 network_manager_(NULL), |
| 84 vc_manager_(vc_manager), | 86 vc_manager_(vc_manager), |
| 85 signaling_thread_(NULL), | 87 signaling_thread_(NULL), |
| 86 worker_thread_(NULL), | 88 worker_thread_(NULL), |
| 87 chrome_worker_thread_("Chrome_libJingle_WorkerThread") { | 89 chrome_worker_thread_("Chrome_libJingle_WorkerThread") { |
| 88 } | 90 } |
| 89 | 91 |
| 90 MediaStreamImpl::~MediaStreamImpl() { | 92 MediaStreamImpl::~MediaStreamImpl() { |
| (...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 if (!chrome_worker_thread_.IsRunning()) { | 455 if (!chrome_worker_thread_.IsRunning()) { |
| 454 if (!chrome_worker_thread_.Start()) { | 456 if (!chrome_worker_thread_.Start()) { |
| 455 LOG(ERROR) << "Could not start worker thread"; | 457 LOG(ERROR) << "Could not start worker thread"; |
| 456 signaling_thread_ = NULL; | 458 signaling_thread_ = NULL; |
| 457 return false; | 459 return false; |
| 458 } | 460 } |
| 459 } | 461 } |
| 460 base::WaitableEvent event(true, false); | 462 base::WaitableEvent event(true, false); |
| 461 chrome_worker_thread_.message_loop()->PostTask(FROM_HERE, base::Bind( | 463 chrome_worker_thread_.message_loop()->PostTask(FROM_HERE, base::Bind( |
| 462 &MediaStreamImpl::InitializeWorkerThread, | 464 &MediaStreamImpl::InitializeWorkerThread, |
| 463 this, | 465 base::Unretained(this), |
| 464 &worker_thread_, | 466 &worker_thread_, |
| 465 &event)); | 467 &event)); |
| 466 event.Wait(); | 468 event.Wait(); |
| 467 DCHECK(worker_thread_); | 469 DCHECK(worker_thread_); |
| 468 } | 470 } |
| 469 | 471 |
| 470 if (!network_manager_) { | 472 if (!network_manager_) { |
| 471 base::WaitableEvent event(true, false); | 473 base::WaitableEvent event(true, false); |
| 472 chrome_worker_thread_.message_loop()->PostTask(FROM_HERE, base::Bind( | 474 chrome_worker_thread_.message_loop()->PostTask(FROM_HERE, base::Bind( |
| 473 &MediaStreamImpl::CreateIpcNetworkManagerOnWorkerThread, | 475 &MediaStreamImpl::CreateIpcNetworkManagerOnWorkerThread, |
| 474 this, | 476 base::Unretained(this), |
| 475 &event)); | 477 &event)); |
| 476 event.Wait(); | 478 event.Wait(); |
| 477 } | 479 } |
| 478 | 480 |
| 479 if (!socket_factory_.get()) { | 481 if (!socket_factory_.get()) { |
| 480 socket_factory_.reset( | 482 socket_factory_.reset( |
| 481 new content::IpcPacketSocketFactory(p2p_socket_dispatcher_)); | 483 new content::IpcPacketSocketFactory(p2p_socket_dispatcher_)); |
| 482 } | 484 } |
| 483 | 485 |
| 484 if (!dependency_factory_->PeerConnectionFactoryCreated()) { | 486 if (!dependency_factory_->PeerConnectionFactoryCreated()) { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 497 } | 499 } |
| 498 | 500 |
| 499 MediaStreamImpl::VideoRendererWrapper::VideoRendererWrapper() {} | 501 MediaStreamImpl::VideoRendererWrapper::VideoRendererWrapper() {} |
| 500 | 502 |
| 501 MediaStreamImpl::VideoRendererWrapper::~VideoRendererWrapper() {} | 503 MediaStreamImpl::VideoRendererWrapper::~VideoRendererWrapper() {} |
| 502 | 504 |
| 503 void MediaStreamImpl::VideoRendererWrapper::SetVideoDecoder( | 505 void MediaStreamImpl::VideoRendererWrapper::SetVideoDecoder( |
| 504 RTCVideoDecoder* decoder) { | 506 RTCVideoDecoder* decoder) { |
| 505 rtc_video_decoder_ = decoder; | 507 rtc_video_decoder_ = decoder; |
| 506 } | 508 } |
| OLD | NEW |