Skip to content
Pre-release

@twilio-sdk-build twilio-sdk-build released this Sep 6, 2019 · 3 commits to Releases since this release

This release consumes twilio-video-cpp-4.0.0-beta4.

API Changes

  • Introduced TVIErrorSignalingDnsResolutionError, which is now raised instead of TVIErrorSignalingConnectionError in the following scenarios:
    • The device has misconfigured DNS Server(s) on its active network interface.
    • The region provided in TVIConnectOptions was invalid.
    • The device lost its Internet connection before the query could complete.

Enhancements

  • Reduced connection times by removing a round trip when:
    • Reconnecting after a signaling connection failure
    • Connecting with TVIConnectOptions.iceOptions, and overridden Servers
    • Connecting with default ICE servers (us1 only)
    • [CSDK-2902]

Bug Fixes

  • Fixed a bug where Participants remain connected to a Room even after terminal media failures. [CSDK-3023]
  • Fixed a crash when Network Quality or Dominant Speaker is enabled, connectivity to the Room is lost, and the Room is deleted from within TVIRoomDelegate.roomDidDisconnect(). [CSDK-2950]
  • Fixed a bug where resources might be leaked when destroying a Room. [CSDK-2822]
  • Fixed a bug where network monitoring would continue on closed connections in a Peer-to-Peer Room. [CSDK-2947]
  • Fixed a crash on the iOS 13 simulator when rendering received H.264 video, or any other video in the TVIPixelFormatYUV420BiPlanarFullRange or TVIPixelFormatYUV420BiPlanarVideoRange formats. [ISDK-2631]

Known Issues

  • In rare cases, the SDK might timeout during a TCP handshake and should be more aggressive at establishing a connection. [CSDK-2942]
  • Server side deflate compression is disabled due to occasional errors when reading messages. [CSDK-2949]
  • In a two Participant P2P room, the last Participant might not be disconnected when there are terminal media failures. [CSDK-3063]
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Typically, a maximum of three H.264 encoders can be used at once. When this limit is exceeded no errors are raised and new video Tracks are not encoded. #17
  • 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.0.0-beta4

Architecture Compressed Size Uncompressed Size
Universal 9.4 MB 21.0 MB
arm64 4.4 MB 11.2 MB
armv7 4.8 MB 9.5 MB
Assets 4
Pre-release

@twilio-sdk-build twilio-sdk-build released this Aug 5, 2019 · 3 commits to Releases since this release

This release consumes twilio-video-cpp-4.0.0-beta3-rc45.

Enhancements

  • The Participant's signaling connection now conforms to Twilio's TLS & Cipher Suite Security Policy. Support for TLS versions older than 1.2 has been removed. [CSDK-3020]
  • Adjusted the buffer sizes used for signaling messages to reduce network fragmentation. [CSDK-2920]
  • Setting TVILogModuleSignaling enables logging of low level connection events at TVILogLevelTrace. [ISDK-2446]

Bug Fixes

  • WebSocket errors are handled immediately, rather than waiting for a timeout to occur. [CSDK-3025]
  • Handle rare exceptions when constructing a WebSocket. [CSDK-2755]

Known Issues

  • Future 3.0.0-beta releases will reduce the number of round-trips required to connect to a Room. [CSDK-2902]
  • In rare cases, the SDK might timeout during a TCP handshake and should be more aggressive at establishing a connection. [CSDK-2942]
  • Server side deflate compression is disabled due to occasional errors when reading messages. [CSDK-2949]
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Typically, a maximum of three H.264 encoders can be used at once. When this limit is exceeded no errors are raised and new video Tracks are not encoded. #17
  • 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.0.0-beta3

Architecture Compressed Size Uncompressed Size
Universal 9.4 MB 21.0 MB
arm64 4.4 MB 11.2 MB
armv7 4.8 MB 9.5 MB
Assets 4
Pre-release

@twilio-sdk-build twilio-sdk-build released this Jul 16, 2019 · 3 commits to Releases since this release

This release consumes twilio-video-cpp-4.0.0-beta2-rc40.

API Changes

  • Renamed + [TwilioVideoSDK version] to + [TwilioVideoSDK sdkVersion] to alleviate the clash with NSObject's version method.
  • Removed the type argument label for the Swift definition of [TVICameraSource captureDeviceForPosition:type]. In Swift, the function is now declared as class func captureDevice(position: AVCaptureDevice.Position, deviceType: AVCaptureDevice.DeviceType) -> AVCaptureDevice?.
  • Updated the Swift audio sample rate constant names to remove the redundant Audio. For instance AudioFormat.AudioSampleRate8000 is now AudioFormat.SampleRate8000.
  • Updated the Swift audio format channels constant names to remove the redundant Audio. For instance AudioFormat.AudioChannelsMono is now AudioFormat.ChannelsMono.
  • Refactored the TVILocalParticipantDelegate and TVIRemoteParticipantDelegate methods to follow the did naming convention for consistency with the other delegate methods. See the Migrating from 2.x to 3.x guide for more information.

Bug Fixes

  • The SDK will consistently recover the Participant's connection after multiple failed network handovers, or multiple failures on a single network. [CSDK-2957, CSDK-3007]
  • Failures in the Participant's connection are always detected within 15 seconds. [CSDK-2927]
  • Improved DNS retry logic and error handling. [CSDK-2801]
  • Disabled server side deflate compression due to occasional errors when reading messages. [CSDK-3004]
  • Security improvements. [CSDK-2986, CSDK-3005]

Known Issues

  • Future 3.0.0-beta releases will reduce the number of round-trips required to connect to a Room. [CSDK-2902]
  • Setting TVILogModuleSignaling does not produce any logging. [ISDK-2446]
  • In rare cases, the SDK might timeout during a TCP handshake and should be more aggressive at establishing a connection. [CSDK-2942]
  • Server side deflate compression is disabled due to occasional errors when reading messages. [CSDK-2949]
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Typically, a maximum of three H.264 encoders can be used at once. When this limit is exceeded no errors are raised and new video Tracks are not encoded. #17
  • 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.0.0-beta2

Architecture Compressed Size Uncompressed Size
Universal 9.4 MB 20.9 MB
arm64 4.4 MB 11.1 MB
armv7 4.7 MB 9.5 MB
Assets 4

@twilio-sdk-build twilio-sdk-build released this Aug 16, 2019 · 3 commits to Releases since this release

This release consumes twilio-video-cpp-3.5.0.

Bug Fixes

  • Fixed a crash that could occur when using a TVIVideoSource, and the source's buffer pool becomes empty.

Known Issues

  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Typically, a maximum of three H.264 encoders can be used at once. When this limit is exceeded no errors are raised and new video Tracks are not encoded. #17
  • 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]
  • Participant disconnect event can take up to 120 seconds to occur. #99

Size Impact for 2.10.1

Architecture Compressed Size Uncompressed Size
Universal 8.9 MB 19.3 MB
arm64 4.2 MB 10.3 MB
armv7 4.5 MB 8.7 MB
Assets 4
Pre-release

@twilio-sdk-build twilio-sdk-build released this Jun 6, 2019 · 4 commits to Releases since this release

This release consumes twilio-video-cpp-4.0.0-beta1-rc34.

The 3.0 release removes support for iOS 9.0, and raises the minimum supported iOS version to 10.0. Twilio Video 2.x releases will continue to support iOS 9.0 and later.

Enhancements

  • The SDK uses a new WebSocket based signaling transport, and communicates with globally available signaling Servers over IPv4 and IPv6 networks.
  • Added the TVIConnectOptions.region property. By default, the Client will connect to the nearest signaling Server determined by latency based routing. Setting a value other than "gll" bypasses routing and guarantees that signaling traffic will be terminated in the region that you prefer.
let connectOptions = ConnectOptions(token: accessToken) { (builder) in
    builder.region = "us1"
    builder.roomName = "my-room"
}
self.room = TwilioVideoSDK.connect(with: connectOptions, delegate: self)
  • Participants are considered to be reconnecting within 15 seconds, and are disconnected from a Room after 45 seconds of lost connectivity. #99

API Changes

  • Twilio Video has been updated for better Swift interoperability. See the Migrating from 2.x to 3.x guide for more information.
    • The TwilioVideo Obj-C class has been renamed to TwilioVideoSDK to reduce possible namespace issues in Swift due to the Module containing a Type with the same name.
    • The TVI prefix has been removed from all Twilio Video types
    • Many of the delegate function declarations have been revamped for better clarity of their intent
    • Some of the class method declarations have been revamped for better clarity of their intent
  • The TVIAudioSessionActivated() and TVIAudioSessionDeactivated() methods have been removed as the Video SDK no longer needs to terminate the signaling connection when an app is backgrounded.
  • Removed the deprecated TVIVideoCapturer APIs:
    • TVIVideoCapturer
    • TVICameraCapturer
    • TVIScreenCapturer
    • TVIVideoConstraints
    • TVILocalVideoTrack.capturer
    • TVILocalVideoTrack.constraints
    • TVILocalVideoTrack.trackWithCapturer:
    • TVILocalVideoTrack.trackWithCapturer:enabled:constraints:name:
  • Removed TVIAudioOptions that are no longer supported by WebRTC:
    • TVIAudioOptions.levelControl
    • TVIAudioOptions.levelControlInitialPeakLevelDBFS
    • TVIAudioOptionsBuilder.levelControl
    • TVIAudioOptionsBuilder.levelControlInitialPeakLevelDBFS
  • Removed the TVIVideoRenderer.optionalPixelFormats property due to lack of use. A TVIVideoRenderer is expected to support any valid TVIPixelFormat or drop incoming frames if it can't process them.

Bug Fixes

  • Participants can send and receive messages that are larger than 16 KB.
  • Renamed kDefaultAVAudioSessionConfigurationBlock to kTVIDefaultAVAudioSessionConfigurationBlock so that TwilioVoice.framework and TwilioVideo.framework may be used in the same application.
  • Fixed a crash that could occur when using a TVIVideoSource, and the source's buffer pool becomes empty.

Known Issues

  • Future 3.0.0-beta releases will reduce the number of round-trips required to connect to a Room. [CSDK-2902]
  • If heartbeats are not received, the signaling connection may take up to 45 seconds to be disconnected instead of 15 seconds. [CSDK-2927]
  • The SDK may crash if Network Quality or Dominant Speaker is enabled, and connectivity to the Room is lost, and the Room is deleted from within [TVORoomDelegate didDisconnectWithError:]. [CSDK-2950]
  • Setting TVILogModuleSignaling does not produce any logging. [ISDK-2446]
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Typically, a maximum of three H.264 encoders can be used at once. When this limit is exceeded no errors are raised and new video Tracks are not encoded. #17
  • Publishing H.264 video at greater than 1280x720 @ 30fps is not supported. If a failure occurs then no error is raised to the developer. #388 [ISDK-1590]

Size Impact for 3.0.0-beta1

Architecture Compressed Size Uncompressed Size
Universal 9.4 MB 20.9 MB
arm64 4.4 MB 11.1 MB
armv7 4.7 MB 9.5 MB
Assets 4

@twilio-sdk-build twilio-sdk-build released this Apr 24, 2019 · 4 commits to Releases since this release

This release consumes twilio-video-cpp-3.5.0.

This release adds support for publish only Participants (such as a ReplayKit Broadcast Extension) in a Group Room.

Enhancements

  • Added a new property TVIConnectOptions.automaticSubscriptionEnabled to control Track subscription behavior in Group Rooms:
    • Selecting YES (the default value) causes the Participant to be subscribed to all Tracks that are published in the Room
    • Selecting NO causes the Participant to be subscribed to none of the Tracks that are published in the Room
    • Selecting NO has no impact in a Peer-to-Peer Room
let connectOptions = TVIConnectOptions(token: accessToken) { (builder) in
    builder.automaticSubscriptionEnabled = true
    builder.roomName = "my-room"
}
self.room = TwilioVideo.connect(with: connectOptions, delegate: self)

Bug Fixes

  • Fixed a bug where media reconnection might fail when the loopback interface is mistakenly chosen as a preferred network interface. [CSDK-2762]
  • When network quality is enabled and the Client reconnects to a Room, it no longer sends extra network quality messages to Twilio's Servers. [CSDK-2876]
  • Network quality reports will continue to be received after heavy packet loss. [CSDK-2871]

Known Issues

  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Typically, a maximum of three H.264 encoders can be used at once. When this limit is exceeded no errors are raised and new video Tracks are not encoded. #17
  • 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]
  • Participant disconnect event can take up to 120 seconds to occur. #99

Size Impact for 2.10.0

Architecture Compressed Size Uncompressed Size
Universal 8.9 MB 19.3 MB
arm64 4.2 MB 10.3 MB
armv7 4.5 MB 8.7 MB
Assets 4

@twilio-sdk-build twilio-sdk-build released this Apr 18, 2019 · 4 commits to Releases since this release

This release consumes twilio-video-cpp-3.4.0.

API Changes

  • Implemented the Network Quality functionality for Group Rooms:
    • To enable the Network Quality functionality, set the TVIConnectOptions.networkQualityEnabled property to YES when connecting to a Group Room.
    • To determine the current network quality level for your Local Participant, query the TVILocalParticipant.networkQualityLevel. Note, this will return TVINetworkQualityLevelUnknown if:
      • The TVIConnectOptions.networkQualityEnabled property was set to NO OR
      • Using a Peer-to-Peer room OR
      • The network quality level has not yet been computed
    • Network Quality Level for Remote Participants will be available in a future release.
    • Implementing [TVILocalParticipantDelegate localParticipant:networkQualityLevelDidChange:] method on your TVILocalParticipantDelegate will allow you to receive callbacks when the network quality level changes.
@IBAction func connectToRoom(sender: AnyObject) {
    let connectOptions = TVIConnectOptions(token: accessToken) { (builder) in
        builder.networkQualityEnabled = true
        builder.roomName = "my-room"
    }
    room = TwilioVideo.connect(with: connectOptions, delegate: self)
}

...

// MARK: TVILocalParticipantDelegate
func localParticipant(_ participant: TVILocalParticipant, didChange networkQualityLevel: TVINetworkQualityLevel) {

    print("Network Quality Level Changed: \(networkQualityLevel)")
}

Known Issues

  • When network quality is enabled and the Client reconnects to a Room, it sends extra network quality messages to Twilio's Servers. [CSDK-2876]
  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Typically, a maximum of three H.264 encoders can be used at once. When this limit is exceeded no errors are raised and new video Tracks are not encoded. #17
  • 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]
  • Participant disconnect event can take up to 120 seconds to occur. #99

Size Impact for 2.9.0

Architecture Compressed Size Uncompressed Size
Universal 8.9 MB 19.3 MB
arm64 4.2 MB 10.3 MB
armv7 4.5 MB 8.7 MB
Assets 4

@twilio-sdk-build twilio-sdk-build released this Mar 21, 2019 · 4 commits to Releases since this release

This release consumes twilio-video-cpp-3.3.0.

Bug Fixes

  • Fixed a crash that could occur under poor network conditions when preferring H.264 and:
    • Connecting to a Group Room that supports H.264
    • Connecting to a Peer-to-Peer Room with one or more Firefox Participants
    • Connected to a Peer-to-Peer Room when the first Firefox Participant joins
    • Disabling a TVILocalVideoTrack
    • [ISDK-2317]
  • Fixed a race condition where stopping a TVICameraSource, waiting for its completion handler, and then starting a new TVICameraSource could result in the 2nd source being interrupted.

Known Issues

  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Typically, a maximum of three H.264 encoders can be used at once. When this limit is exceeded no errors are raised and new video Tracks are not encoded. #17
  • 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]
  • Participant disconnect event can take up to 120 seconds to occur. #99

Size Impact for 2.8.1

Architecture Compressed Size Uncompressed Size
Universal 8.8 MB 19.2 MB
arm64 4.2 MB 10.3 MB
armv7 4.4 MB 8.6 MB
Assets 4

@twilio-sdk-build twilio-sdk-build released this Mar 15, 2019 · 4 commits to Releases since this release

This release consumes twilio-video-cpp-3.3.0.

API Changes

  • Implemented the Dominant Speaker functionality for Group Rooms. To enable the dominant speaker functionality, set the TVIConnectOptions.dominantSpeakerEnabled property to YES when connecting to a Group Room. To determine the current dominant speaker, query the TVIRoom.dominantSpeaker property. When there is no dominant speaker, the TVIConnectOptions.dominantSpeakerEnabled property was set to NO or when using a Peer-to-Peer room, the TVIRoom.dominantSpeaker property will always return nil. When there is a dominant speaker, the TVIRoom.dominantSpeaker property will return the appropriate TVIRemoteParticipant. Implementing [TVIRoomDelegate room:dominantSpeakerDidChange:] method on your TVIRoomDelegate will allow you to receive callbacks when the dominant speaker in a Group Room changes. The dominantSpeakerDidChange: argument will contain the TVIRemoteParticipant of the dominant speaker, or nil if there is no longer a dominant speaker.
@IBAction func connectToRoom(sender: AnyObject) {
    let connectOptions = TVIConnectOptions(token: accessToken) { (builder) in
        builder.dominantSpeakerEnabled = true
        builder.roomName = "my-room"
    }
    room = TwilioVideo.connect(with: connectOptions, delegate: self)
}

...

// MARK: TVIRoomDelegate
func room(_ room: TVIRoom, dominantSpeakerDidChange participant: TVIRemoteParticipant?) {
    var identity = "N/A"

    if let participant = participant {
        identity = participant.identity
    }

    print("Dominant Speaker Changed: \(identity)")
}

Bug Fixes

  • Fixed a crash related to stats gathering which could occur when insights reporting is enabled. [CSDK-2751]
  • Fixed a crash related to media state summarization which could occur when disconnecting from a Room. [CSDK-2776]
  • Fixed a crash related to stats gathering which could occur in the media monitor component. [CSDK-2786]
  • [TVIRoom getStatsWithBlock:] will execute the provided block if called while TVIRoom.state == TVIRoomStateReconnecting. [CSDK-2787]

Known Issues

  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • Typically, a maximum of three H.264 encoders can be used at once. When this limit is exceeded no errors are raised and new video Tracks are not encoded. #17
  • 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]
  • Participant disconnect event can take up to 120 seconds to occur. #99

Size Impact for 2.8.0

Architecture Compressed Size Uncompressed Size
Universal 8.8 MB 19.2 MB
arm64 4.2 MB 10.3 MB
armv7 4.4 MB 8.6 MB
Assets 4

@twilio-sdk-build twilio-sdk-build released this Feb 14, 2019 · 4 commits to Releases since this release

This release consumes twilio-video-cpp-3.2.0.

API Changes

  • Added new TVIRoomStateReconnecting to signify that the Client is attempting to reconnect to the Room due to a network disruption.
  • Added two new delegate methods to TVIRoomDelegate
    • [TVIRoomDelegate room:isReconnectingWithError:] - Invoked when the Client experiences a network interruption in signaling or media. The TVIRoom.state property will transition to TVIRoomStateReconnecting and the Client will attempt to restore the connection.
    • [TVIRoomDelegate didReconnectToRoom:] - Invoked after the Client successfully reconnects to the Room. If the reconnection attempts fail, [TVIRoomDelegate room:didDisconnectWithError:] is invoked instead.

Enhancements

  • TwilioVideo.framework is now built with Xcode 10.1.

Bug Fixes

  • Fixed a bug where video tracks configured for screencast could be simulcasted with empty spatial layers. [CSDK-2540]

Known Issues

  • Unpublishing and republishing a TVILocalAudioTrack or TVILocalVideoTrack might not be seen by Participants. #34
  • The TVIVideoRenderingType.OpenGLES renderer is not supported in app extensions. [ISDK-2159]
  • Typically, a maximum of three H.264 encoders can be used at once. When this limit is exceeded no errors are raised and new video Tracks are not encoded. #17
  • 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]
  • Participant disconnect event can take up to 120 seconds to occur. #99

Size Impact for 2.7.0

Architecture Compressed Size Uncompressed Size
Universal 8.8 MB 19.1 MB
arm64 4.1 MB 10.2 MB
armv7 4.4 MB 8.6 MB
Assets 4
You can’t perform that action at this time.