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

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

Issue 8060055: Adding support for MediaStream and PeerConnection functionality (Closed) Base URL: http://git.chromium.org/chromium/chromium.git@trunk
Patch Set: Merge Created 8 years, 11 months 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "content/renderer/media/media_stream_dependency_factory.h"
6
7 #include "content/renderer/media/video_capture_module_impl.h"
8 #include "content/renderer/media/webrtc_audio_device_impl.h"
9 #include "content/renderer/p2p/ipc_network_manager.h"
10 #include "content/renderer/p2p/ipc_socket_factory.h"
11 #include "content/renderer/p2p/port_allocator.h"
12 #include "jingle/glue/thread_wrapper.h"
13 #include "third_party/libjingle/source/talk/app/webrtc/peerconnection.h"
14 #include "third_party/libjingle/source/talk/session/phone/dummydevicemanager.h"
15 #include "third_party/libjingle/source/talk/session/phone/webrtcmediaengine.h"
16 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
17
18 MediaStreamDependencyFactory::MediaStreamDependencyFactory() {}
19
20 MediaStreamDependencyFactory::~MediaStreamDependencyFactory() {}
21
22 cricket::WebRtcMediaEngine*
23 MediaStreamDependencyFactory::CreateWebRtcMediaEngine() {
24 webrtc::AudioDeviceModule* adm = new WebRtcAudioDeviceImpl();
25 webrtc::AudioDeviceModule* adm_sc = new WebRtcAudioDeviceImpl();
26 return new cricket::WebRtcMediaEngine(adm, adm_sc, NULL);
27 }
28
29 bool MediaStreamDependencyFactory::CreatePeerConnectionFactory(
30 cricket::MediaEngineInterface* media_engine,
31 talk_base::Thread* worker_thread) {
32 if (!pc_factory_.get()) {
33 scoped_ptr<webrtc::PeerConnectionFactory> factory(
34 new webrtc::PeerConnectionFactory(media_engine,
35 new cricket::DummyDeviceManager(),
36 worker_thread));
37 if (factory->Initialize())
38 pc_factory_.reset(factory.release());
39 }
40 return pc_factory_.get() != NULL;
41 }
42
43 void MediaStreamDependencyFactory::DeletePeerConnectionFactory() {
44 pc_factory_.reset();
45 }
46
47 bool MediaStreamDependencyFactory::PeerConnectionFactoryCreated() {
48 return pc_factory_.get() != NULL;
49 }
50
51 cricket::PortAllocator* MediaStreamDependencyFactory::CreatePortAllocator(
52 content::P2PSocketDispatcher* socket_dispatcher,
53 talk_base::NetworkManager* network_manager,
54 talk_base::PacketSocketFactory* socket_factory,
55 const webkit_glue::P2PTransport::Config& config) {
56 WebKit::WebFrame* web_frame = WebKit::WebFrame::frameForCurrentContext();
57 if (!web_frame) {
58 DVLOG(1) << "WebFrame is NULL.";
59 return NULL;
60 }
61 return new content::P2PPortAllocator(web_frame,
62 socket_dispatcher,
63 network_manager,
64 socket_factory,
65 config);
66 }
67
68 webrtc::PeerConnection* MediaStreamDependencyFactory::CreatePeerConnection(
69 cricket::PortAllocator* port_allocator,
70 talk_base::Thread* signaling_thread) {
71 return pc_factory_->CreatePeerConnection(port_allocator, signaling_thread);
72 }
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_dependency_factory.h ('k') | content/renderer/media/media_stream_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698