Please note that all Programmable Video iOS SDK 1.x versions are deprecated. Version 3.x is the latest version of the Programmable Video iOS SDK. Please see the Getting Started Guide for more information.
Compatibility Notice - All versions
Please note that all 1.x versions are incompatible with Firefox 63+ in a Peer-to-Peer Room. For more information please review the GitHub Issue.
TwilioVideo.framework is now built with Xcode 9.4.1.
Known Issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
1.4.2 (July 25, 2018)
Improvements
Updated certificate bundle to include "Starfield Class 2 CA" and "Starfield Services Root Certificate Authority - G2" using release-2.0.0 of cert-bundle.
Bug Fixes
Fixed an instance where the signaling Client could send an extra UPDATE message or fail a reconnect operation.
Known Issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
1.4.1 (June 19, 2018)
Improvements
TwilioVideo.framework and our C++ core library are now built with the Xcode 9.3 toolchain.
Initial Connect message now includes Client version metadata.
Bug Fixes
Fixed a bug where the SDK hangs if DNS resolution fails and the user does not initiate disconnect.
The signaling Client no longer logs access tokens.
Resolved an issue where the signaling Client could send too many UPDATE messages, or use too many CPU cycles and disconnect from a Room.
Known Issues
The signaling Client could send an extra UPDATE message or fail a reconnect operation in rare cases.
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
1.4.0 (March 23, 2018)
Features
Added a framesEncoded stats field to TVILocalVideoTrackStats.
Bug Fixes
Fixed a bug where [TVIRoomDelegate::roomDidDisconnect:error:] was not invoked due to a race condition between a network handover and a user initiated [TVIRoom disconnect] call. #235
Known Issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
1.3.12 (March 12, 2018)
Enhancements
TwilioVideo.framework and our C++ core library are now built with the Xcode 9.2 toolchain.
Simplified the internal process for retrieving ice servers and resolving outbound DNS.
Bug Fixes
Fixed an issue where the application thread could be blocked for up to 30 seconds when connecting to and deleting a TVIRoom in bad network conditions.
Known Issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
1.3.11 (February 26, 2018)
Enhancements
The media engine now uses a dedicated thread for networking operations.
Bug Fixes
Resolved a condition where ICE candidates might not be applied in Peer-to-Peer Rooms.
ICE URIs using the stuns and turns schemes are now supported. The SDK will now use turns servers if needed when turn is enabled for your Room.
Resolved an issue where the device model was being incorrectly reported to Insights.
Known Issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
1.3.10 (January 18, 2018)
Enhancements
TwilioVideo.framework and our C++ core library are now built with the Xcode 9.1 toolchain.
Bug Fixes
Clarified header docs for [TVIRoomDelegate room\:didFailToConnectWithError:], [TVIRoomDelegate roomDidStartRecording:] and [TVIRoomDelegate roomDidStopRecording:].
Don't publish Ice Candidate stats unless an active pair is present.
Known Issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
1.3.9 (January 10, 2018)
Enhancements
TwilioVideo.framework and our C++ core library are now built with the Xcode 9.0 toolchain.
Added several properties to TVIIceCandidatePairStats
activeCandidatePair - indicates if the candidate pair is active.
localCandidateIp - the IP address of the local candidate associated with this candidate pair.
remoteCandidateIp - the IP address of the remote candidate associated with this candidate pair.
relayProtocol - the relay protocol
Known Issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
1.3.8 (November 6, 2017)
Bug Fixes
TVIAudioSink now pre-allocates buffers used on a real-time CoreAudio thread. #104 [ISDK-1412]
Known Issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
1.3.7 (October 17, 2017)
Bug Fixes
TVIAudioSinks added to a TVILocalAudioTrack now raise callbacks. Audio recording does not start until you join an empty Group Room or a Peer-to-Peer Room with one or more Participants. #104
Known Issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
TVIAudioSink should pre-allocate buffers used on a real-time CoreAudio thread. #104 [ISDK-1412]
1.3.6 (October 9, 2017)
Enhancements
WebRTC and other third party dependencies are now built with Xcode 8.3.3 to match our C++ core library. We will be upgrading our build toolchain to Xcode 9.x in a future release.
Known Issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
TVIAudioSinks added to a TVILocalAudioTrack do not raise any callbacks. #104
1.3.5 (September 21, 2017)
Bug Fixes
Fixed some properties which were missed during docs generation.
Fixed a potential crash when calling [TVIRoom disconnect:] before [TVIRoomDelegate didConnectToRoom:] is called and then destroying the TVIRoom in the [TVIRoomDelegate room\:didDisconnectWithError:] callback.
Fixed incorrect values for TVIIceCandidateStats.port and TVIIceCandidateStats.isRemote.
Known Issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
TVIAudioSinks added to a TVILocalAudioTrack do not raise any callbacks. #104
1.3.4 (September 7, 2017)
This release improves compatibility with iOS 11.0, resolving debugger warnings and assertions that could occur when developing against the SDK.
Bug fixes
Resolved a Metal debug assertion caused by improper usage of depth attachments in TVIVideoView. #141
Use the modern [CADisplayLinkTimer preferredFramesPerSecond] APIs instead of intervals on iOS 10.0 or newer.
TVIScreenCapturer no longer queries UIApplicationState from outside the main thread.
Cleanup TVIAudioSinks automatically after a TVIAudioTrack is removed from a TVIParticipant in order to prevent crashes.
Known issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
TVIAudioSinks added to a TVILocalAudioTrack do not raise any callbacks. #104
1.3.3 (September 1, 2017)
Features
TVIVideoView's Metal implementation now supports sharing of CVPixelBuffers with the GPU, and can render frames in any TVIPixelFormat without additional CPU conversions. In order to qualify for the fast sharing path CVPixelBuffers should be created with kCVPixelBufferMetalCompatibilityKey and kCVPixelBufferIOSurfacePropertiesKey.
Bug fixes
Fixed the issue where the TVIConnectOptions and TVIConnectOptionsBuilder's audioTracks and videoTracks properties were not respecting their nonnull annotation.
Fixed the documentation error on TVIIceCandidatePairStatus currentRoundTripTime.
Fixed a bug in TVIScreenCapturer and in the software video pipeline where RGB CVPixelBuffer formats were incorrectly assumed to use host ordering (little endian on Ax ARM-based CPUs) instead of their in memory representation. Because of this TVIPixelFormat32BGRA was treated as TVIPixelFormat32ARGB and vice versa.
Known issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
TVIAudioSinks added to a TVILocalAudioTrack do not raise any callbacks. #104
1.3.2 (August 22, 2017)
Bug fixes
Fixed an issue which prevented multiple Participants from adding/removing Tracks in Group Rooms.
The TVIError enumeration is now declared as an NSInteger to match what NSError is expecting.
Known issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
TVIAudioSinks added to a TVILocalAudioTrack do not raise any callbacks. #104
1.3.1 (August 9, 2017)
Bug fixes
The platform name and manufacturer is reported correctly to Insights.
C++ core library is built with the Xcode 8.3.3 toolchain (matching video-ios).
Known issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
TVIAudioSinks added to a TVILocalAudioTrack do not raise any callbacks. #104
1.3.0 (July 19, 2017)
Features
Active Ice candidate pair stats are now available as part of the TVIStatsReport objects returned from the TVIRoom:getStatsWithBlock: API.
One fewer thread is created per TVIRoom.
Bug fixes
Internal timers used by the SDK are more reliable.
Known issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
TVIAudioSinks added to a TVILocalAudioTrack do not raise any callbacks. #104
1.2.1 (July 11, 2017)
Features
The SDK now uses TLS 1.2 in favor of TLS 1.0 to connect to Twilio's servers.
Bug fixes
Local participant state is now promptly synced with Twilio signaling servers when there is a network handoff.
Known issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
TVIAudioSinks added to a TVILocalAudioTrack do not raise any callbacks. #104
1.2.0 (July 6, 2017)
Features
Added the ability to access raw audio samples using the TVIAudioSink protocol. At the moment this is only supported on remote TVIAudioTrack instances. #104
Bug fixes
Audio playout and recording does not work correctly on iOS simulators. #73
Known issues
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
1.1.0 (June 27, 2017)
Features
This release adds Insights statistics collection, which reports RTP quality metrics back to Twilio. In the future, these statistics will be included in customer-facing reports visible in the Twilio Console. Insights collection is enabled by default, if you wish to disable it use the insightsEnabled property on TVIConnectOptionsBuilder:
Audio playout and recording does not work correctly on iOS simulators. #73
Network handoff from Wifi to Wifi is unreliable. #127
Participant disconnect event can take up to 120 seconds to occur. #99
AVPlayer audio content does not mix properly with Room audio. #402
1.0.0 (April 26, 2017)
We've promoted 1.0.0-beta16 to 1.0.0. As part of our first General Availability release we are now publishing our podspecs to the CocoaPods Master Spec Repo, instead of Twilio's Spec Repo.
Known issues
Network handoff is not supported to/from a NAT'd IPv6 network. #87
Audio playout and recording does not work correctly on iOS simulators. #73
Participant disconnect event can take up to 120 seconds to occur. #99
Missing Media when adding audio/video tracks quickly while connected to a Room. #101
AVPlayer audio content does not mix properly with Room audio. #402
1.0.0-beta16 (April 25, 2017)
Bug fixes
Fixed an issue where the SDK was incorrectly choosing TVIAudioOutputVoiceChatDefault by default, causing audio to be routed to the receiver on iPhones.
Known issues
Network handoff is not supported to/from a NAT'd IPv6 network. #87
Audio playout and recording does not work correctly on iOS simulators. #73
Participant disconnect event can take up to 120 seconds to occur. #99
Missing Media when adding audio/video tracks quickly while connected to a Room. #101
AVPlayer audio content does not mix properly with Room audio. #402
1.0.0-beta15 (April 24, 2017)
Features
TVIVideoClient has been renamed to TwilioVideo.
TVILocalMedia has been removed from TVILocalParticipant. It is now possible to create TVILocalAudioTrack and TVILocalVideoTrack using class factory methods, and add them to TVILocalParticipant directly.
TVIConnectOptions accepts Tracks instead of LocalMedia.
TVIAudioController is now a singleton, instead of a property on TVILocalMedia.
TVIMedia has been removed from TVIParticipant. Use the audioTracks and videoTracks properties in place of media to access Participant Tracks.
TVIVideoCaptureSource has been renamed to TVICameraCaptureSource.
- [TVICameraCapturer selectSource:] now returns a BOOL that indicates whether the provided TVICameraCaptureSource is available on the device.
Removed the selectNextSource API from TVICameraCapturer.
Changed the cameraCapturerWasInterrupted: delegate method to cameraCapturerWasInterrupted:reason:.
TVICameraCapturer no longer generates the TVICameraPreviewView by default. To enable previewView generation, call the initWithSource:delegate:enablePreview: initializer.
Removed the cameraCapturerPreviewDidStart: delegate method.
Added a mirror property to TVIVideoView.
Mirroring is no longer automatically applied to any TVIVideoViews that are rendering a TVILocalVideoTrack created with a TVICameraCapturer.
Bug fixes
Fixed a bug where out of order offer and answer messages could result in a failure when DTLS roles are negotiated.
Known issues
Network handoff is not supported to/from a NAT'd IPv6 network. #87
Audio playout and recording does not work correctly on iOS simulators. #73
Memory corruption in some multi-party scenarios. #74
1.0.0-beta9 (March 6, 2017)
Features
Improved support for backgrounding where CallKit is not used and audio is inactive. #89
We've begun formalizing our error codes. They are divided up into Signaling (530xx), Room (531xx), Participant (532xx), Track (533xx), Media (534xx), Configuration (535xx), and Access Token (201xx) subranges. Instances of NSError will now carry a numeric code belonging to one of these ranges. #67
Moved connect from an instance method to a class method on TVIVideoClient. Calling the new class connect method requires TVIConnectOptions and TVIRoomDelegate arguments. TVIVideoClient is no longer an object that can be instantiated and an instance is no longer required to connect to a Room.
Moved access token parameter from the TVIVideoClient class factory to the TVIConnectOptions initializer.
Audio playout and recording does not work correctly on iOS simulators. #73
Memory corruption in some multi-party scenarios. #74
1.0.0-beta8 (February 17, 2017)
Bug fixes
Fixed a memory leak with TVIVideoRenderer and TVIVideoFrame on iOS 8.
Fixed a crash which could occur when track enabled or disabled events arrive during media negotiation.
Participant identities can now include unicode characters (server side fix).
Removed VOIP socket tagging on signaling connections.
Known issues
Network handoff is not supported to/from a NAT'd IPv6 network.
VP8 is the only supported codec.
Bitcode is not supported.
Audio playout and recording does not work correctly on iOS simulators.
If your non-CallKit enabled application joins a Room where no audio is being sent or received then signaling and media connections will fail upon turning off the display and entering a deep background state. In some cases this can result in a crash.
1.0.0-beta7 (February 10, 2017)
Features
Added support for App Extensions.
Improved performance of the OpenGL ES implementation of TVIVideoViewRenderer by sharing frames with the GPU where possible.
Bug fixes
Fixed a regression from 1.0.0-beta6 where tokens with purely numeric identities caused a crash.
Eliminated a call to mDNSResponder when constructing TVIVideoClient.
Improved the reliability of DNS resolution for signaling, and resolved a potential crash on failure.
Known issues
Network handoff is not supported to/from a NAT'd IPv6 network.
VP8 is the only supported codec.
Bitcode is not supported.
Signaling connections are incorrectly tagged as VOIP sockets.
Audio playout and recording does not work correctly on iOS simulators.
If your non-CallKit enabled application joins a Room where no audio is being sent or received then signaling and media connections will fail upon turning off the display and entering a deep background state. In some cases this can result in a crash.
1.0.0-beta6 (February 1, 2017)
Features
Network handoff is supported in IPv4 environments.
Added an isRecording property to TVIRoom, and delegate callbacks to TVIRoomDelegate. Please note that recording is only available in our Group Rooms developer preview. The property will always return NO in a P2P Room.
Bug fixes
Resolved an issue where destroying a TVITrack instance after other SDK resources could cause a crash.
Fixed memory leaks when parsing JSON signaling messages.
Aggressively close old signaling connection on a redirect.
Improved signaling logic when handling glare scenarios.
Resolved a memory management issue with outgoing signaling messages.
Resolved a synchronization issue in the video capture pipeline which could cause frames to be corrupted.
Resolved a crash which could occur when parsing ICE candidates.
Attempt ICE restarts in response to PeerConnection failures.
Known issues
Network handoff is not supported to/from a NAT'd IPv6 network. This is an issue on cellular carriers such as T-Mobile.
VP8 is the only supported codec.
Bitcode is not supported.
Signaling connections are incorrectly tagged as VOIP sockets.
Audio playout and recording does not work correctly on iOS simulators.
If your non-CallKit enabled application joins a Room where no audio is being sent or received then signaling and media connections will fail upon turning off the display and entering a deep background state. In some cases this can result in a crash.
The SDK is not extension safe, and TVIVideoViewRenderer instances will remain paused in this environment.
1.0.0-beta5 (January 19, 2017)
Features
Added a new video frame class TVIVideoFrame, which replaces the TVII420Frame class for rendering and the TVIVideoFrame struct for capturing. TVIVideoFrame can be created using a CVImageBufferRef . TVIVideoRenderer and TVIVideoCaptureConsumer have been updated to use this class.
Renderers can now specify additional supported pixel formats via the optionalPixelFormats property in TVIVideoRenderer. Support for rotation tags is now mandatory for all renderers.
Bug fixes
Fixed an issue where SDK was incorrectly choosing TVIAudioOutputVoiceChatDefault by default, causing audio to be routed to the receiver on iPhones.
The SDK will no longer export any symbols from the dependencies that it consumes. For example, Twilio's Video and Chat SDKs can now be used at the same time to build an application.
Added error handling for nil checks and protocol conformance.
Fixed a performance regression when communicating with clients that do not support rotation tags (like Firefox).
Known issues
Network handoff, and subsequent connection renegotiation is not supported.
VP8 is the only supported codec.
Bitcode is not supported.
Signaling connections are incorrectly tagged as VOIP sockets.
If your non-CallKit enabled application joins a Room where no audio is being sent or received then signaling and media connections will fail upon turning off the display and entering a deep background state. In some cases this can result in a crash.
The SDK is not extension safe. In particular, the changes made to TVIVideoViewRenderer to support CallKit / backgrounding use cases cause rendering timers to be paused when used in an extension.
1.0.0-beta4 (December 13, 2016)
Features
STUN and TURN requests will now succeed on DNS64 / NAT64 networks. This allows for improved media connectivity in mapped IPv6 environments.
TVIVideoViewRenderer now supports two new content modes: UIViewContentModeScaleAspectFill and UIViewContentModeScaleToFill.
This release is based upon Chromium WebRTC 55. As a part of this update TVIVideoFrame timestamps are now expressed in units of microseconds instead of nanoseconds.
TVII420Frame now provides display timestamps.
Bug fixes
Using TVICameraCapturer on the iOS 10.0 betas no longer causes a crash.
Reverted a change where the Client would aggressively leave Rooms in response to PeerConnection Ice failures.
Fixed a thread safety issue where adding/removing a track from TVILocalMedia could cause a crash.
Improved error handling for some signaling and media use cases, and defined additional error codes in TVIError.h.
Known issues
The SDK incorrectly chooses TVIAudioOutputVoiceChatDefault by default, causing audio to be routed to the receiver on iPhones. You can work around this issue by setting TVIAudioController.audioOutput to TVIAudioOutputVideoChatDefault. See video-quickstart-ios for an example of how to do this.
Network handoff, and subsequent connection renegotiation is not supported.
VP8 is the only supported codec.
Bitcode is not supported.
Signaling connections are incorrectly tagged as VOIP sockets.
If your non-CallKit enabled application joins a Room where no audio is being sent or received then signaling and media connections will fail upon turning off the display and entering a deep background state. In some cases this can result in a crash.
The SDK is not extension safe. In particular, the changes made to TVIVideoViewRenderer to support CallKit / backgrounding use cases cause rendering timers to be paused when used in an extension.
There is a performance regression (since beta3) when communicating with Firefox clients. The client performs an additional memory allocation and copy operation when a TVIVideoCapturer delivers frames with non-zero rotation.
1.0.0-beta3 (November 30, 2016)
Bug fixes
TVICameraCapturer no longer crashes when created on iOS 10.0 & 10.1 simulators. Instead, initializing the capturer returns nil when an unavailable source is provided. We've also improved runtime error handling for this class.
Fixed an issue which could cause connection renegotiation to fail when adding or removing tracks.
Fixed an issue where the Room's Participants list could include the local Participant in multiparty.
Known issues
Network handoff, and subsequent connection renegotiation is not supported.
VP8 is the only supported codec.
Bitcode is not supported.
Using TVICameraCapturer on iOS 10.0 betas causes a crash.
Signaling connections are incorrectly tagged as VOIP sockets.
STUN and TURN requests fail on DNS64 / NAT64 networks. Only host candidates are supported in this environment.
TVIVideoViewRenderer only supports UIViewContentModeScaleAspectFit.
If your application requires the background audio capability (but not voip) and joins a Room where no audio is being sent or received then signaling and media connections will fail upon entering the background. In some cases this can result in a crash.
The SDK is not extension safe. In particular, the changes made to TVIVideoViewRenderer to support CallKit / backgrounding use cases in beta2 cause rendering timers to be paused when used in an extension.
1.0.0-beta2 (November 16, 2016)
New features
Added support for CallKit via a new class TVIAudioController. CallKit requires iOS 10.0 or greater. The Video QuickStart Sample App for CallKit demonstrates how to use the new APIs.
Added the ability to select audio routes using TVIAudioController.
The Signaling stack supports DNS64 / NAT64 environments.
Developers can add their own custom capturers by implementing TVIVideoCapturer. The existing camera and screen capturers now adopt this public API.
Bug fixes
Fixed an inconsistency with the TVIRoomDelegate method room\:didFailToConnectWithErrorwhere an error was not returned even though the argument was marked as nonnull.
Calling disconnect before connecting to a Room results in room\:didDisconnectWithError: rather than room\:didFailToConnectWithError:.
TVIVideoViewRenderer will no longer attempt to use GPU resources if initialized in the background. The Metal implementation only renders when the application is in the active state in order to better support CallKit use cases.
Using a malformed AccessToken causes an error to be raised.
Logging at TVILogLevelDebug or greater shows the signaling messages exchanged.
Removed the usage of Poco thread pools for timers. Typically this means that the SDK requires two fewer threads to operate.
The SDK includes an acknowledgements file which lists open source dependencies.
Known issues
Network handoff, and subsequent connection renegotiation is not supported.
VP8 is the only supported codec.
Bitcode is not supported.
Using TVICameraCapturer on iOS 10.0 betas causes a crash.
Signaling connections are incorrectly tagged as VOIP sockets.
STUN and TURN requests fail on DNS64 / NAT64 networks. Only host candidates are supported in this environment.
TVIVideoViewRenderer only supports UIViewContentModeScaleAspectFit.
If your application requires the background audio capability (but not voip) and joins a Room where there is no audio being sent or received then signaling and media connections will fail upon entering the background. In some cases this can result in a crash.
The SDK is not extension safe. In particular, the changes made to TVIVideoViewRenderer to support CallKit / backgrounding use cases in beta2 cause rendering timers to be paused when used in an extension.
1.0.0-beta1 (October 10, 2016)
New features
Added support for the iPhone 7 Plus to TVICameraCapturer. The SDK is compiled against the iOS 10 SDK, and continues to target iOS 8.1+.
Added a script to strip simulator architectures for use when submitting to the App Store.
Bug fixes
If you don't detach or remove your renderer from a TVIVideoTrack it will automatically be cleaned up when the track is destroyed.
It is now possible to re-negotiate more than one track at a time.
Improved signaling reliability.
Fixed several crashes related to object teardown.
Fixed an issue where passing an invalid TVIIceServer could result in a crash.
Known issues
IPv6 is not fully supported on iOS 10.
Network handoff, and subsequent connection renegotiation is not supported.
VP8 is the only supported codec.
CallKit is not officially supported. We plan on adding this in a future beta releases.
Bitcode is not supported.
Using TVICameraCapturer on iOS 10.0 betas causes a crash.
Signaling connections are incorrectly tagged as VOIP sockets.
1.0.0-preview1 (September 23, 2016)
New features
TwilioVideo uses a Room based communications model. We have replaced TWCConversation with TVIRoom and eliminated Invites from the SDK. Instead of calling inviteToConversation on TwilioConversationsClient you should call connectWithDelegate or connectWithOptions:delegate on TVIVideoClient.
A Room is a named voice and/or video session between one or more Participants. Unlike a Conversation a Room is created as soon as a single Participant joins. Rooms do not use invitations; Participants may join a room by simply calling connect and passing the Room's name as an argument.
It is possible to join more than one Room at a time.
Manipulating TVILocalMedia is synchronous, and no longer requires a delegate.
It is possible to use TVILocalMedia independently from joining a Room. The same instance of TVILocalMedia can be reused in multiple Rooms.
We have added TVIScreenCapturer , a new capturer which shares the contents of a UIView with other Participants.
Local audio is now a first class citizen in the SDK via TVILocalAudioTrack . You can use TVIAudioConstraints in order to customize the audio that you share.
TwilioCommon is no longer used with the SDK.
TwilioVideo is distributed as a dynamic framework.
We use a new signaling protocol which offers support for trickle-ice. This should result in improved call setup times compared to Conversations.
Bug fixes
First developer preview release.
Known issues
IPv6 is not fully supported on iOS 10.
Network handoff, and subsequent connection renegotiation is not supported.
If you use the attach APIs to render a video feed, then you must call detach explicitly. Similarly if you add a renderer to a video track then you will have to remove it yourself.
Renegotiating more than one track at a time is not supported.