Releases: voxeet/comms-sdk-cpp
2.2.1
Bug Fixes
- Fixed an issue in sample code on macOS where a start video call was performed prior to starting the macOS main event loop.
- Fixed an issue in the recorder plugin where the audio and video recording configurations were not set properly.
2.2.0
Features
- Introduced the camera capture support on macOS, Windows, and Linux.
- Introduced video_device_added, video_device_changed, video_device_removed, and video_device_error events that support the camera capture feature.
- Introduced the Video Frame Handling APIs to allow client applications to process the captured camera frames and inject them into conferences.
- Introduced APIs for client applications that allow receiving remote participants' video streams.
- Introduced the Media IO service responsible for handling audio recording and injection and recording of encoded video frames.
- Introduced the Multimedia Streaming Addon library on macOS and Windows to allow using Media IO features on all platforms. However, we still recommend using the Media IO service on Linux.
- Merged the Video Injection and Recording server APIs with respective client APIs used for video frame handling and receiving remote video streams.
- Introduced the token_expired_event to notify an application that the access token used by the SDK has expired.
- Introduced APIs responsible for performing video format conversions.
2.2.0-beta.2
Features
Introduced the token_expired_event to notify an application that the access token used by the SDK has expired.
Bug Fixes
- Fixed hardcoded absolute paths in FFmpeg dynamic libraries on macOS.
- Fixed an issue where the authorization token expiry could cause leaving a conference without notifying the proper conference_status_updated events.
2.2.0-beta.1
Features
- Introduced Camera Capture support on macOS, Windows, and Linux.
- Introduced the Video Frame Handling APIs to allow client applications to process the captured camera frames and inject them into conferences.
- Introduced APIs for client applications that allow receiving remote participants' video streams.
- Introduced the Media IO service responsible for handling audio recording and injection and recording of encoded video frames.
- Introduced the Multimedia Streaming Addon library on macOS and Windows to allow using Media IO features on all platforms. However, we still recommend using Media IO Service on Linux.
- Merged the Video Injection and Recording server APIs with respective client APIs used for video frame handling and receiving remote video streams.
2.1.0
Features
- Introduced the Audio Service API that allows enabling and disabling audio for the local and remote participants, as well as Audio Processing to configure noise reduction settings. The high noise reduction setting causes an aggressive removal of background sounds from the captured audio. The low noise reduction setting removes only stationary sounds, such as the sound of a computer fan, air conditioning, or microphone hum, and allows sending more ambient audio into a conference. The unprocessed setting captures background noise and non-voice sounds, and uses echo suppression.
- Introduced the VideoService API that allows managing the local participant’s video stream.
- Introduced DNN-based Noise Reduction (DNR) that improves voice clarity by reducing echo and background noises, such as keyboard typing noises and breathing sounds. This feature is based on a deep neural network and offers an improved noise reduction to make virtual meetings more productive and pleasant.
Changes
- Added additional information to the conference_info structure returned by the create call.
- Improved the logging infrastructure by adding log_settings and a new set_log_settings method that allows setting different log levels in the Media and SDK library and offers the ability to log to a file.
- Provided ability for Windows applications to set_app_allocator to override new/delete operators in the SDK and Media libraries. This is not needed on MacOS or Linux platforms, so it is only made available on Windows.
Bug Fixes
- Fixed an issue where an input and output audio device could not be set as an input or output device. Added the utilized_direction enum to the device_changed structure to indicate whether the device is the input or output device.
- Fixed an issue where a conference was interrupted while connecting and disconnecting wired headphones. Device timeout failures can now be listened for using the add_event_handler(device_timeout_failure).
2.1.0-beta.1
Features
- Introduced the Audio Service API that allows enabling and disabling audio for the local and remote participants, as well as Audio Processing to configure noise reduction settings. The high noise reduction setting causes an aggressive removal of background sounds from the captured audio. The low noise reduction setting removes only stationary sounds, such as the sound of a computer fan, air conditioning, or microphone hum, and allows sending more ambient audio into a conference. The unprocessed setting captures background noise and non-voice sounds, and uses echo suppression.
- Introduced the VideoService API that allows managing the local participant’s video stream.
- Introduced DNN-based Noise Reduction (DNR) that improves voice clarity by reducing echo and background noises, such as keyboard typing noises and breathing sounds. This feature is based on a deep neural network and offers an improved noise reduction to make virtual meetings more productive and pleasant.
Changes
- Added additional information to the conference_info structure returned by the create call.
- Improved the logging infrastructure by adding log_settings and a new set_log_settings method that allows setting different log levels in the Media and SDK library and offers the ability to log to a file.
- Provided ability for Windows applications to set_app_allocator to override new/delete operators in the SDK and Media libraries. This is not needed on MacOS or Linux platforms, so it is only made available on Windows.
Bug Fixes
- Fixed an issue where an input and output audio device could not be set as an input or output device. Added the utilized_direction enum to the device_changed structure to indicate whether the device is the input or output device.
- Fixed an issue where a conference was interrupted while connecting and disconnecting wired headphones. Device timeout failures can now be listened for using the add_event_handler(device_timeout_failure).
2.0.0
Features
-
Introduced the join method that allows joining a conference as a user who can send and receive media. Additionally, this version of the SDK introduces the following methods that allow the local participant to send media to the conference and use the mute option:
- start_audio: Starts audio transmission between the local client and a conference
- stop_audio: Stops audio transmission between the local client and a conference
- start_video: Starts video transmission between the local client and a conference
- stop_video: Stops video transmission between the local client and a conference
- set_media_source: Sets the Media Source instance as the media source for the SDK
- set_audio_processing: Enables and disables audio processing of the local audio stream that is sent to the conference
- mute: Mutes and unmutes the local participant
- remote_mute: Stops and starts playing audio from a specific remote participant
- mute_output: Mutes and unmutes an output audio device
- stop_remote_audio: Allows the local participant to not receive an audio stream from a selected remote participant
- start_remote_audio: Allows the local participant, who used the stop_remote_audio on a selected remote participant, to start receiving the remote participant's audio stream
-
Introduced the following methods:
- demo: Creates a demo conference and joins to it
- decline_invitation: Declines a conference invitation
- audio_level: Gets a participant's audio level
- get_all_audio_levels: Gets audio levels of all participants whose audio level is greater than or equal to 0.05
-
The SDK now supports the ability to inject audio and video streams into the conference using the Media Injection API and the Default Media Injector.
-
The SDK now supports the ability to capture and store remote audio and video data using the Media Recording API and the Default Media Recorder.
-
The SDK now supports Apple macOS 10.14+ and Microsoft Windows 10, 64 bit.
-
The SDK now supports the Dolby Voice Codec (DVC) in Dolby Voice conferences to improve audio processing and offer higher audio quality. The use of DVC also increases the conference capacity from 50 users to 250 users in audio-only conferences. The DVC codec is supported only on macOS and Windows.
-
Introduced a new Spatial Audio feature that allows placing conference participants spatially in a 3D rendered audio scene and hearing the audio from the participants rendered from their locations. This feature replicates audio conditions similar to real-life conditions to make virtual meetings more natural and realistic. Spatial audio is supported on Dolby Voice Clients and Stereo Opus Clients in Dolby Voice conferences. The Spatial Audio feature offers the following APIs:
- spatial_audio: Enables spatial audio for the local participant.
- set_spatial_position: Sets the participant’s position in space.
- set_spatial_direction: Defines the direction the local participant is facing; this allows for rotation of the local participant's head and modifies their audio depending on the new direction they are facing in space.
- set_spatial_environment: Allows an application to configure the spatial audio environment to work with an application’s coordinate system. This way, the audio renderer understands which directions the application considers forward, up, and right and which units it uses for distance.
- update_spatial_audio_configuration: Updates the spatial audio configuration to enable spatial audio during a conference. This method contains information about participants’ locations, the direction the local participant is facing, and a spatial environment of an application.
The spatial audio feature allows choosing a spatial audio style. You can either use the individual or shared style:- In the individual style, positions are not shared between participants, so each participant sets the positions of all participants and hears a unique spatial audio scene. This style is ideal for video conferencing where each participant sees a different layout of video tiles.
- In the shared style, one spatial audio scene is shared by all participants who hear audio from their locations. This approach is ideal for shared spaces, such as virtual trade shows or games. The additional benefit of this style is simplified communication between the client and the server and decreased network traffic. This style is only available for participants who joined a conference with spatial audio enabled.
Information about integrating spatial audio is available in the Integrating Individual Spatial Audio and Integrating Shared Spatial Audio guides.
Changes
Modified the implementation of asynchronous operations. To check the latest implementation, see the Asynchronous Operations documentation.
2.0.0-beta.1
Features
-
Introduced the join method that allows joining a conference as a user who can send and receive media. Additionally, this version of the SDK introduces the following methods that allow the local participant to send media to the conference and use the mute option:
- start_audio: Starts audio transmission between the local client and a conference
- stop_audio: Stops audio transmission between the local client and a conference
- start_video: Starts video transmission between the local client and a conference
- stop_video: Stops video transmission between the local client and a conference
- set_media_source: Sets the Media Source instance as the media source for the SDK
- set_audio_processing: Enables and disables audio processing of the local audio stream that is sent to the conference
- mute: Mutes and unmutes the local participant
- remote_mute: Stops and starts playing audio from a specific remote participant
- mute_output: Mutes and unmutes an output audio device
- stop_remote_audio: Allows the local participant to not receive an audio stream from a selected remote participant
- start_remote_audio: Allows the local participant, who used the stop_remote_audio on a selected remote participant, to start receiving the remote participant's audio stream
-
Introduced the following methods:
- demo: Creates a demo conference and joins to it
- invite: Invites participants to a conference
- decline_invitation: Declines a conference invitation
- audio_level: Gets a participant's audio level
- get_all_audio_levels: Gets audio levels of all participants whose audio level is greater than or equal to 0.05
-
The SDK now supports the ability to inject audio and video streams into the conference using the Media Injection API and the Default Media Injector.
-
The SDK now supports the ability to capture and store remote audio and video data using the Media Recording API and the Default Media Recorder.
-
The SDK now supports Apple macOS 10.14+ and Microsoft Windows 10, 64 bit.
-
The SDK now supports the Dolby Voice Codec (DVC) in Dolby Voice conferences to improve audio processing and offer higher audio quality. The use of DVC also increases the conference capacity from 50 users to 250 users in audio-only conferences. The DVC codec is supported only on macOS and Windows.
-
Introduced a new Spatial Audio feature that allows placing conference participants spatially in a 3D rendered audio scene and hearing the audio from the participants rendered from their locations. This feature replicates audio conditions similar to real-life conditions to make virtual meetings more natural and realistic. Spatial audio is supported on Dolby Voice Clients and Stereo Opus Clients in Dolby Voice conferences. The Spatial Audio feature offers the following APIs:
- spatial_audio: Enables spatial audio for the local participant.
- set_spatial_position: Sets the participant’s position in space.
- set_spatial_direction: Defines the direction the local participant is facing; this allows for rotation of the local participant's head and modifies their audio depending on the new direction they are facing in space.
- set_spatial_environment: Allows an application to configure the spatial audio environment to work with an application’s coordinate system. This way, the audio renderer understands which directions the application considers forward, up, and right and which units it uses for distance.
- update_spatial_audio_configuration: Updates the spatial audio configuration to enable spatial audio during a conference. This method contains information about participants’ locations, the direction the local participant is facing, and a spatial environment of an application.
The spatial audio feature allows choosing a spatial audio style. You can either use the individual or shared style:- In the individual style, positions are not shared between participants, so each participant sets the positions of all participants and hears a unique spatial audio scene. This style is ideal for video conferencing where each participant sees a different layout of video tiles.
- In the shared style, one spatial audio scene is shared by all participants who hear audio from their locations. This approach is ideal for shared spaces, such as virtual trade shows or games. The additional benefit of this style is simplified communication between the client and the server and decreased network traffic. This style is only available for participants who joined a conference with spatial audio enabled.
Information about integrating spatial audio is available in the Integrating Individual Spatial Audio and Integrating Shared Spatial Audio guides.
Changes
- Modified the implementation of asynchronous operations. To check the latest implementation, see the Asynchronous Operations documentation.
1.1.0-beta.3
Bug Fixes
Fixed the Websocket URL to prevent the Websocket handshake from failing after a backend update.
1.1.0-beta.2
Changes
Updated the root CA certificate used by the SDK to validate HTTP requests. Users who prefer to stay on SDK 1.1.0-beta.1 need to update the certificate file with the new content, as described in this documentation.