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

Side by Side Diff: webrtc/api/peerconnectionfactory.cc

Issue 1949533002: WIP: Move the creation of AudioCodecFactory into PeerConnectionFactory. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 7 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
1 /* 1 /*
2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 10 matching lines...) Expand all
21 #include "webrtc/api/peerconnection.h" 21 #include "webrtc/api/peerconnection.h"
22 #include "webrtc/api/peerconnectionfactoryproxy.h" 22 #include "webrtc/api/peerconnectionfactoryproxy.h"
23 #include "webrtc/api/peerconnectionproxy.h" 23 #include "webrtc/api/peerconnectionproxy.h"
24 #include "webrtc/api/videocapturertracksource.h" 24 #include "webrtc/api/videocapturertracksource.h"
25 #include "webrtc/api/videosourceproxy.h" 25 #include "webrtc/api/videosourceproxy.h"
26 #include "webrtc/api/videotrack.h" 26 #include "webrtc/api/videotrack.h"
27 #include "webrtc/base/bind.h" 27 #include "webrtc/base/bind.h"
28 #include "webrtc/media/engine/webrtcmediaengine.h" 28 #include "webrtc/media/engine/webrtcmediaengine.h"
29 #include "webrtc/media/engine/webrtcvideodecoderfactory.h" 29 #include "webrtc/media/engine/webrtcvideodecoderfactory.h"
30 #include "webrtc/media/engine/webrtcvideoencoderfactory.h" 30 #include "webrtc/media/engine/webrtcvideoencoderfactory.h"
31 #include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
31 #include "webrtc/modules/audio_device/include/audio_device.h" 32 #include "webrtc/modules/audio_device/include/audio_device.h"
32 #include "webrtc/p2p/base/basicpacketsocketfactory.h" 33 #include "webrtc/p2p/base/basicpacketsocketfactory.h"
33 #include "webrtc/p2p/client/basicportallocator.h" 34 #include "webrtc/p2p/client/basicportallocator.h"
34 35
35 namespace webrtc { 36 namespace webrtc {
36 37
37 namespace { 38 namespace {
38 39
39 // Passes down the calls to |store_|. See usage in CreatePeerConnection. 40 // Passes down the calls to |store_|. See usage in CreatePeerConnection.
40 class DtlsIdentityStoreWrapper : public DtlsIdentityStoreInterface { 41 class DtlsIdentityStoreWrapper : public DtlsIdentityStoreInterface {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 } 73 }
73 return PeerConnectionFactoryProxy::Create(pc_factory->signaling_thread(), 74 return PeerConnectionFactoryProxy::Create(pc_factory->signaling_thread(),
74 pc_factory); 75 pc_factory);
75 } 76 }
76 77
77 rtc::scoped_refptr<PeerConnectionFactoryInterface> 78 rtc::scoped_refptr<PeerConnectionFactoryInterface>
78 CreatePeerConnectionFactory( 79 CreatePeerConnectionFactory(
79 rtc::Thread* worker_thread, 80 rtc::Thread* worker_thread,
80 rtc::Thread* signaling_thread, 81 rtc::Thread* signaling_thread,
81 AudioDeviceModule* default_adm, 82 AudioDeviceModule* default_adm,
82 cricket::WebRtcVideoEncoderFactory* encoder_factory, 83 cricket::WebRtcVideoEncoderFactory* video_encoder_factory,
83 cricket::WebRtcVideoDecoderFactory* decoder_factory) { 84 cricket::WebRtcVideoDecoderFactory* video_decoder_factory) {
84 rtc::scoped_refptr<PeerConnectionFactory> pc_factory( 85 rtc::scoped_refptr<PeerConnectionFactory> pc_factory(
85 new rtc::RefCountedObject<PeerConnectionFactory>(worker_thread, 86 new rtc::RefCountedObject<PeerConnectionFactory>(
86 signaling_thread, 87 worker_thread,
87 default_adm, 88 signaling_thread,
88 encoder_factory, 89 default_adm,
89 decoder_factory)); 90 std::shared_ptr<AudioDecoderFactory>(
91 CreateBuiltinAudioDecoderFactory()),
92 video_encoder_factory,
93 video_decoder_factory));
90 94
91 // Call Initialize synchronously but make sure its executed on 95 // Call Initialize synchronously but make sure its executed on
92 // |signaling_thread|. 96 // |signaling_thread|.
93 MethodCall0<PeerConnectionFactory, bool> call( 97 MethodCall0<PeerConnectionFactory, bool> call(
94 pc_factory.get(), 98 pc_factory.get(),
95 &PeerConnectionFactory::Initialize); 99 &PeerConnectionFactory::Initialize);
96 bool result = call.Marshal(signaling_thread); 100 bool result = call.Marshal(signaling_thread);
97 101
98 if (!result) { 102 if (!result) {
99 return nullptr; 103 return nullptr;
(...skipping 10 matching lines...) Expand all
110 signaling_thread_ = rtc::ThreadManager::Instance()->WrapCurrentThread(); 114 signaling_thread_ = rtc::ThreadManager::Instance()->WrapCurrentThread();
111 wraps_current_thread_ = true; 115 wraps_current_thread_ = true;
112 } 116 }
113 worker_thread_->Start(); 117 worker_thread_->Start();
114 } 118 }
115 119
116 PeerConnectionFactory::PeerConnectionFactory( 120 PeerConnectionFactory::PeerConnectionFactory(
117 rtc::Thread* worker_thread, 121 rtc::Thread* worker_thread,
118 rtc::Thread* signaling_thread, 122 rtc::Thread* signaling_thread,
119 AudioDeviceModule* default_adm, 123 AudioDeviceModule* default_adm,
124 std::shared_ptr<webrtc::AudioDecoderFactory> audio_decoder_factory,
120 cricket::WebRtcVideoEncoderFactory* video_encoder_factory, 125 cricket::WebRtcVideoEncoderFactory* video_encoder_factory,
121 cricket::WebRtcVideoDecoderFactory* video_decoder_factory) 126 cricket::WebRtcVideoDecoderFactory* video_decoder_factory)
122 : owns_ptrs_(false), 127 : owns_ptrs_(false),
123 wraps_current_thread_(false), 128 wraps_current_thread_(false),
124 signaling_thread_(signaling_thread), 129 signaling_thread_(signaling_thread),
125 worker_thread_(worker_thread), 130 worker_thread_(worker_thread),
126 default_adm_(default_adm), 131 default_adm_(default_adm),
132 audio_decoder_factory_(std::move(audio_decoder_factory)),
127 video_encoder_factory_(video_encoder_factory), 133 video_encoder_factory_(video_encoder_factory),
128 video_decoder_factory_(video_decoder_factory) { 134 video_decoder_factory_(video_decoder_factory) {
129 ASSERT(worker_thread != NULL); 135 ASSERT(worker_thread != NULL);
130 ASSERT(signaling_thread != NULL); 136 ASSERT(signaling_thread != NULL);
131 // TODO: Currently there is no way creating an external adm in 137 // TODO: Currently there is no way creating an external adm in
132 // libjingle source tree. So we can 't currently assert if this is NULL. 138 // libjingle source tree. So we can 't currently assert if this is NULL.
133 // ASSERT(default_adm != NULL); 139 // ASSERT(default_adm != NULL);
134 } 140 }
135 141
136 PeerConnectionFactory::~PeerConnectionFactory() { 142 PeerConnectionFactory::~PeerConnectionFactory() {
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 } 338 }
333 339
334 rtc::Thread* PeerConnectionFactory::worker_thread() { 340 rtc::Thread* PeerConnectionFactory::worker_thread() {
335 RTC_DCHECK(signaling_thread_->IsCurrent()); 341 RTC_DCHECK(signaling_thread_->IsCurrent());
336 return worker_thread_; 342 return worker_thread_;
337 } 343 }
338 344
339 cricket::MediaEngineInterface* PeerConnectionFactory::CreateMediaEngine_w() { 345 cricket::MediaEngineInterface* PeerConnectionFactory::CreateMediaEngine_w() {
340 ASSERT(worker_thread_ == rtc::Thread::Current()); 346 ASSERT(worker_thread_ == rtc::Thread::Current());
341 return cricket::WebRtcMediaEngineFactory::Create( 347 return cricket::WebRtcMediaEngineFactory::Create(
342 default_adm_.get(), video_encoder_factory_.get(), 348 default_adm_.get(),
349 audio_decoder_factory_,
350 video_encoder_factory_.get(),
343 video_decoder_factory_.get()); 351 video_decoder_factory_.get());
344 } 352 }
345 353
346 } // namespace webrtc 354 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698