/* * Copyright 2017 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #import "RTCPeerConnectionFactory.h" #include "api/scoped_refptr.h" namespace webrtc { class AudioDeviceModule; class AudioEncoderFactory; class AudioDecoderFactory; class NetworkControllerFactoryInterface; class VideoEncoderFactory; class VideoDecoderFactory; class AudioProcessing; struct PeerConnectionDependencies; } // namespace webrtc NS_ASSUME_NONNULL_BEGIN /** * This class extension exposes methods that work directly with injectable C++ components. */ @interface RTC_OBJC_TYPE (RTCPeerConnectionFactory) () - (instancetype)initNative NS_DESIGNATED_INITIALIZER; /* Initializer used when WebRTC is compiled with no media support */ - (instancetype)initWithNoMedia; /* Initialize object with injectable native audio/video encoder/decoder factories */ - (instancetype)initWithNativeAudioEncoderFactory: (rtc::scoped_refptr)audioEncoderFactory nativeAudioDecoderFactory: (rtc::scoped_refptr)audioDecoderFactory nativeVideoEncoderFactory: (std::unique_ptr)videoEncoderFactory nativeVideoDecoderFactory: (std::unique_ptr)videoDecoderFactory audioDeviceModule: (nullable webrtc::AudioDeviceModule *)audioDeviceModule audioProcessingModule: (rtc::scoped_refptr)audioProcessingModule; - (instancetype) initWithNativeAudioEncoderFactory: (rtc::scoped_refptr)audioEncoderFactory nativeAudioDecoderFactory: (rtc::scoped_refptr)audioDecoderFactory nativeVideoEncoderFactory: (std::unique_ptr)videoEncoderFactory nativeVideoDecoderFactory: (std::unique_ptr)videoDecoderFactory audioDeviceModule:(nullable webrtc::AudioDeviceModule *)audioDeviceModule audioProcessingModule: (rtc::scoped_refptr)audioProcessingModule networkControllerFactory:(std::unique_ptr) networkControllerFactory; - (instancetype) initWithEncoderFactory:(nullable id)encoderFactory decoderFactory:(nullable id)decoderFactory; /** Initialize an RTCPeerConnection with a configuration, constraints, and * dependencies. */ - (nullable RTC_OBJC_TYPE(RTCPeerConnection) *) peerConnectionWithDependencies:(RTC_OBJC_TYPE(RTCConfiguration) *)configuration constraints:(RTC_OBJC_TYPE(RTCMediaConstraints) *)constraints dependencies:(std::unique_ptr)dependencies delegate:(nullable id)delegate; @end NS_ASSUME_NONNULL_END