Index: webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm |
diff --git a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm |
index a883587af26516979507fec961502d6229453560..7145e1d18d86c3c5deeca7f88556b0a0a135680c 100644 |
--- a/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm |
+++ b/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCPeerConnectionFactory.mm |
@@ -24,6 +24,10 @@ |
#include "Video/objcvideotracksource.h" |
#include "VideoToolbox/videocodecfactory.h" |
#include "webrtc/api/videosourceproxy.h" |
+// Adding the nogncheck to disable the including header check. |
+// The no-media version PeerConnectionFactory doesn't depend on media related C++ target. |
tommi
2017/06/28 15:06:45
please run |git cl format|
Zhi Huang
2017/06/28 19:47:10
This is what I got after git cl format. It seems t
|
+// TODO(zhihuang): Remove nogncheck once MediaEngineInterface is moved to C++ API layer. |
+#include "webrtc/media/engine/webrtcmediaengine.h" // nogncheck |
@implementation RTCPeerConnectionFactory { |
std::unique_ptr<rtc::Thread> _networkThread; |
@@ -47,7 +51,21 @@ |
_signalingThread = rtc::Thread::Create(); |
result = _signalingThread->Start(); |
NSAssert(result, @"Failed to start signaling thread."); |
- |
+#ifdef HAVE_NO_MEDIA |
+ _nativeFactory = webrtc::CreateModularPeerConnectionFactory( |
+ _networkThread.get(), |
+ _workerThread.get(), |
+ _signalingThread.get(), |
+ nullptr /*default_adm*/, |
tommi
2017/06/28 15:06:45
can we use // comment style?
nullptr, // default
Zhi Huang
2017/06/28 19:47:10
Yeah, sure. Done.
|
+ nullptr /*audio_encoder_factory*/, |
+ nullptr /*audio_decoder_factory*/, |
+ nullptr /*video_encoder_factory*/, |
+ nullptr /*video_decoder_factory*/, |
+ nullptr /*audio_mixer*/, |
+ std::unique_ptr<cricket::MediaEngineInterface>(), |
+ std::unique_ptr<webrtc::CallFactoryInterface>(), |
+ std::unique_ptr<webrtc::RtcEventLogFactoryInterface>()); |
+#else |
const auto encoder_factory = new webrtc::VideoToolboxVideoEncoderFactory(); |
const auto decoder_factory = new webrtc::VideoToolboxVideoDecoderFactory(); |
@@ -56,6 +74,7 @@ |
_nativeFactory = webrtc::CreatePeerConnectionFactory( |
_networkThread.get(), _workerThread.get(), _signalingThread.get(), |
nullptr, encoder_factory, decoder_factory); |
+#endif |
NSAssert(_nativeFactory, @"Failed to initialize PeerConnectionFactory!"); |
} |
return self; |
@@ -85,8 +104,11 @@ |
- (RTCAVFoundationVideoSource *)avFoundationVideoSourceWithConstraints: |
(nullable RTCMediaConstraints *)constraints { |
- return [[RTCAVFoundationVideoSource alloc] initWithFactory:self |
- constraints:constraints]; |
+#ifdef HAVE_NO_MEDIA |
+ return nil; |
+#else |
+ return [[RTCAVFoundationVideoSource alloc] initWithFactory:self constraints:constraints]; |
+#endif |
} |
- (RTCVideoSource *)videoSource { |