2022-09-23

Updates to Web Client SDK (v3.7.0) - Introduced a new noise reduction level, an option to transmit video from a custom track and to blur the local participant's background or replace the background with an image, and modified APIs responsible for audio and video management. Updates to iOS Client SDK (v3.7.0) and Android Client SDK (v3.7.0)- Introduced a new noise reduction level and DNN-based Noise Reduction (DNR), increased the maximum number of video streams that may be transmitted to the local participant to 25, and modified APIs responsible for audio and video management. Updates to C++ SDK (v2.1.0) - Introduced a new Audio Service API with noise reduction settings, Video Service API, and DNN-based Noise Reduction (DNR).

Web Client SDK

3.7.0

Features

  • Introduced the VideoService that allows accessing APIs divided into two models: LocalVideo responsible for managing the local participant's video stream and RemoteVideo responsible for receiving video streams from a conference. The models offer the following new APIs:

    • Two start methods that allow enabling video either from the local participant's camera or a custom track. The methods also allow blurring the participant's background or replacing the background with a selected image. Participants can call these methods before a conference to see a preview of their video.
    • The setProcessor and disableProcessor methods responsible for changing the background of the participant's video.
    • The stop method that disables the participant's video.
    • The videoStarted, videoUpdated, and videoStopped events that inform about the status changes of the local participant's video.
    • The start and stop methods available in the RemoteVideo model that allow the local participant to start and stop receiving remote participants' video streams.
  • Added two new properties to JoinOptions:

    • The videoProcessor property allows modifying the local participant's background before joining a conference.
    • The customVideoTrack property allows adding a custom video track before joining a conference.
  • Introduced a low noise reduction level available via a new low noise reduction setting. The existing high setting causes aggressive removal of background sounds from the captured audio. The low 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. This mode gives participants full context of other participants' environments and creates a more realistic audio experience. Setting the preferred noise reduction level and audio capture mode is available via a new setCaptureMode method.

  • Introduced the AudioService, where the available APIs are divided into two models available via the AudioService: LocalAudio and RemoteAudio. The LocalAudio model offers APIs that allow the local participant to start and stop sending audio to a conference, set capture mode, and set comfort noise level. The RemoteAudio model allows the local participant to stop receiving audio from selected remote participants.

  • Added the packageUrlPrefix accessors to the VoxeetSDK object to allow retrieving and setting the URL prefix responsible for fetching SDK package files.

  • Introduced the isProtected and isAudioOnly accessors to the Conference model.

  • Improved audio-to-video synchronization.

Changes

  • Introduced changes that impact customers who use two different URLs for serving an application and hosting the SDK through a Content Delivery Network (CDN). If you want to use the join method with the Dolby Voice Codec or the setProcessor method in your application and use different web services for delivering your application and hosting the SDK, you have to enable cross-origin resource sharing (CORS). The instruction for enabling CORS is available in the Install the SDK step of the Initializing the SDK procedure.

  • Introduced changes that require copying the vsl_impl.wasm and vsl_impl.pkgwvsl files to the src folder of your application. For more information, see the Create a Basic Audio Conference Application guide.

Deprecated APIs

Changes introduced in AudioService and VideoService impact the existing APIs that are no longer supported in SDK 3.7:

iOS Client SDK

3.7.0

Features

  • Introduced a low noise reduction level available via a new low noise reduction setting. The existing high setting causes aggressive removal of background sounds from the captured audio. The low 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. This mode gives participants full context of other participants' environments and creates a more realistic audio experience. Setting the preferred noise reduction level and audio capture mode is available via a new setCaptureMode method.

  • 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 improved noise reduction to make virtual meetings more productive and pleasant.

  • Introduced the AudioService, where the available APIs are divided into two models available via the AudioService: LocalAudio and RemoteAudio. The LocalAudio model offers APIs that allow the local participant to start and stop sending audio to a conference, set capture mode, and set comfort noise level. The RemoteAudio model allows the local participant to stop receiving audio from selected remote participants.

  • Introduced the VideoService, where the available APIs are divided into two models available via the VideoService: LocalVideo and RemoteVideo. The LocalVideo model offers APIs that allow the local participant to start and stop sending video to a conference. The RemoteVideo model allows the local participant to stop receiving video streams from selected remote participants.

  • Increased the maximum number of video streams that may be transmitted to the local participant to 25.

Changes

Renamed the MediaEngineComfortNoiseLevel model to ComfortNoiseLevel.

Deprecated APIs

Changes introduced in AudioService and VideoService impact the existing APIs that are no longer supported in SDK 3.7:

Bug Fixes

  • Fixed an issue where changing a device by any remote participant caused kicking all iOS SDK participants out of a conference.

  • Fixed an issue with low audio output level in the listener mode on iOS 16 in non-Dolby Voice conferences.

Android Client SDK

3.7.0

Features

  • Introduced a low noise reduction level available via a new low noise reduction setting. The existing high setting causes aggressive removal of background sounds from the captured audio. The low 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. This mode gives participants full context of other participants' environments and creates a more realistic audio experience. Setting the preferred noise reduction level and audio capture mode is available via a new setAudioCaptureMode method.

  • 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 improved noise reduction to make virtual meetings more productive and pleasant.

  • Modified the AudioService, where the available APIs are divided into two models available via the AudioService: LocalAudio and RemoteAudio. The LocalAudio model offers APIs that allow the local participant to start and stop sending audio to a conference and set the preferred audio settings, such as audio capture mode and noise reduction level. The RemoteAudio model allows the local participant to stop receiving audio from selected remote participants.

  • Introduced the VideoService, where the available APIs are divided into two models available via the VideoService: LocalVideo and RemoteVideo. The LocalVideo model offers APIs that allow the local participant to start and stop sending video to a conference. The RemoteVideo model allows the local participant to stop receiving video streams from selected remote participants.

  • Increased the maximum number of video streams that may be transmitted to the local participant to 25.

Changes

Deprecated APIs

Changes introduced in AudioService and VideoService impact the existing APIs that are no longer supported in SDK 3.7:

C++ SDK

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).