Deprecation Notice - all 1.x Versions |
---|
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. |
The Twilio Programmable Video SDKs use Semantic Versioning.
Enhancements
TwilioVideo.framework
is now built with Xcode 9.4.1.Known Issues
Improvements
Bug Fixes
Known Issues
Improvements
TwilioVideo.framework
and our C++ core library are now built with the Xcode 9.3 toolchain.Bug Fixes
Known Issues
Features
framesEncoded
stats field to TVILocalVideoTrackStats
.Bug Fixes
[TVIRoomDelegate::roomDidDisconnect:error:]
was not invoked due to a race condition between a network handover and a user initiated [TVIRoom disconnect] call
. #235Known Issues
Enhancements
TwilioVideo.framework
and our C++ core library are now built with the Xcode 9.2 toolchain.Bug Fixes
TVIRoom
in bad network conditions.Known Issues
Enhancements
Bug Fixes
stuns
and turns
schemes are now supported. The SDK will now use turns
servers if needed when turn is enabled for your Room.Known Issues
Enhancements
TwilioVideo.framework
and our C++ core library are now built with the Xcode 9.1 toolchain.Bug Fixes
[TVIRoomDelegate room\:didFailToConnectWithError:]
, [TVIRoomDelegate roomDidStartRecording:]
and [TVIRoomDelegate roomDidStopRecording:]
.Known Issues
Enhancements
TwilioVideo.framework
and our C++ core library are now built with the Xcode 9.0 toolchain.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 protocolKnown Issues
Bug Fixes
TVIAudioSink
now pre-allocates buffers used on a real-time CoreAudio thread. #104 [ISDK-1412]Known Issues
Bug Fixes
TVIAudioSink
s 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. #104Known Issues
Enhancements
Known Issues
Bug Fixes
[TVIRoom disconnect:]
before [TVIRoomDelegate didConnectToRoom:]
is called and then destroying the TVIRoom
in the [TVIRoomDelegate room\:didDisconnectWithError:]
callback.TVIIceCandidateStats.port
and TVIIceCandidateStats.isRemote
.Known Issues
This release improves compatibility with iOS 11.0, resolving debugger warnings and assertions that could occur when developing against the SDK.
Bug fixes
TVIVideoView
. #141[CADisplayLinkTimer preferredFramesPerSecond]
APIs instead of intervals on iOS 10.0 or newer.TVIScreenCapturer
no longer queries UIApplicationState
from outside the main thread.TVIAudioSink
s automatically after a TVIAudioTrack
is removed from a TVIParticipant
in order to prevent crashes.Known issues
Features
TVIVideoView
's Metal implementation now supports sharing of CVPixelBuffer
s with the GPU, and can render frames in any TVIPixelFormat
without additional CPU conversions. In order to qualify for the fast sharing path CVPixelBuffer
s should be created with kCVPixelBufferMetalCompatibilityKey
and kCVPixelBufferIOSurfacePropertiesKey
.Bug fixes
TVIConnectOptions
and TVIConnectOptionsBuilder
's audioTracks
and videoTracks
properties were not respecting their nonnull
annotation.TVIIceCandidatePairStatus currentRoundTripTime
.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
Bug fixes
TVIError
enumeration is now declared as an NSInteger
to match what NSError
is expecting.Known issues
Bug fixes
Known issues
Features
TVIStatsReport
objects returned from the TVIRoom:getStatsWithBlock:
API.TVIRoom
.Bug fixes
Known issues
Features
Bug fixes
Known issues
Features
TVIAudioSink
protocol. At the moment this is only supported on remote TVIAudioTrack
instances. #104Bug fixes
Known issues
Features
insightsEnabled
property on TVIConnectOptionsBuilder
:1TVIConnectOptions *options = [TVIConnectOptions optionsWithToken:token2block:^(TVIConnectOptionsBuilder * _Nonnull builder) {3builder.insightsEnabled = NO;4}];
Bug fixes
TVICameraCapturer
when changing cameras where the AVCaptureSession
was left in an uncommitted state.Known issues
Bug fixes
TVILocalVideoTrack
with attached renderers.Known issues
Bug fixes
TVIVideoView
where rotation was incorrect after disabling and then enabling TVILocalVideoTrack
. #119Known issues
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
Bug fixes
TVIAudioOutputVoiceChatDefault
by default, causing audio to be routed to the receiver on iPhones.Known issues
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.selectNextSource
API from TVICameraCapturer
.cameraCapturerWasInterrupted:
delegate method to cameraCapturerWasInterrupted:reason:
.TVICameraCapturer
no longer generates the TVICameraPreviewView
by default. To enable previewView
generation, call the initWithSource:delegate:enablePreview:
initializer.cameraCapturerPreviewDidStart:
delegate method.mirror
property to TVIVideoView
.TVIVideoView
s that are rendering a TVILocalVideoTrack
created with a TVICameraCapturer
.Bug fixes
Known issues
Features
TVIVideoViewRenderer
has been renamed to TVIVideoView
, and is now a subclass of UIView
.attach
, detach
and videoDimensions
APIs from TVIVideoTrack
.TVIVideoTrackDelegate
protocol. Applications interested in size and orientation metadata should use TVIVideoViewDelegate
instead.TVIAudioConstraints
has been renamed to TVIAudioOptions
to be consistent with their counterparts in WebRTC.TVIAudioOptions
now only exposes Audio Options that are available for use on iOS.Bug fixes
PeerConnectionSignaling::closePrivate
.Known issues
Features
Known issues
Bug fixes
twilio::video::EndpointConfigurationProvider
.twilio::video::Participant
's destructor.Known issues
Features
TVIConnectOptions
property reconnectAfterReturningToForeground
to allow disabling automatic reconnect behavior.Bug fixes
room.disconnect()
API is called. #95twilio::signaling::RoomSignalingImpl
. #78twilio::signaling::PeerConnectionSignaling
. #851.0.0-beta9
where a track added event was not raised when the trackId was reused.Known issues
Features
getStats:
method to TVIRoom
that builds a TVIStatsReport
with metrics for all the audio and video tracks being shared to a Room.Bug fixes
TVICameraCapturer
would leak its AVCaptureSession
.TVIVideoCapturer
API calls in TVIScreenCapturer
and TVICameraCapturer
.Known issues
Features
NSError
will now carry a numeric code belonging to one of these ranges. #67TVIVideoClient
. 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.TVIVideoClient
class factory to the TVIConnectOptions
initializer.Connecting to a Room in beta9 using Swift:
1let connectOptions = TVIConnectOptions.init(token: accessToken) { (builder) in2builder.roomName = "my-room"3builder.localMedia = self.localMedia4}5room = TVIVideoClient.connect(with: connectOptions, delegate: self)
Bug fixes
NET_SERVICE_TYPE_SIG
option on signaling sockets in iOS 10.TVITrack
resources could be destroyed while in flight to a delegate..xcconfig
files which were mistakenly included in 1.0.0-beta8
.init
on all builder classes.TVIVideoFrame
, and TVIIceServer
.TVIVideoTrack
.Known issues
Bug fixes
TVIVideoRenderer
and TVIVideoFrame
on iOS 8.Known issues
Features
TVIVideoViewRenderer
by sharing frames with the GPU where possible.Bug fixes
1.0.0-beta6
where tokens with purely numeric identities caused a crash.mDNSResponder
when constructing TVIVideoClient
.Known issues
Features
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
TVITrack
instance after other SDK resources could cause a crash.Known issues
TVIVideoViewRenderer
instances will remain paused in this environment.Features
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.optionalPixelFormats
property in TVIVideoRenderer
. Support for rotation tags is now mandatory for all renderers.Bug fixes
TVIAudioOutputVoiceChatDefault
by default, causing audio to be routed to the receiver on iPhones.nil
checks and protocol conformance.Known issues
TVIVideoViewRenderer
to support CallKit / backgrounding use cases cause rendering timers to be paused when used in an extension.Features
TVIVideoViewRenderer
now supports two new content modes: UIViewContentModeScaleAspectFill
and UIViewContentModeScaleToFill
.TVIVideoFrame
timestamps are now expressed in units of microseconds instead of nanoseconds.TVII420Frame
now provides display timestamps.Bug fixes
TVICameraCapturer
on the iOS 10.0 betas no longer causes a crash.TVILocalMedia
could cause a crash.TVIError.h
.Known issues
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.TVIVideoViewRenderer
to support CallKit / backgrounding use cases cause rendering timers to be paused when used in an extension.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.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.Known issues
UIViewContentModeScaleAspectFit
.TVIVideoViewRenderer
to support CallKit / backgrounding use cases in beta2 cause rendering timers to be paused when used in an extension.New features
TVIAudioController
.TVIVideoCapturer
. The existing camera and screen capturers now adopt this public API.Bug fixes
TVIRoomDelegate
method room\:didFailToConnectWithError
where an error was not returned even though the argument was marked as nonnull
.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.TVILogLevelDebug
or greater shows the signaling messages exchanged.Known issues
UIViewContentModeScaleAspectFit
.TVIVideoViewRenderer
to support CallKit / backgrounding use cases in beta2 cause rendering timers to be paused when used in an extension.New features
TVICameraCapturer
. The SDK is compiled against the iOS 10 SDK, and continues to target iOS 8.1+.Bug fixes
TVIVideoTrack
it will automatically be cleaned up when the track is destroyed.TVIIceServer
could result in a crash.Known issues
New features
TWCConversation
with TVIRoom
and eliminated Invites from the SDK. Instead of calling inviteToConversation
on TwilioConversationsClient
you should call connectWithDelegate
or connectWithOptions:delegate
on TVIVideoClient
.connect
and passing the Room's name as an argument.TVILocalMedia
is synchronous, and no longer requires a delegate.TVILocalMedia
independently from joining a Room. The same instance of TVILocalMedia
can be reused in multiple Rooms.TVIScreenCapturer
, a new capturer which shares the contents of a UIView
with other Participants.TVILocalAudioTrack
. You can use TVIAudioConstraints
in order to customize the audio that you share.Bug fixes
Known issues