From c27034b6948bd7fcfecf04a7934e6eeeeb7ab263 Mon Sep 17 00:00:00 2001 From: Manashi Sarkar Date: Fri, 29 Sep 2023 11:57:53 +0000 Subject: [PATCH] Revert "Expose getCapabilities/setCodecPreferences for objc" This reverts commit a2f30e1a7508c25c1402ee756b8fe948cbb53e7c. Reason for revert: Breaks downstream project. Original change's description: > Expose getCapabilities/setCodecPreferences for objc > > Bug: None > Change-Id: I31cf22bae595cf2b995ff648523d25485106fcd5 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/305200 > Reviewed-by: Magnus Jedvert > Reviewed-by: Peter Hanspers > Commit-Queue: Peter Hanspers > Cr-Commit-Position: refs/heads/main@{#40841} Bug: None Change-Id: I60d65cdb674a7fb535a9f8e91f346f50c396744d No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/322000 Reviewed-by: Artem Titov Commit-Queue: Artem Titov Bot-Commit: rubber-stamper@appspot.gserviceaccount.com Reviewed-by: Mirko Bonadei Auto-Submit: Manashi Sarkar Owners-Override: Artem Titov Cr-Commit-Position: refs/heads/main@{#40842} --- sdk/BUILD.gn | 10 -- .../peerconnection/RTCPeerConnectionFactory.h | 8 -- .../RTCPeerConnectionFactory.mm | 16 --- .../RTCRtpCapabilities+Private.h | 29 ---- .../api/peerconnection/RTCRtpCapabilities.h | 28 ---- .../api/peerconnection/RTCRtpCapabilities.mm | 44 ------ .../RTCRtpCodecCapability+Private.h | 27 ---- .../peerconnection/RTCRtpCodecCapability.h | 54 ------- .../peerconnection/RTCRtpCodecCapability.mm | 132 ------------------ .../api/peerconnection/RTCRtpTransceiver.h | 18 --- .../api/peerconnection/RTCRtpTransceiver.mm | 36 ----- 11 files changed, 402 deletions(-) delete mode 100644 sdk/objc/api/peerconnection/RTCRtpCapabilities+Private.h delete mode 100644 sdk/objc/api/peerconnection/RTCRtpCapabilities.h delete mode 100644 sdk/objc/api/peerconnection/RTCRtpCapabilities.mm delete mode 100644 sdk/objc/api/peerconnection/RTCRtpCodecCapability+Private.h delete mode 100644 sdk/objc/api/peerconnection/RTCRtpCodecCapability.h delete mode 100644 sdk/objc/api/peerconnection/RTCRtpCodecCapability.mm diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn index f86c1ec071..4f5ceb5ed3 100644 --- a/sdk/BUILD.gn +++ b/sdk/BUILD.gn @@ -991,12 +991,6 @@ if (is_ios || is_mac) { "objc/api/peerconnection/RTCRtcpParameters+Private.h", "objc/api/peerconnection/RTCRtcpParameters.h", "objc/api/peerconnection/RTCRtcpParameters.mm", - "objc/api/peerconnection/RTCRtpCapabilities+Private.h", - "objc/api/peerconnection/RTCRtpCapabilities.h", - "objc/api/peerconnection/RTCRtpCapabilities.mm", - "objc/api/peerconnection/RTCRtpCodecCapability+Private.h", - "objc/api/peerconnection/RTCRtpCodecCapability.h", - "objc/api/peerconnection/RTCRtpCodecCapability.mm", "objc/api/peerconnection/RTCRtpCodecParameters+Private.h", "objc/api/peerconnection/RTCRtpCodecParameters.h", "objc/api/peerconnection/RTCRtpCodecParameters.mm", @@ -1315,8 +1309,6 @@ if (is_ios || is_mac) { "objc/api/peerconnection/RTCPeerConnectionFactory.h", "objc/api/peerconnection/RTCPeerConnectionFactoryOptions.h", "objc/api/peerconnection/RTCRtcpParameters.h", - "objc/api/peerconnection/RTCRtpCapabilities.h", - "objc/api/peerconnection/RTCRtpCodecCapability.h", "objc/api/peerconnection/RTCRtpCodecParameters.h", "objc/api/peerconnection/RTCRtpEncodingParameters.h", "objc/api/peerconnection/RTCRtpHeaderExtension.h", @@ -1431,8 +1423,6 @@ if (is_ios || is_mac) { "objc/api/peerconnection/RTCPeerConnectionFactory.h", "objc/api/peerconnection/RTCPeerConnectionFactoryOptions.h", "objc/api/peerconnection/RTCRtcpParameters.h", - "objc/api/peerconnection/RTCRtpCapabilities.h", - "objc/api/peerconnection/RTCRtpCodecCapability.h", "objc/api/peerconnection/RTCRtpCodecParameters.h", "objc/api/peerconnection/RTCRtpEncodingParameters.h", "objc/api/peerconnection/RTCRtpHeaderExtension.h", diff --git a/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.h b/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.h index 41d1ab1c1d..5575af98c9 100644 --- a/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.h +++ b/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.h @@ -23,8 +23,6 @@ NS_ASSUME_NONNULL_BEGIN @class RTC_OBJC_TYPE(RTCVideoSource); @class RTC_OBJC_TYPE(RTCVideoTrack); @class RTC_OBJC_TYPE(RTCPeerConnectionFactoryOptions); -@class RTC_OBJC_TYPE(RTCRtpCapabilities); -typedef NS_ENUM(NSInteger, RTCRtpMediaType); @protocol RTC_OBJC_TYPE (RTCPeerConnectionDelegate); @protocol RTC_OBJC_TYPE @@ -101,12 +99,6 @@ RTC_OBJC_EXPORT (id)certificateVerifier delegate:(nullable id)delegate; -/** Returns the capabilities of an RTP sender for a specific mediaType. */ -- (RTC_OBJC_TYPE(RTCRtpCapabilities) *)rtpSenderCapabilitiesFor:(RTCRtpMediaType)mediaType; - -/** Returns the capabilities of an RTP receiver for a specific mediaType. */ -- (RTC_OBJC_TYPE(RTCRtpCapabilities) *)rtpReceiverCapabilitiesFor:(RTCRtpMediaType)mediaType; - /** Set the options to be used for subsequently created RTCPeerConnections */ - (void)setOptions:(nonnull RTC_OBJC_TYPE(RTCPeerConnectionFactoryOptions) *)options; diff --git a/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm b/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm index fe77ff1634..62b55543d4 100644 --- a/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm +++ b/sdk/objc/api/peerconnection/RTCPeerConnectionFactory.mm @@ -19,10 +19,6 @@ #import "RTCMediaConstraints+Private.h" #import "RTCMediaStream+Private.h" #import "RTCPeerConnection+Private.h" -#import "RTCRtpCapabilities+Private.h" -#import "RTCRtpCodecCapability+Private.h" -#import "RTCRtpReceiver+Private.h" -#import "RTCRtpSender+Private.h" #import "RTCVideoSource+Private.h" #import "RTCVideoTrack+Private.h" #import "base/RTCLogging.h" @@ -307,18 +303,6 @@ delegate:delegate]; } -- (RTC_OBJC_TYPE(RTCRtpCapabilities) *)rtpSenderCapabilitiesFor:(RTCRtpMediaType)mediaType { - webrtc::RtpCapabilities capabilities = _nativeFactory->GetRtpSenderCapabilities( - [RTCRtpReceiver nativeMediaTypeForMediaType:mediaType]); - return [[RTCRtpCapabilities alloc] initWithNativeCapabilities:capabilities]; -} - -- (RTC_OBJC_TYPE(RTCRtpCapabilities) *)rtpReceiverCapabilitiesFor:(RTCRtpMediaType)mediaType { - webrtc::RtpCapabilities capabilities = _nativeFactory->GetRtpReceiverCapabilities( - [RTCRtpReceiver nativeMediaTypeForMediaType:mediaType]); - return [[RTCRtpCapabilities alloc] initWithNativeCapabilities:capabilities]; -} - - (void)setOptions:(nonnull RTC_OBJC_TYPE(RTCPeerConnectionFactoryOptions) *)options { RTC_DCHECK(options != nil); _nativeFactory->SetOptions(options.nativeOptions); diff --git a/sdk/objc/api/peerconnection/RTCRtpCapabilities+Private.h b/sdk/objc/api/peerconnection/RTCRtpCapabilities+Private.h deleted file mode 100644 index 3ccfe58376..0000000000 --- a/sdk/objc/api/peerconnection/RTCRtpCapabilities+Private.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2023 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 "RTCRtpCapabilities.h" - -#include "api/rtp_parameters.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface RTC_OBJC_TYPE (RTCRtpCapabilities) -() - - /** Returns the equivalent native RtpCapabilities structure. */ - @property(nonatomic, readonly) webrtc::RtpCapabilities nativeCapabilities; - -/** Initialize the object with a native RtpCapabilities structure. */ -- (instancetype)initWithNativeCapabilities:(const webrtc::RtpCapabilities &)nativeCapabilities - NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/sdk/objc/api/peerconnection/RTCRtpCapabilities.h b/sdk/objc/api/peerconnection/RTCRtpCapabilities.h deleted file mode 100644 index ebeb8edc20..0000000000 --- a/sdk/objc/api/peerconnection/RTCRtpCapabilities.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2023 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 - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -@class RTC_OBJC_TYPE(RTCRtpCodecCapability); - -RTC_OBJC_EXPORT -@interface RTC_OBJC_TYPE (RTCRtpCapabilities) : NSObject - -- (instancetype)init NS_UNAVAILABLE; - -@property(nonatomic, readonly) NSArray *codecs; - -@end - -NS_ASSUME_NONNULL_END diff --git a/sdk/objc/api/peerconnection/RTCRtpCapabilities.mm b/sdk/objc/api/peerconnection/RTCRtpCapabilities.mm deleted file mode 100644 index 5005e5bd4e..0000000000 --- a/sdk/objc/api/peerconnection/RTCRtpCapabilities.mm +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2023 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 "RTCRtpCapabilities+Private.h" -#import "RTCRtpCodecCapability+Private.h" - -#import "RTCMediaStreamTrack.h" -#import "helpers/NSString+StdString.h" - -#include "media/base/media_constants.h" -#include "rtc_base/checks.h" - -@implementation RTC_OBJC_TYPE (RTCRtpCapabilities) - -@synthesize nativeCapabilities = _nativeCapabilities; - -- (instancetype)initWithNativeCapabilities:(const webrtc::RtpCapabilities &)nativeCapabilities { - if (self = [super init]) { - _nativeCapabilities = nativeCapabilities; - } - - return self; -} - -- (NSArray *)codecs { - NSMutableArray *result = [NSMutableArray array]; - - for (auto &element : _nativeCapabilities.codecs) { - RTCRtpCodecCapability *object = - [[RTCRtpCodecCapability alloc] initWithNativeCodecCapability:element]; - [result addObject:object]; - } - - return result; -} - -@end diff --git a/sdk/objc/api/peerconnection/RTCRtpCodecCapability+Private.h b/sdk/objc/api/peerconnection/RTCRtpCodecCapability+Private.h deleted file mode 100644 index ee578d7c8d..0000000000 --- a/sdk/objc/api/peerconnection/RTCRtpCodecCapability+Private.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2023 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 "RTCRtpCodecCapability.h" - -#include "api/rtp_parameters.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface RTC_OBJC_TYPE (RTCRtpCodecCapability) -() - - @property(nonatomic, readonly) webrtc::RtpCodecCapability nativeCodecCapability; - -- (instancetype)initWithNativeCodecCapability: - (const webrtc::RtpCodecCapability &)nativeCodecCapability NS_DESIGNATED_INITIALIZER; - -@end - -NS_ASSUME_NONNULL_END diff --git a/sdk/objc/api/peerconnection/RTCRtpCodecCapability.h b/sdk/objc/api/peerconnection/RTCRtpCodecCapability.h deleted file mode 100644 index 0d607613fa..0000000000 --- a/sdk/objc/api/peerconnection/RTCRtpCodecCapability.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2023 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 - -#import "RTCMacros.h" - -NS_ASSUME_NONNULL_BEGIN - -typedef NS_ENUM(NSInteger, RTCRtpMediaType); - -RTC_OBJC_EXPORT -@interface RTC_OBJC_TYPE (RTCRtpCodecCapability) : NSObject - -/** Build MIME "type/subtype" string from name and kind. */ -@property(nonatomic, readonly) NSString *mimeType; - -/** Used to identify the codec. Equivalent to MIME subtype. */ -@property(nonatomic, copy) NSString *name; - -/** The media type of this codec. Equivalent to MIME top-level type. */ -@property(nonatomic, assign) RTCRtpMediaType kind; - -/** Clock rate in Hertz. If unset, the codec is applicable to any clock rate. */ -@property(nonatomic, copy, nullable) NSNumber *clockRate; - -/** Default payload type for this codec. Mainly needed for codecs that use - * that have statically assigned payload types. - */ -@property(nonatomic, copy, nullable) NSNumber *preferredPayloadType; - -/** The number of audio channels supported. Unused for video codecs. */ -@property(nonatomic, copy, nullable) NSNumber *numChannels; - -/**Codec-specific parameters that must be signaled to the remote party. - * - * Corresponds to "a=fmtp" parameters in SDP. - * - * Contrary to ORTC, these parameters are named using all lowercase strings. - * This helps make the mapping to SDP simpler, if an application is using SDP. - * Boolean values are represented by the string "1". - */ -@property(nonatomic, copy) NSDictionary *parameters; - -@end - -NS_ASSUME_NONNULL_END diff --git a/sdk/objc/api/peerconnection/RTCRtpCodecCapability.mm b/sdk/objc/api/peerconnection/RTCRtpCodecCapability.mm deleted file mode 100644 index bb48ade659..0000000000 --- a/sdk/objc/api/peerconnection/RTCRtpCodecCapability.mm +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright 2023 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 "RTCRtpCodecCapability+Private.h" - -#import "RTCRtpReceiver+Private.h" - -#import "RTCMediaStreamTrack.h" -#import "helpers/NSString+StdString.h" - -#include "media/base/media_constants.h" -#include "rtc_base/checks.h" - -@implementation RTC_OBJC_TYPE (RTCRtpCodecCapability) - -@synthesize nativeCodecCapability = _nativeCodecCapability; - -- (instancetype)init { - return [self initWithNativeCodecCapability:webrtc::RtpCodecCapability()]; -} - -- (instancetype)initWithNativeCodecCapability: - (const webrtc::RtpCodecCapability &)nativeCodecCapability { - if (self = [super init]) { - _nativeCodecCapability = nativeCodecCapability; - } - - return self; -} - -- (NSString *)mimeType { - return [NSString stringWithUTF8String:_nativeCodecCapability.mime_type().c_str()]; -} - -- (NSString *)name { - return [NSString stringWithUTF8String:_nativeCodecCapability.name.c_str()]; -} - -- (void)setName:(NSString *)name { - _nativeCodecCapability.name = std::string([name UTF8String]); -} - -- (RTCRtpMediaType)kind { - return [RTCRtpReceiver mediaTypeForNativeMediaType:_nativeCodecCapability.kind]; -} - -- (void)setKind:(RTCRtpMediaType)kind { - _nativeCodecCapability.kind = [RTCRtpReceiver nativeMediaTypeForMediaType:kind]; -} - -- (NSNumber *)clockRate { - if (!_nativeCodecCapability.clock_rate) { - return nil; - } - - return [NSNumber numberWithInt:*_nativeCodecCapability.clock_rate]; -} - -- (void)setClockRate:(NSNumber *)clockRate { - if (clockRate == nil) { - _nativeCodecCapability.clock_rate = absl::optional(); - return; - } - - _nativeCodecCapability.clock_rate = absl::optional(clockRate.intValue); -} - -- (NSNumber *)preferredPayloadType { - if (!_nativeCodecCapability.preferred_payload_type) { - return nil; - } - - return [NSNumber numberWithInt:*_nativeCodecCapability.preferred_payload_type]; -} - -- (void)setPreferredPayloadType:(NSNumber *)preferredPayloadType { - if (preferredPayloadType == nil) { - _nativeCodecCapability.preferred_payload_type = absl::optional(); - return; - } - - _nativeCodecCapability.preferred_payload_type = - absl::optional(preferredPayloadType.intValue); -} - -- (NSNumber *)numChannels { - if (!_nativeCodecCapability.num_channels) { - return nil; - } - - return [NSNumber numberWithInt:*_nativeCodecCapability.num_channels]; -} - -- (void)setNumChannels:(NSNumber *)numChannels { - if (numChannels == nil) { - _nativeCodecCapability.num_channels = absl::optional(); - return; - } - - _nativeCodecCapability.num_channels = absl::optional(numChannels.intValue); -} - -- (NSDictionary *)parameters { - NSMutableDictionary *result = [NSMutableDictionary dictionary]; - auto _parameters = _nativeCodecCapability.parameters; - for (auto it = _parameters.begin(); it != _parameters.end(); ++it) { - [result setObject:[NSString stringForStdString:it->second] - forKey:[NSString stringForStdString:it->first]]; - } - - return result; -} - -- (void)setParameters:(NSDictionary *)parameters { - std::map _parameters; - for (NSString *paramKey in parameters.allKeys) { - std::string key = [NSString stdStringForString:paramKey]; - std::string value = [NSString stdStringForString:parameters[paramKey]]; - _parameters[key] = value; - } - - _nativeCodecCapability.parameters = _parameters; -} - -@end diff --git a/sdk/objc/api/peerconnection/RTCRtpTransceiver.h b/sdk/objc/api/peerconnection/RTCRtpTransceiver.h index a10a260856..fd59013639 100644 --- a/sdk/objc/api/peerconnection/RTCRtpTransceiver.h +++ b/sdk/objc/api/peerconnection/RTCRtpTransceiver.h @@ -16,8 +16,6 @@ NS_ASSUME_NONNULL_BEGIN -@class RTC_OBJC_TYPE(RTCRtpCodecCapability); - extern NSString *const kRTCRtpTransceiverErrorDomain; /** https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiverdirection */ @@ -106,13 +104,6 @@ RTC_OBJC_EXPORT */ @property(nonatomic, readonly) RTCRtpTransceiverDirection direction; -/** The codecPreferences indicates any overridden codec preferences, which - * will be used in calls to createOffer and createAnswer. An empty array - * indicates that the default codec preferences will be used. - * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-setcodecpreferences - */ -@property(nonatomic, readonly) NSArray *codecPreferences; - /** The currentDirection attribute indicates the current direction negotiated * for this transceiver. If this transceiver has never been represented in an * offer/answer exchange, or if the transceiver is stopped, the value is not @@ -134,15 +125,6 @@ RTC_OBJC_EXPORT */ - (void)setDirection:(RTCRtpTransceiverDirection)direction error:(NSError **)error; -/** The setCodecPreferences method will reject attempts to set codecs not - * matching codecs found in sender or receiver capabilities for kind, where - * kind is the mediaType of the RTCRtpTransceiver on which the method is - * called. - * https://w3c.github.io/webrtc-pc/#dom-rtcrtptransceiver-setcodecpreferences - */ -- (void)setCodecPreferences:(NSArray *)codecPreferences - error:(NSError **)error; - @end RTC_OBJC_EXPORT diff --git a/sdk/objc/api/peerconnection/RTCRtpTransceiver.mm b/sdk/objc/api/peerconnection/RTCRtpTransceiver.mm index 36834ea436..ae1cf79864 100644 --- a/sdk/objc/api/peerconnection/RTCRtpTransceiver.mm +++ b/sdk/objc/api/peerconnection/RTCRtpTransceiver.mm @@ -10,8 +10,6 @@ #import "RTCRtpTransceiver+Private.h" -#import "RTCRtpCodecCapability+Private.h" -#import "RTCRtpCodecCapability.h" #import "RTCRtpEncodingParameters+Private.h" #import "RTCRtpParameters+Private.h" #import "RTCRtpReceiver+Private.h" @@ -67,40 +65,6 @@ NSString *const kRTCRtpTransceiverErrorDomain = @"org.webrtc.RTCRtpTranceiver"; } } -- (NSArray *)codecPreferences { - NSMutableArray *result = [NSMutableArray array]; - std::vector capabilities = _nativeRtpTransceiver->codec_preferences(); - - for (auto &element : capabilities) { - RTCRtpCodecCapability *object = - [[RTCRtpCodecCapability alloc] initWithNativeCodecCapability:element]; - [result addObject:object]; - } - - return result; -} - -- (void)setCodecPreferences:(NSArray *)codecPreferences - error:(NSError **)error { - std::vector objects; - - for (RTCRtpCodecCapability *object in codecPreferences) { - objects.push_back(object.nativeCodecCapability); - } - - webrtc::RTCError nativeError = _nativeRtpTransceiver->SetCodecPreferences( - rtc::ArrayView(objects.data(), objects.size())); - - if (!nativeError.ok() && error) { - *error = [NSError errorWithDomain:kRTCRtpTransceiverErrorDomain - code:static_cast(nativeError.type()) - userInfo:@{ - @"message" : [NSString stringWithCString:nativeError.message() - encoding:NSUTF8StringEncoding] - }]; - } -} - @synthesize sender = _sender; @synthesize receiver = _receiver;