Skip to content

Releases: twilio/twilio-video-ios

Twilio Video SDK iOS 4.6.0-beta1

09 Jun 02:08
Compare
Choose a tag to compare

This release consumes twilio-video-cpp-6.3.0-rc4.

This beta release is for customers to give feedback about Apple Silicon simulator support. Thank you very much for your interest in this feature.

Note: If your app requires more than 10 Participants in a Room then we recommend waiting for the 4.6.0 release.

Features

  • TwilioVideo.xcframework now supports the simulator on Apple Silicon arm64 Macs. #144
    • This results in a size increase for the SDK during development.
    • App store download size is not affected.

Enhancements

  • This release is based on WebRTC M88.
  • The SDK uses Unified Plan SDP semantics instead of Plan-B. This brings several important benefits:
    • Improved interoperability with Firefox, Safari and Chrome in Peer-to-Peer Rooms
    • Track level operations like publishing and unpublishing are more reliable
    • Send side bandwidth estimation is now supported in Group Rooms via transport-cc. Previously, send side bandwidth estimation was only supported in Peer-to-Peer and Go Rooms
  • Improved performance of Room.getStats() by adopting the W3C standardized RTC stats API

API Changes

  • Previously, the ordering of RemoteParticipantDelegate.onAudioTrackSubscribed() and RemoteParticipantDelegate.onVideoTrackSubscribed() was not strictly guaranteed. Now, the ordering of these callbacks may be reversed when compared to previous releases.
  • The value of LocalVideoTrackStats.framesEncoded now reflects the total number of frames encoded for a simulcast track.

Bug Fixes

  • Fixed performance problems with Room.getStats() where block callbacks could sometimes be significantly delayed. [CSDK-3475]
  • Fixed an interoperability issue with twilio-video.js when publishing media in Peer-to-Peer or WebRTC Go Rooms. #931

Known Issues

  • This beta is not recommended in Rooms with > 10 Participants due to increased message sizes. We are working to resolve this size increase before the GA release. [VIDEO-3532]
  • Carthage is not currently a supported distribution mechanism for Twilio Video. Carthage does not currently work with .xcframeworks as documented here. Once Carthage supports binary .xcframeworks, Carthage distribution will be re-added.
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact for 4.6.0-beta1

Architecture Compressed Size Uncompressed Size
Universal 9.9 MB 21.1 MB
arm64 4.8 MB 11.2 MB
armv7 5.1 MB 9.9 MB

Twilio Video SDK iOS 4.4.0

01 Apr 01:20
Compare
Choose a tag to compare

This release consumes twilio-video-cpp-6.1.0.

Enhancements

  • 100 Participant Group Rooms Pilot Program: A Group Room created with max participants greater than 50 is structured to support a small number of presenters and a large number of viewers. It has the following behavioral differences compared to regular Group Rooms:
    • The RoomDelegate.participantDidConnect() delegate method is invoked when a RemoteParticipant connects to the Room and publishes at least one Track.
    • The RoomDelegate.participantDidDisconnect() delegate method is invoked when a RemoteParticipant disconnects from the Room or unpublishes all of its Tracks.
    • If a RemoteParticipant unpublishes all of its tracks (resulting in the RoomDelegate.participantDidDisconnect() delegate method being invoked) and later republishes a track, a new RemoteParticipant object will be provided in the subsequent RoomDelegate.participantDidConnect() delegate method invocation with the same Participant Sid as before.
    • The maximum number of published Tracks in a Room at the same time cannot exceed 16. Attempts to publish more Tracks will result in a publication failure with ParticipantMaxTracksExceededError unless one or more published Tracks is unpublished.
    • Contact your Twilio Account Executive to enroll in this pilot program.

Bug Fixes

  • Fixed a crash when network manager was still invoking onNetworksChanged callback while network monitor was being destroyed.

Known Issues

  • The TwilioVideo.xcframework does not currently support the simulator on Apple Silicon arm64 Macs.
  • Carthage is not currently a supported distribution mechanism for Twilio Video. Carthage does not currently work with .xcframeworks as documented here. Once Carthage supports binary .xcframeworks, Carthage distribution will be re-added.
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact for 4.4.0

Architecture Compressed Size Uncompressed Size
Universal 9.7 MB 20.7 MB
arm64 4.7 MB 11.0 MB
armv7 5.0 MB 9.7 MB

Twilio Video SDK iOS 4.3.0

03 Feb 18:54
Compare
Choose a tag to compare

This release consumes twilio-video-cpp-6.0.2.

API Changes

  • Added new error code, CameraSource.Error.cameraPermissionDenied

Bug Fixes

  • CameraSouce.startCapture() now properly raises the CameraSource.Error.cameraPermissionDenied error when attempting to start capturing the camera when a user has declined the camera permissions.

Known Issues

  • The TwilioVideo.xcframework does not currently support the simulator on Apple Silicon arm64 Macs.
  • Carthage is not currently a supported distribution mechanism for Twilio Video. Carthage does not currently work with .xcframeworks as documented here. Once Carthage supports binary .xcframeworks, Carthage distribution will be re-added.
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact for 4.3.0

Architecture Compressed Size Uncompressed Size
Universal 9.6 MB 20.4 MB
arm64 4.6 MB 10.9 MB
armv7 4.9 MB 9.5 MB

Twilio Video SDK iOS 4.2.0

27 Jan 18:40
Compare
Choose a tag to compare

This release consumes twilio-video-cpp-6.0.2.

Enhancements

  • The minimum iOS version supported at build time has been lowered from 11.0 to 9.0. Though the Twilio Video APIs are only available on iOS 11.0 and above, you can still build iOS 9.x and 10.x apps with the Video SDK.

API Changes

  • Calling VideoTrack.addRenderer() multiple times with the same VideoRenderer now throws a helpful NSInvalidArgumentException instead of firing NSAssert.

Known Issues

  • The TwilioVideo.xcframework does not currently support the simulator on Apple Silicon arm64 Macs.
  • Carthage is not currently a supported distribution mechanism for Twilio Video. Carthage does not currently work with .xcframeworks as documented here. Once Carthage supports binary .xcframeworks, Carthage distribution will be re-added.
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact for 4.2.0

Architecture Compressed Size Uncompressed Size
Universal 9.6 MB 20.4 MB
arm64 4.6 MB 10.9 MB
armv7 4.9 MB 9.5 MB

Twilio Video SDK iOS 4.1.0

14 Jan 01:39
Compare
Choose a tag to compare

This release consumes twilio-video-cpp-6.0.2.

Enhancements

  • The minimum supported iOS version has been lowered from 12.0 to 11.0. On iOS 11.x simulators, video rendering with VideoView is not supported.

Bug Fixes

  • Fixed a bug where the VideoView was not applying the native scale factor to the drawable size. This was a regression introduced in version 4.0.1.#159

Known Issues

  • The TwilioVideo.xcframework does not currently support the simulator on Apple Silicon arm64 Macs.
  • Carthage is not currently a supported distribution mechanism for Twilio Video. Carthage does not currently work with .xcframeworks as documented here. Once Carthage supports binary .xcframeworks, Carthage distribution will be re-added.
  • Unpublishing and republishing a LocalAudioTrack or LocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact for 4.1.0

Architecture Compressed Size Uncompressed Size
arm64 4.6 MB 10.8 MB

Twilio Video SDK iOS 4.0.1

18 Dec 21:05
Compare
Choose a tag to compare

This release consumes twilio-video-cpp-6.0.1-rc1.

Bug Fixes

  • Fixed a bug where the video renderer was setting the drwable size incorrectly. This was causing pixelated video when rendered on an external display using the Screen Mirroring.#123
  • Fixed a bug where publishing multiple Tracks with the same name may result in a crash if network quality is enabled.

Distribution Changes

  • Removed the Poco section from Acknowledgements.md since Poco is no longer a dependency

Known Issues

  • The TwilioVideo.xcframework does not currently support the simulator on Apple Silicon arm64 Macs.
  • Carthage is not currently a supported distribution mechanism for Twilio Video. Carthage does not currently work with .xcframeworks as documented here. Once Carthage supports binary .xcframeworks, Carthage distribution will be re-added.
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact for 4.0.1

Architecture Compressed Size Uncompressed Size
arm64 4.6 MB 10.8 MB

Twilio Video SDK iOS 4.0.0

04 Dec 21:11
Compare
Choose a tag to compare

This release consumes twilio-video-cpp-6.0.0.

  • The iOS SDK is based on WebRTC-83.
  • The iOS SDK is built with Xcode 12.0.
  • Twilio Video is now delivered as an .xcframework. The .xcframework package includes the .dSYM and .bcsymbolmap files to allow developers to symbolicate crash reports.
  • Twilio Video is now distributed as a Swift Package.
  • Enabled Metal rendering on the iOS simulator.
  • You can now share video of your app's screen to a Room using AppScreenSource. The Video SDK uses ReplayKit internally for in-app screen capture. AppScreenSource conforms to VideoSource and uses RPScreenRecorder to capture video of your app's screen. Here is a brief example:
if let source = AppScreenSource(), let track = LocalVideoTrack(source: source) {
    room.localParticipant?.publishVideoTrack(track)
    source.startCapture()
}
  • Discontinuous transmission (DTX) is enabled by default for the Opus codec. Disabling DTX will result in higher bitrate for silent audio while using the Opus codec. The TVIOpusCodec class now has a new initializer [TVIOpusCodec initWithDtxEnabled:] and a property dtxEnabled.
  • Added the TVIParticipantState enumeration.
  • Added the TVIParticipant.state property.
  • Added new delegate methods [TVIRoomDelegate room:participantIsReconnecting:] and [TVIRoomDelegte room:participantDidReconnect:] to TVIRoomDelegate. These callbacks will be raised when a TVIRemoteParticipant is attempting to reconnect to a room due to a signaling network interruption. NOTE: It can take up to 15 seconds for our signaling backend to detect that a RemoteParticipant's connection has been disrupted due to a network degradation or handoff.
  • isRecording property in TVIRoom now accurately reflects the current recording state of the TVIRoom. In the previous versions of the SDK, isRecording could return false positives. In TVIRoomDelegate the roomDidStartRecording and roomDidStopRecording callbacks will now be invoked when recording for at least a single track in the TVIRoom has begun and ended respectively.

API Updates

  • Added AppScreenSource to control video capture of your app's screen.
  • Removed the TVIRemoteParticipant.connected property in favor of TVIParticipant.state.

Removed following deprecated APIs

  • Removed the deprecated OpenGL Video Renderer APIs:
    • VideoView.RenderingType
    • [VideoView initWithFrame:delegate:renderingType:renderingType]
  • Removed the deprecated abortOnIceServersTimeout and iceServersTimeout properties from IceOptions and IceOptionsBuilder.

Distribution Changes

  • Twilio Video iOS SDK is no longer being shipped as a static library.

Known Issues

  • The TwilioVideo.xcframework does not currently support the simulator on Apple Silicon arm64 Macs.
  • Carthage is not currently a supported distribution mechanism for Twilio Video. Carthage does not currently work with .xcframeworks as documented here. Once Carthage supports binary .xcframeworks, Carthage distribution will be re-added.
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • H.264 video might become corrupted after a network handoff. #147
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]
  • Publishing multiple tracks with the same name may result in a crash if network quality is enabled. To avoid this, use unique names for each track in the TVIRoom.

Size Impact for 4.0.0

Architecture Compressed Size Uncompressed Size
arm64 4.6 MB 10.8 MB

Twilio Video SDK iOS 3.8.0

14 Dec 21:31
Compare
Choose a tag to compare

This release consumes twilio-video-cpp-5.7.0.

Enhancements

  • isRecording property in TVIRoom now accurately reflects the current recording state of the TVIRoom. In the previous versions of the SDK, isRecording could return false positives.
    In TVIRoomDelegate the roomDidStartRecording and roomDidStopRecording callbacks will now be invoked when recording for at least a single track in the TVIRoom has begun and ended respectively.

Known Issues

  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact for 3.8.0

Architecture Compressed Size Uncompressed Size
arm64 4.6 MB 10.8 MB

Twilio Video SDK iOS 4.0.0-beta3

17 Nov 23:14
Compare
Choose a tag to compare
Pre-release

This release consumes twilio-video-cpp-6.0.0-rc10.

Enhancements

You can now share video of your app's screen to a Room using AppScreenSource. The Video SDK uses ReplayKit internally for in-app screen capture. AppScreenSource conforms to VideoSource and uses RPScreenRecorder to capture video of your app's screen. Here is a brief example:

if let source = AppScreenSource(), let track = LocalVideoTrack(source: source) {
    room.localParticipant?.publishVideoTrack(track)
    source.startCapture()
}

API Changes

  • Added AppScreenSource to control video capture of your app's screen.

Known Issues

  • The TwilioVideo.xcframework does not currently support the simulator on Apple Silicon arm64 Macs.
  • Carthage is not currently a supported distribution mechanism for Twilio Video. Carthage does not currently work with .xcframeworks as documented here. Once Carthage supports binary .xcframeworks, Carthage distribution will be re-added.
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact for 4.0.0-beta3

Architecture Compressed Size Uncompressed Size
arm64 4.6 MB 10.8 MB

Twilio Video SDK iOS 4.0.0-beta2

29 Oct 18:55
Compare
Choose a tag to compare
Pre-release

This release consumes twilio-video-cpp-6.0.0-rc10.

Distribution Changes

  • Twilio Video iOS SDK is no longer being shipped as a static library.

Enhancements

  • AudioSink feature support has been added for Local Audio Tracks.

Known Issues

  • The TwilioVideo.xcframework does not currently support the simulator on Apple Silicon arm64 Macs.
  • Carthage is not currently a supported distribution mechanism for Twilio Video. Carthage does not currently work with .xcframeworks as documented here. Once Carthage supports binary .xcframeworks, Carthage distribution will be re-added.
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • iOS devices do not support more than three H.264 encoders. Refer to #17 for suggested work arounds.
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. [ISDK-1590]

Size Impact for 4.0.0-beta2

Architecture Compressed Size Uncompressed Size
arm64 4.6 MB 10.8 MB