All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
MediaFactory.audioSession
to use instead of deprecatedAudioSession.shared
0.10.0 - 2024-10-09
- Support audio in screen capture
- Make it possible to set preferred aspect ratio
MediaFactory.audioSession
to use instead of deprecatedAudioSession.shared
- Fix audio configuration for screen capture
- Don't check for host on mute/unmute
- Support cancellation in DNS lookup
- Use different audio session mode for audio and video calls
- Remove various deprecated methods and types
0.9.0 - 2023-10-08
- New
AudioSession
class for configuring audio on iOS - New customization options for
VideoComponent
: background color, corner radius - Sort SRV records according to RFC 2782 specs
- BREAKING:
MediaConnection.secureCheckCode
is now a publisher - BREAKING: All functions in
MediaConnection
are now async - Update WebRTC to M115
- Make it possible to create
WebRTCMediaFactory
with video encoder and decoder factories - Use
RTCDefaultVideoEncoderFactory
andRTCDefaultVideoDecoderFactory
as default factories on all platforms
- Fix
DNSServiceProcessResult
crash - Fix Xcode 15 warnings
- Fall back to
.invalidPin
error on 403 - Fix creating conference address with uri
- Remove various deprecated methods and types
0.8.0 - 2023-08-03
VideoComponent
can be created with customsetRenderer
closure- Support external cameras on macOS
ConferenceAddress
can be created with alias and host with no extra validationMediaConnection.receiveMainRemoteAudio
andMediaConnection.receiveMainRemoteVideo
to enable remote audio/videoMediaConnection.setMainDegradationPreference
andMediaConnection.setPresentationDegradationPreference
that let one specify the desired behavior in low bandwidth conditionsMediaConnection.setMaxBitrate
that controls maximum bitrate for each video stream
NodeResolver
now returns a host name instead of IP adress if A-record is found (fixes the issue with a certificate mismatch when the certificate is not configured to allow multi-domain)- Don't stop video capture on switching between front and back cameras in
WebRTCCameraVideoTrack
- Use default WebRTC bundle policy
- Print a warning if Infinity version prior to v29 is detected. This will be a hard requirement in Q4 2023
ConferenceAlias
is renamed toConferenceAddress
DeviceAlias
is renamed toDeviceAddress
ack
is now called later in the call setup phase- BREAKING:
MediaConnection.setMainAudioTrack
andMediaConnection.setMainVideoTrack
are now throwing functions, and no longer enable remote audio/video by default. Please useMediaConnection.receiveMainRemoteAudio
andMediaConnection.receiveMainRemoteVideo
to enable them.
- Prevent data races when reading/writing to arrays with ice candidates in
WebRTCMediaConnection
- Filter out windows without bundle ID in
ScreenMediaSourceEnumerator
on macOS
- Removed various deprecated methods
0.7.0 - 2023-03-02
- Screen capture:
- Make it possible to start capture session not only from the app, but also from the iOS control center while on an active call
- Introduce keep-alive time in order to stop broadcast extension, started from the iOS control center, when there are no active calls
- Add more broadcast error types and the API to finish screen capture session with reason, such as callEnded or presentationStolen. See
ScreenMediaTrack.stopCapture(reason:)
- Screen capture: change IPC on iOS from Unix domain sockets to memory-mapped file
- Deprecate
ScreenMediaTrackFactory.createScreenMediaTrack(appGroup:broadcastUploadExtension)
on iOS, usecreateScreenMediaTrack(appGroup:broadcastUploadExtension:defaultVideoProfile)
instead - Deprecate
ScreenMediaTrackFactory.createScreenMediaTrack(mediaSource)
on macOS, usecreateScreenMediaTrack(mediaSource:defaultVideoProfile)
instead - Deprecate
ScreenMediaCapturer.startCapture(atFps:outputDimensions)
on iOS, usestartCapture(atFps:)
instead
- Adapt WebRTC output format on iOS
0.6.0 - 2023-01-18
- Make it possible to participate in direct media calls
- New
VideoContentMode.fit
to fit the size of the video view by maintaining the original aspect ratio (could be used to support portrait video on direct media call) - Send chat messages via WebRTC data channel when on direct media call
- Calculate secure check code on each send/receive of an SDP offer/answer, see
MediaConnection.secureCheckCode
- Load conference themes, accessible via
Conference.splashScreens
property orsplashScreen
event - New conference events:
splashScreen
for local rendering of splash images and messagespeerDisconnected
for restarting media connection during direct media callrefer
for tranferring direct media call to transcoded call and back
- BREAKING: Use String instead of UUID for various types in
PexipInfinityClient
- BREAKING: add kind property to
IceServer
struct to differentiate TURN and STUN servers - BREAKING:
CameraVideoTrackFactory
: use newMediaDevice
type instead ofAVCaptureDevice
- BREAKING:
CameraVideoTrack.toggleCamera
doesn't return camera position anymore - BREAKING:
SignalingChannel.sendOffer
now returns optional SDP string - More changes in the public APIs of
PexipInfinityClient
andPexipMedia
frameworks, see the Example project for more info.
0.5.0 - 2022-09-13
- Make it possible to receive incoming calls with Registration API
- Update WebRTC to M105
- Remove
PixipConference
framework, use PexipInfinityClient instead - Rename
PexipUtils
framework to PexipCore - Screen sharing: move functionality to a separate PexipScreenCapture framework
- Video filters: move functionality to a separate PexipVideoFilters
- DTMF APIs were moved to MediaConnection and CallService
- Various breaking changes in the public APIs, see the Example project for more info.
0.4.0 - 2022-08-02
- Video filters, e.g. background blur, virtual background, custom filters, etc.
- Live captions
- DTMF support
0.3.0 - 2022-06-27
- SDK Documentation
- Screen sharing on iOS with ReplayKit and Broadcast Upload Extensions
- Screen sharing on macOS
MediaConnectionConfig
: add an option to enable DSCP- Move bandwidth setting from
QualityProfile
toMediaConnectionConfig
- BREAKING: rename public methods in
MediaConnection
, see docs for reference.
0.2.0 - 2022-05-12
- Introduce
MediaConnectionFactory
to create local media tracks without an instance ofMediaConnection
- Update example projects
- Use WebRTC M96
0.1.0 - 2022-05-06
- Initial release