Merge remote tracking branch 'upstream-master'
Bug: 153469641 Test: run cuttlefish locally Change-Id: Ida3bfe62ef5c6549278f4c155a1f690b008e9b9d
This commit is contained in:
@ -197,18 +197,6 @@ RTC_OBJC_EXPORT
|
||||
|
||||
@property(nonatomic, assign) BOOL allowCodecSwitching;
|
||||
|
||||
/**
|
||||
* If MediaTransportFactory is provided in PeerConnectionFactory, this flag informs PeerConnection
|
||||
* that it should use the MediaTransportInterface.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL useMediaTransport;
|
||||
|
||||
/**
|
||||
* If MediaTransportFactory is provided in PeerConnectionFactory, this flag informs PeerConnection
|
||||
* that it should use the MediaTransportInterface for data channels.
|
||||
*/
|
||||
@property(nonatomic, assign) BOOL useMediaTransportForDataChannels;
|
||||
|
||||
/**
|
||||
* Defines advanced optional cryptographic settings related to SRTP and
|
||||
* frame encryption for native WebRTC. Setting this will overwrite any
|
||||
|
||||
@ -52,8 +52,6 @@
|
||||
@synthesize turnCustomizer = _turnCustomizer;
|
||||
@synthesize activeResetSrtpParams = _activeResetSrtpParams;
|
||||
@synthesize allowCodecSwitching = _allowCodecSwitching;
|
||||
@synthesize useMediaTransport = _useMediaTransport;
|
||||
@synthesize useMediaTransportForDataChannels = _useMediaTransportForDataChannels;
|
||||
@synthesize cryptoOptions = _cryptoOptions;
|
||||
@synthesize rtcpAudioReportIntervalMs = _rtcpAudioReportIntervalMs;
|
||||
@synthesize rtcpVideoReportIntervalMs = _rtcpVideoReportIntervalMs;
|
||||
@ -106,8 +104,6 @@
|
||||
_iceConnectionReceivingTimeout = config.ice_connection_receiving_timeout;
|
||||
_iceBackupCandidatePairPingInterval =
|
||||
config.ice_backup_candidate_pair_ping_interval;
|
||||
_useMediaTransport = config.use_media_transport;
|
||||
_useMediaTransportForDataChannels = config.use_media_transport_for_data_channels;
|
||||
_keyType = RTCEncryptionKeyTypeECDSA;
|
||||
_iceCandidatePoolSize = config.ice_candidate_pool_size;
|
||||
_shouldPruneTurnPorts = config.prune_turn_ports;
|
||||
@ -143,7 +139,7 @@
|
||||
- (NSString *)description {
|
||||
static NSString *formatString = @"RTC_OBJC_TYPE(RTCConfiguration): "
|
||||
@"{\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%@\n%d\n%d\n%d\n%d\n%d\n%d\n"
|
||||
@"%d\n%@\n%d\n%d\n%d\n%d\n%d\n%@\n%d\n}\n";
|
||||
@"%d\n%@\n%d\n%d\n%d\n%d\n%d\n%@\n}\n";
|
||||
|
||||
return [NSString
|
||||
stringWithFormat:formatString,
|
||||
@ -169,7 +165,6 @@
|
||||
_disableIPV6OnWiFi,
|
||||
_maxIPv6Networks,
|
||||
_activeResetSrtpParams,
|
||||
_useMediaTransport,
|
||||
_enableDscp];
|
||||
}
|
||||
|
||||
@ -208,8 +203,6 @@
|
||||
_iceConnectionReceivingTimeout;
|
||||
nativeConfig->ice_backup_candidate_pair_ping_interval =
|
||||
_iceBackupCandidatePairPingInterval;
|
||||
nativeConfig->use_media_transport = _useMediaTransport;
|
||||
nativeConfig->use_media_transport_for_data_channels = _useMediaTransportForDataChannels;
|
||||
rtc::KeyType keyType =
|
||||
[[self class] nativeEncryptionKeyTypeForKeyType:_keyType];
|
||||
if (_certificate != nullptr) {
|
||||
|
||||
@ -28,7 +28,8 @@ class StatsCollectorCallbackAdapter : public RTCStatsCollectorCallback {
|
||||
|
||||
void OnStatsDelivered(const rtc::scoped_refptr<const RTCStatsReport> &report) override {
|
||||
RTC_DCHECK(completion_handler_);
|
||||
RTCStatisticsReport *statisticsReport = [[RTCStatisticsReport alloc] initWithReport:*report];
|
||||
RTC_OBJC_TYPE(RTCStatisticsReport) *statisticsReport =
|
||||
[[RTC_OBJC_TYPE(RTCStatisticsReport) alloc] initWithReport:*report];
|
||||
completion_handler_(statisticsReport);
|
||||
completion_handler_ = nil;
|
||||
}
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
@class RTC_OBJC_TYPE(RTCRtpTransceiver);
|
||||
@class RTC_OBJC_TYPE(RTCRtpTransceiverInit);
|
||||
@class RTC_OBJC_TYPE(RTCSessionDescription);
|
||||
@class RTCStatisticsReport;
|
||||
@class RTC_OBJC_TYPE(RTCStatisticsReport);
|
||||
@class RTC_OBJC_TYPE(RTCLegacyStatsReport);
|
||||
|
||||
typedef NS_ENUM(NSInteger, RTCRtpMediaType);
|
||||
@ -341,7 +341,7 @@ RTC_OBJC_EXPORT
|
||||
|
||||
@end
|
||||
|
||||
typedef void (^RTCStatisticsCompletionHandler)(RTCStatisticsReport *);
|
||||
typedef void (^RTCStatisticsCompletionHandler)(RTC_OBJC_TYPE(RTCStatisticsReport) *);
|
||||
|
||||
@interface RTC_OBJC_TYPE (RTCPeerConnection)
|
||||
(Stats)
|
||||
|
||||
@ -29,7 +29,6 @@
|
||||
|
||||
#include "api/jsep_ice_candidate.h"
|
||||
#include "api/rtc_event_log_output_file.h"
|
||||
#include "api/transport/media/media_transport_interface.h"
|
||||
#include "rtc_base/checks.h"
|
||||
#include "rtc_base/numerics/safe_conversions.h"
|
||||
|
||||
@ -559,12 +558,12 @@ void PeerConnectionDelegateAdapter::OnRemoveTrack(
|
||||
- (BOOL)setBweMinBitrateBps:(nullable NSNumber *)minBitrateBps
|
||||
currentBitrateBps:(nullable NSNumber *)currentBitrateBps
|
||||
maxBitrateBps:(nullable NSNumber *)maxBitrateBps {
|
||||
webrtc::PeerConnectionInterface::BitrateParameters params;
|
||||
webrtc::BitrateSettings params;
|
||||
if (minBitrateBps != nil) {
|
||||
params.min_bitrate_bps = absl::optional<int>(minBitrateBps.intValue);
|
||||
}
|
||||
if (currentBitrateBps != nil) {
|
||||
params.current_bitrate_bps = absl::optional<int>(currentBitrateBps.intValue);
|
||||
params.start_bitrate_bps = absl::optional<int>(currentBitrateBps.intValue);
|
||||
}
|
||||
if (maxBitrateBps != nil) {
|
||||
params.max_bitrate_bps = absl::optional<int>(maxBitrateBps.intValue);
|
||||
|
||||
@ -17,7 +17,6 @@ namespace webrtc {
|
||||
class AudioDeviceModule;
|
||||
class AudioEncoderFactory;
|
||||
class AudioDecoderFactory;
|
||||
class MediaTransportFactory;
|
||||
class NetworkControllerFactoryInterface;
|
||||
class VideoEncoderFactory;
|
||||
class VideoDecoderFactory;
|
||||
@ -53,21 +52,6 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
audioProcessingModule:
|
||||
(rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule;
|
||||
|
||||
- (instancetype)
|
||||
initWithNativeAudioEncoderFactory:
|
||||
(rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
|
||||
nativeAudioDecoderFactory:
|
||||
(rtc::scoped_refptr<webrtc::AudioDecoderFactory>)audioDecoderFactory
|
||||
nativeVideoEncoderFactory:
|
||||
(std::unique_ptr<webrtc::VideoEncoderFactory>)videoEncoderFactory
|
||||
nativeVideoDecoderFactory:
|
||||
(std::unique_ptr<webrtc::VideoDecoderFactory>)videoDecoderFactory
|
||||
audioDeviceModule:(nullable webrtc::AudioDeviceModule *)audioDeviceModule
|
||||
audioProcessingModule:
|
||||
(rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule
|
||||
mediaTransportFactory:
|
||||
(std::unique_ptr<webrtc::MediaTransportFactory>)mediaTransportFactory;
|
||||
|
||||
- (instancetype)
|
||||
initWithNativeAudioEncoderFactory:
|
||||
(rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
|
||||
@ -81,14 +65,11 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
audioProcessingModule:
|
||||
(rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule
|
||||
networkControllerFactory:(std::unique_ptr<webrtc::NetworkControllerFactoryInterface>)
|
||||
networkControllerFactory
|
||||
mediaTransportFactory:
|
||||
(std::unique_ptr<webrtc::MediaTransportFactory>)mediaTransportFactory;
|
||||
networkControllerFactory;
|
||||
|
||||
- (instancetype)
|
||||
initWithEncoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoEncoderFactory)>)encoderFactory
|
||||
decoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoDecoderFactory)>)decoderFactory
|
||||
mediaTransportFactory:(std::unique_ptr<webrtc::MediaTransportFactory>)mediaTransportFactory;
|
||||
decoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoDecoderFactory)>)decoderFactory;
|
||||
|
||||
/** Initialize an RTCPeerConnection with a configuration, constraints, and
|
||||
* dependencies.
|
||||
|
||||
@ -52,7 +52,6 @@
|
||||
// C++ target.
|
||||
// TODO(zhihuang): Remove nogncheck once MediaEngineInterface is moved to C++
|
||||
// API layer.
|
||||
#include "api/transport/media/media_transport_interface.h"
|
||||
#include "media/engine/webrtc_media_engine.h" // nogncheck
|
||||
|
||||
@implementation RTC_OBJC_TYPE (RTCPeerConnectionFactory) {
|
||||
@ -84,15 +83,13 @@
|
||||
nativeVideoDecoderFactory:webrtc::ObjCToNativeVideoDecoderFactory([[RTC_OBJC_TYPE(
|
||||
RTCVideoDecoderFactoryH264) alloc] init])
|
||||
audioDeviceModule:[self audioDeviceModule]
|
||||
audioProcessingModule:nullptr
|
||||
mediaTransportFactory:nullptr];
|
||||
audioProcessingModule:nullptr];
|
||||
#endif
|
||||
}
|
||||
|
||||
- (instancetype)
|
||||
initWithEncoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoEncoderFactory)>)encoderFactory
|
||||
decoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoDecoderFactory)>)decoderFactory
|
||||
mediaTransportFactory:(std::unique_ptr<webrtc::MediaTransportFactory>)mediaTransportFactory {
|
||||
decoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoDecoderFactory)>)decoderFactory {
|
||||
#ifdef HAVE_NO_MEDIA
|
||||
return [self initWithNoMedia];
|
||||
#else
|
||||
@ -109,18 +106,9 @@
|
||||
nativeVideoEncoderFactory:std::move(native_encoder_factory)
|
||||
nativeVideoDecoderFactory:std::move(native_decoder_factory)
|
||||
audioDeviceModule:[self audioDeviceModule]
|
||||
audioProcessingModule:nullptr
|
||||
mediaTransportFactory:std::move(mediaTransportFactory)];
|
||||
audioProcessingModule:nullptr];
|
||||
#endif
|
||||
}
|
||||
- (instancetype)
|
||||
initWithEncoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoEncoderFactory)>)encoderFactory
|
||||
decoderFactory:(nullable id<RTC_OBJC_TYPE(RTCVideoDecoderFactory)>)decoderFactory {
|
||||
return [self initWithEncoderFactory:encoderFactory
|
||||
decoderFactory:decoderFactory
|
||||
mediaTransportFactory:nullptr];
|
||||
}
|
||||
|
||||
- (instancetype)initNative {
|
||||
if (self = [super init]) {
|
||||
_networkThread = rtc::Thread::CreateWithSocketServer();
|
||||
@ -170,30 +158,7 @@
|
||||
nativeVideoDecoderFactory:std::move(videoDecoderFactory)
|
||||
audioDeviceModule:audioDeviceModule
|
||||
audioProcessingModule:audioProcessingModule
|
||||
mediaTransportFactory:nullptr];
|
||||
}
|
||||
|
||||
- (instancetype)initWithNativeAudioEncoderFactory:
|
||||
(rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
|
||||
nativeAudioDecoderFactory:
|
||||
(rtc::scoped_refptr<webrtc::AudioDecoderFactory>)audioDecoderFactory
|
||||
nativeVideoEncoderFactory:
|
||||
(std::unique_ptr<webrtc::VideoEncoderFactory>)videoEncoderFactory
|
||||
nativeVideoDecoderFactory:
|
||||
(std::unique_ptr<webrtc::VideoDecoderFactory>)videoDecoderFactory
|
||||
audioDeviceModule:(webrtc::AudioDeviceModule *)audioDeviceModule
|
||||
audioProcessingModule:
|
||||
(rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule
|
||||
mediaTransportFactory:(std::unique_ptr<webrtc::MediaTransportFactory>)
|
||||
mediaTransportFactory {
|
||||
return [self initWithNativeAudioEncoderFactory:audioEncoderFactory
|
||||
nativeAudioDecoderFactory:audioDecoderFactory
|
||||
nativeVideoEncoderFactory:std::move(videoEncoderFactory)
|
||||
nativeVideoDecoderFactory:std::move(videoDecoderFactory)
|
||||
audioDeviceModule:audioDeviceModule
|
||||
audioProcessingModule:audioProcessingModule
|
||||
networkControllerFactory:nullptr
|
||||
mediaTransportFactory:std::move(mediaTransportFactory)];
|
||||
networkControllerFactory:nullptr];
|
||||
}
|
||||
- (instancetype)initWithNativeAudioEncoderFactory:
|
||||
(rtc::scoped_refptr<webrtc::AudioEncoderFactory>)audioEncoderFactory
|
||||
@ -208,9 +173,7 @@
|
||||
(rtc::scoped_refptr<webrtc::AudioProcessing>)audioProcessingModule
|
||||
networkControllerFactory:
|
||||
(std::unique_ptr<webrtc::NetworkControllerFactoryInterface>)
|
||||
networkControllerFactory
|
||||
mediaTransportFactory:(std::unique_ptr<webrtc::MediaTransportFactory>)
|
||||
mediaTransportFactory {
|
||||
networkControllerFactory {
|
||||
if (self = [self initNative]) {
|
||||
webrtc::PeerConnectionFactoryDependencies dependencies;
|
||||
dependencies.network_thread = _networkThread.get();
|
||||
@ -235,7 +198,6 @@
|
||||
dependencies.event_log_factory =
|
||||
std::make_unique<webrtc::RtcEventLogFactory>(dependencies.task_queue_factory.get());
|
||||
dependencies.network_controller_factory = std::move(networkControllerFactory);
|
||||
dependencies.media_transport_factory = std::move(mediaTransportFactory);
|
||||
#endif
|
||||
_nativeFactory = webrtc::CreateModularPeerConnectionFactory(std::move(dependencies));
|
||||
NSAssert(_nativeFactory, @"Failed to initialize PeerConnectionFactory!");
|
||||
|
||||
@ -13,7 +13,6 @@
|
||||
|
||||
#include "api/audio_codecs/audio_decoder_factory.h"
|
||||
#include "api/audio_codecs/audio_encoder_factory.h"
|
||||
#include "api/transport/media/media_transport_interface.h"
|
||||
#include "api/video_codecs/video_decoder_factory.h"
|
||||
#include "api/video_codecs/video_encoder_factory.h"
|
||||
#include "modules/audio_device/include/audio_device.h"
|
||||
@ -26,7 +25,6 @@
|
||||
rtc::scoped_refptr<webrtc::AudioDecoderFactory> _audioDecoderFactory;
|
||||
rtc::scoped_refptr<webrtc::AudioDeviceModule> _audioDeviceModule;
|
||||
rtc::scoped_refptr<webrtc::AudioProcessing> _audioProcessingModule;
|
||||
std::unique_ptr<webrtc::MediaTransportFactory> _mediaTransportFactory;
|
||||
}
|
||||
|
||||
+ (RTCPeerConnectionFactoryBuilder *)builder {
|
||||
@ -41,8 +39,7 @@
|
||||
nativeVideoEncoderFactory:std::move(_videoEncoderFactory)
|
||||
nativeVideoDecoderFactory:std::move(_videoDecoderFactory)
|
||||
audioDeviceModule:_audioDeviceModule
|
||||
audioProcessingModule:_audioProcessingModule
|
||||
mediaTransportFactory:std::move(_mediaTransportFactory)];
|
||||
audioProcessingModule:_audioProcessingModule];
|
||||
}
|
||||
|
||||
- (void)setVideoEncoderFactory:(std::unique_ptr<webrtc::VideoEncoderFactory>)videoEncoderFactory {
|
||||
|
||||
@ -21,8 +21,8 @@ RTC_OBJC_EXPORT
|
||||
@protocol RTC_OBJC_TYPE
|
||||
(RTCRtpSender)<NSObject>
|
||||
|
||||
/** A unique identifier for this sender. */
|
||||
@property(nonatomic, readonly) NSString *senderId;
|
||||
/** A unique identifier for this sender. */
|
||||
@property(nonatomic, readonly) NSString *senderId;
|
||||
|
||||
/** The currently active RTCRtpParameters, as defined in
|
||||
* https://www.w3.org/TR/webrtc/#idl-def-RTCRtpParameters.
|
||||
|
||||
@ -12,8 +12,8 @@
|
||||
|
||||
#include "api/stats/rtc_stats_report.h"
|
||||
|
||||
@interface RTCStatisticsReport (Private)
|
||||
@interface RTC_OBJC_TYPE (RTCStatisticsReport) (Private)
|
||||
|
||||
- (instancetype)initWithReport:(const webrtc::RTCStatsReport &)report;
|
||||
- (instancetype)initWithReport : (const webrtc::RTCStatsReport &)report;
|
||||
|
||||
@end
|
||||
|
||||
@ -10,25 +10,29 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@class RTCStatistics;
|
||||
#import "RTCMacros.h"
|
||||
|
||||
@class RTC_OBJC_TYPE(RTCStatistics);
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** A statistics report. Encapsulates a number of RTCStatistics objects. */
|
||||
@interface RTCStatisticsReport : NSObject
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTC_OBJC_TYPE (RTCStatisticsReport) : NSObject
|
||||
|
||||
/** The timestamp of the report in microseconds since 1970-01-01T00:00:00Z. */
|
||||
@property(nonatomic, readonly) CFTimeInterval timestamp_us;
|
||||
|
||||
/** RTCStatistics objects by id. */
|
||||
@property(nonatomic, readonly) NSDictionary<NSString *, RTCStatistics *> *statistics;
|
||||
@property(nonatomic, readonly) NSDictionary<NSString *, RTC_OBJC_TYPE(RTCStatistics) *> *statistics;
|
||||
|
||||
- (instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
@end
|
||||
|
||||
/** A part of a report (a subreport) covering a certain area. */
|
||||
@interface RTCStatistics : NSObject
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTC_OBJC_TYPE (RTCStatistics) : NSObject
|
||||
|
||||
/** The id of this subreport, e.g. "RTCMediaStreamTrack_receiver_2". */
|
||||
@property(nonatomic, readonly) NSString *id;
|
||||
|
||||
@ -100,7 +100,7 @@ NSObject *ValueFromStatsMember(const RTCStatsMemberInterface *member) {
|
||||
}
|
||||
} // namespace webrtc
|
||||
|
||||
@implementation RTCStatistics
|
||||
@implementation RTC_OBJC_TYPE (RTCStatistics)
|
||||
|
||||
@synthesize id = _id;
|
||||
@synthesize timestamp_us = _timestamp_us;
|
||||
@ -139,7 +139,7 @@ NSObject *ValueFromStatsMember(const RTCStatsMemberInterface *member) {
|
||||
|
||||
@end
|
||||
|
||||
@implementation RTCStatisticsReport
|
||||
@implementation RTC_OBJC_TYPE (RTCStatisticsReport)
|
||||
|
||||
@synthesize timestamp_us = _timestamp_us;
|
||||
@synthesize statistics = _statistics;
|
||||
@ -151,16 +151,17 @@ NSObject *ValueFromStatsMember(const RTCStatsMemberInterface *member) {
|
||||
|
||||
@end
|
||||
|
||||
@implementation RTCStatisticsReport (Private)
|
||||
@implementation RTC_OBJC_TYPE (RTCStatisticsReport) (Private)
|
||||
|
||||
- (instancetype)initWithReport:(const webrtc::RTCStatsReport &)report {
|
||||
- (instancetype)initWithReport : (const webrtc::RTCStatsReport &)report {
|
||||
if (self = [super init]) {
|
||||
_timestamp_us = report.timestamp_us();
|
||||
|
||||
NSMutableDictionary *statisticsById =
|
||||
[NSMutableDictionary dictionaryWithCapacity:report.size()];
|
||||
for (const auto &stat : report) {
|
||||
RTCStatistics *statistics = [[RTCStatistics alloc] initWithStatistics:stat];
|
||||
RTC_OBJC_TYPE(RTCStatistics) *statistics =
|
||||
[[RTC_OBJC_TYPE(RTCStatistics) alloc] initWithStatistics:stat];
|
||||
statisticsById[statistics.id] = statistics;
|
||||
}
|
||||
_statistics = [statisticsById copy];
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
|
||||
#include "rtc_base/atomic_ops.h"
|
||||
#include "rtc_base/checks.h"
|
||||
#include "rtc_base/critical_section.h"
|
||||
#include "rtc_base/deprecated/recursive_critical_section.h"
|
||||
|
||||
#import "RTCAudioSessionConfiguration.h"
|
||||
#import "base/RTCLogging.h"
|
||||
@ -35,7 +35,7 @@ NSString * const kRTCAudioSessionOutputVolumeSelector = @"outputVolume";
|
||||
// TODO(tkchin): Consider more granular locking. We're not expecting a lot of
|
||||
// lock contention so coarse locks should be fine for now.
|
||||
@implementation RTC_OBJC_TYPE (RTCAudioSession) {
|
||||
rtc::CriticalSection _crit;
|
||||
rtc::RecursiveCriticalSection _crit;
|
||||
AVAudioSession *_session;
|
||||
volatile int _activationCount;
|
||||
volatile int _lockRecursionCount;
|
||||
|
||||
@ -21,7 +21,6 @@
|
||||
#include "rtc_base/atomic_ops.h"
|
||||
#include "rtc_base/bind.h"
|
||||
#include "rtc_base/checks.h"
|
||||
#include "rtc_base/critical_section.h"
|
||||
#include "rtc_base/logging.h"
|
||||
#include "rtc_base/thread.h"
|
||||
#include "rtc_base/thread_annotations.h"
|
||||
|
||||
@ -19,7 +19,6 @@
|
||||
#include "modules/audio_device/audio_device_buffer.h"
|
||||
#include "modules/audio_device/include/audio_device.h"
|
||||
#include "rtc_base/checks.h"
|
||||
#include "rtc_base/critical_section.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
|
||||
@ -22,7 +22,6 @@ extern "C" {
|
||||
|
||||
#include "api/audio_codecs/builtin_audio_decoder_factory.h"
|
||||
#include "api/audio_codecs/builtin_audio_encoder_factory.h"
|
||||
#include "api/transport/media/media_transport_interface.h"
|
||||
#include "api/video_codecs/video_decoder_factory.h"
|
||||
#include "api/video_codecs/video_encoder_factory.h"
|
||||
#include "modules/audio_device/include/audio_device.h"
|
||||
@ -50,8 +49,7 @@ extern "C" {
|
||||
nativeVideoEncoderFactory:nullptr
|
||||
nativeVideoDecoderFactory:nullptr
|
||||
audioDeviceModule:nullptr
|
||||
audioProcessingModule:nullptr
|
||||
mediaTransportFactory:nullptr]);
|
||||
audioProcessingModule:nullptr]);
|
||||
#endif
|
||||
RTCPeerConnectionFactoryBuilder* builder = [[RTCPeerConnectionFactoryBuilder alloc] init];
|
||||
RTC_OBJC_TYPE(RTCPeerConnectionFactory)* peerConnectionFactory =
|
||||
@ -72,8 +70,7 @@ extern "C" {
|
||||
nativeVideoEncoderFactory:nullptr
|
||||
nativeVideoDecoderFactory:nullptr
|
||||
audioDeviceModule:nullptr
|
||||
audioProcessingModule:nullptr
|
||||
mediaTransportFactory:nullptr]);
|
||||
audioProcessingModule:nullptr]);
|
||||
#endif
|
||||
RTCPeerConnectionFactoryBuilder* builder = [RTCPeerConnectionFactoryBuilder defaultBuilder];
|
||||
RTC_OBJC_TYPE(RTCPeerConnectionFactory)* peerConnectionFactory =
|
||||
|
||||
Reference in New Issue
Block a user