Skip to content

2.34.1.1

Choose a tag to compare

@github-actions github-actions released this 28 Jul 07:18
4d4cb61

OpenTok.Net.iOS 2.34.1.1

Moves the vendored SDK from OTXCFramework 2.27.1 to 2.34.1, bringing this package level with
OpenTok.Net.Android, which already binds
opentok-android-sdk 2.34.1. The two platforms of one product had drifted seven minor releases
apart.

This release is breaking in three ways, each described below.

Breaking: minimum iOS is now 15.0

OTXCFramework 2.34.1's podspec declares "platforms": {"ios": "15.0"}, up from 13.0. That is the
SDK's floor, not a choice made here. An app targeting iOS 13 or 14 cannot take this package — stay
on 2.27.1.701.

Breaking: OTVideoViewScaleBehavior members are renamed

The members were called t and ll — an Objective Sharpie prefix-stripping artifact, not names
anyone could reasonably have chosen. They are now Fit and Fill, matching
OTVideoViewScaleBehaviorFit and OTVideoViewScaleBehaviorFill in OTVideoKit.h. The numeric
values are unchanged (Fit is 0, Fill is 1), so only source needs updating.

Note that Fit being 0 does not make it the default: the SDK documents and sets Fill.

Breaking: delegate callbacks are typed OTPublisherKit / OTSubscriberKit

OTPublisherKitDelegate and OTSubscriberKitDelegate previously declared their callbacks over the
concrete OTPublisher and OTSubscriber. The headers declare the Kit base types, and the
difference is real rather than cosmetic: a screen-share publisher is constructed as a bare
OTPublisherKit, and a subscriber driving a custom OTVideoRender as a bare OTSubscriberKit, so
a delegate typed over the subclass could not receive either.

Consequently OTSubscriberKit is now bound as its own type rather than folded into OTSubscriber,
and OTSession.Subscribe/Unsubscribe take OTSubscriberKit. An existing OTSubscriber still
satisfies them.

Override signatures need updating:

-public override void DidFailWithError(OTPublisher publisher, OTError error)
+public override void DidFailWithError(OTPublisherKit publisher, OTError error)

-public override void DidConnectToStream(OTSubscriber subscriber)
+public override void DidConnectToStream(OTSubscriberKit subscriber)

Fixed: missing enum members

OTPublisherVideoEventReason was missing None, QualityDegradationBandwidth,
QualityDegradationCPU, QualityDegradationOther, CodecChange and ResolutionChange;
OTSubscriberVideoEventReason was missing None, CodecChange, ResolutionChange and
VideoInterruption. The SDK sends all of these, so a callback carrying one arrived as an enum value
with no name.

Several error codes were also missing: SessionUnableToForceDisconnect (1520),
SessionUnableToSendSignal (1550), EncryptionUnsupportedCodec (6005),
OTSubscriberPeerConnectionNotConnected (1606) and DecryptionUnsupportedCodec (6006).

Fixed: constructors that could not work

OTSession, OTPublisherKit and OTSubscriberKit all declare - init NS_UNAVAILABLE, but the
binding emitted a parameterless constructor for each anyway. new OTSession() compiled and then
trapped at runtime. They now carry [DisableDefaultCtor], so the call no longer compiles.

Added: the 2.34 API surface

  • OTVideoCodecPreference with OTVideoCodecType, and OTPublisherKitSettings.VideoCodecPreference
  • OTVideoBitratePreset and OTPublisherKit.MaxVideoBitrate / VideoBitratePreset
  • OTDegradationPreference and OTPublisherKit.DegradationPreference
  • OTPublisher.CameraTorch and CameraZoomFactor
  • OTPublisherKitSettings.SenderStatsTrack and AllowAudioCaptureWhileMuted
  • OTSubscriberKit.CaptionsTranslationLanguage
  • OTSession.ForceDisconnect, OTSessionCapabilities.CanForceDisconnect
  • OTSessionSettings.SinglePeerConnection and SessionMigration,
    OTSessionICEConfig.FilterOutLanCandidates
  • Media-link statistics: OTTransportStats, OTSenderStats, OTPublisherKitMediaLinkStats,
    OTSubscriberKitMediaLinkStats, OTPublisherKitVideoLayerStats, with OTNetworkReason,
    OTNetworkCondition and OTNetworkDegradationSource, and the new videoQualityChanged:,
    networkConditionChanged: and mediaLinkStatsUpdated: callbacks on both network-stats delegates
  • OTAudioTransformer.initWithName:properties:

OTSubscriberKit.GetRtcStatsReport gained an out OTError overload; the no-argument form is
deprecated by the SDK and is marked [Obsolete] here.

Package size

The payload roughly halved — ~25 MB compressed, from ~52 MB. The ML video transformers, and the
TensorFlow Lite model that made the framework so large, moved out of OpenTok.framework into a
separate OpenTokTransformers library this package does not bind. The package now carries
PrivacyInfo.xcprivacy and VonageWebRTC_Privacy.bundle instead, both required for App Store
review.

Version numbering

The revision restarts at 1. It sat at 702 because the predecessor monorepo published up to
2.27.1.701 under this package ID and NuGet resolves the highest version regardless of publisher;
moving the SDK to 2.34.1 lifts the first three components clear of everything published, so
2.34.1.1 already sorts above them all.

Package

Bound against OTXCFramework 2.34.1 (CocoaPods trunk).

Package NuGet
OpenTok.Net.iOS 2.34.1.1