May 1, 2023

Overview

April was a very busy month! Some highlights include:

  • You can modify the send settings for the local camera and custom tracks that you publish via the updateSendSettings() API
  • HIPAA organizations can now record using raw tracks
  • Noise cancellation is now easier to find and use in Daily Prebuilt
  • Daily Prebuilt's breakouts feature now supports calls with more than 50 participants

Reminder: the experimentalChromeVideoMuteLightOff in favor of keepCamIndicatorLightOn.

daily-js

0.44.1

Bugfixes

  • Fixed an issue where simulcast encodings set within dailyConfig were not respected.

0.44.0

Features

  • Updated our default simulcast settings and provided new methods to read and modify simulcast settings within a call. We provide two presets which match most needs, 'bandwidth-optimized' and 'quality-optimized', but developers can specify custom settings as well for advanced usage. See updateSendSettings() for more details.
    • Related to the above work, we have changed the default send resolution when using daily-js in mobile browsers:
      • Android: before the resolution was 720x1280. Now, the default resolution is 360x640.
      • iOS: before the resolution was 480x640. Now, the default resolution is 360x640.
      • iPads now use mobile resolution and layer defaults. Previously, some iPads were using defaults intended for desktops.
  • Added participant selection for recording and streaming layouts.

Bugfixes

  • Fixed an issue where switching mic after starting camera video processing could cause the camera processor to go away.
  • Fixed an issue where quickly calling updateInputSettings() multiple times in succession could lead to a video or audio processor not being applied.

Other improvements

  • Improved the behavior of recordings when a meeting is moved from one SFU to another, e.g. due to a networking issue or a new version of the server being deployed. A recording error is now thrown in those cases, allowing developers or end users to restart the recording or otherwise respond.
  • Improved handling of call logs during disconnect to ensure logs are properly flushed during a disconnect.

0.43.0

Features

  • Daily JS now allows HIPAA organizations to use raw tracks recordings.

Bugfixes

  • Fixed a bug where, in P2P mode, toggling the camera off and back on would disable background effects.
  • Fixed an occasional WASM memory access error by adding an additional safety check around video not existing when trying to process it.
  • Fixed a bug where getInputSettings() could erroneously report after load() (or startCamera(), or join()) that you had no processors specified, until the first input-settings-updated event fired. This could occur even if you specified one in the preload cache via a constructor argument, or a previous call to updateInputSettings().
  • Fixed an issue where a non-default device could be selected automatically as though it were the default.
  • Fixed an issue where the unprocessed track could occasionally be sent when background processing is enabled.
  • Fixed an issue where leaving soon after joining could result in attempt to send to closed socket or error connecting to the sfu errors to be logged.
  • Fixed a longstanding issue where back-to-back available-devices-updated events (with identical payloads) would fire in the case of a combination input/output device (i.e. a headset) being plugged in or unplugged.
  • Fixed some out of date type definitions for DailyInputVideoSettings.
  • Fixed DailyEventObjectFatalError types to resolve correctly in typescript codebases.

Other improvements

  • Improved handling of failure to switch from P2P to SFU topology when a recording is initiated. A recording error is now emitted, rather than failing silently.
  • Updated several libraries with security issues reported by npm audit to versions without reported vulnerabilities.
  • Deprecate experimentalChromeVideoMuteLightOff in favor of keepCamIndicatorLightOn, and flip the default. If not specified otherwise, turning off the camera now turns the camera indicator light off.
  • Improved device detection code to use devicechange event wherever available rather than polling.
  • Adjusted the cpu load trigger for disabling background processing to be a little more optimistic and less likely to disable processing.

react-native-daily-js

0.42.1

Bugfixes

  • Fixed an issue where simulcast encodings set within dailyConfig were not respected.

0.42.0

Features

  • Updated our default simulcast settings and provided new methods to read and modify simulcast settings within a call. We provide two presets which match most needs, 'bandwidth-optimized' and 'quality-optimized', but you can specify custom settings as well for advanced usage. See updateSendSettings() for more details.
    • Related to the above work, we have changed the default send resolution when using daily-js in mobile browsers:
      • Android: before the resolution was 720x1280. Now, the default resolution is 360x640.
      • iOS: before the resolution was 480x640. Now, the default resolution is 360x640.
      • iPads now use mobile resolution and layer defaults. Previously, some iPads were using defaults intended for desktops.
  • Added participant selection for recording and streaming layouts.

Bugfixes

  • Fixed an issue where publishing encodings weren't always respected on React Native for Android.
  • Fixed an issue where a websocket error would be logged after leaving a call using React Native for Android.

Other improvements

  • Improved the behavior of recordings when a meeting is moved from one SFU to another, e.g. due to a networking issue or a new version of the server being deployed. A recording error is now thrown in those cases, allowing developers or end users to restart the recording or otherwise respond.
  • Improved handling of call logs during disconnect to ensure logs are properly flushed during a disconnect.

0.41.0

Features

  • Daily JS now allows HIPAA organizations to use raw tracks recordings.

Bugfixes

  • Fixed an issue where calculation of CPU metrics could throw an error on react native.
  • Fixed a bug where getInputSettings() could erroneously report after load() (or startCamera(), or join()) that you had no processors specified, until the first input-settings-updated event fired. This could occur even if you specified one in the preload cache via a constructor argument, or a previous call to updateInputSettings().
  • Fixed an issue where a non-default device could be selected automatically as though it were the default.
  • Fixed an issue where leaving soon after joining could result in attempt to send to closed socket or error connecting to the sfu errors to be logged.
  • Fixed a longstanding issue where back-to-back available-devices-updated events (with identical payloads) would fire in the case of a combination input/output device (i.e. a headset) being plugged in or unplugged.
  • Fixed some out of date type definitions for DailyInputVideoSettings.
  • Fixed DailyEventObjectFatalError types to resolve correctly in typescript codebases.

Other improvements

  • Updated several libraries with security issues reported by npm audit to versions without reported vulnerabilities.
  • Improved device detection code to use devicechange event wherever available rather than polling.

Daily Prebuilt

Features

  • The user's noise cancellation selection is cached in order to make it easier to reuse their preferred setting.
  • Added large call support (enabled through the experimental_optimize_large_calls room property) for breakout rooms. By enabling experimental_optimize_large_calls for a breakouts enabled room, you can now add more than 50 participants to a breakout room.
  • Owners in a breakout room now have the ability to see the attendee list for all rooms from the People panel.
  • Users can now enable noise cancellation from the precall lobby. When enable_noise_cancellation_ui is enabled for a room, a new Reduce button appears in the lobby that lets users turn noise cancellation on and off.

Bugfixes

  • Fixed an issue where local users couldn't pin themselves.
  • Fixed an issue where Picture-in-Picture would sometimes fail to start.
  • Fixed an issue where a console error was emitted due to a play() attempt being interrupted. This has no functional impact, but removes an error from occurring.

Media Services

  • HIPAA-enabled domains can now create raw-tracks recordings.
  • Continued tuning and testing a new video muxer which will create seekable video without remuxing.
  • Ensured that transcription-started events are sent to new participants that join a call.
  • Fixed a regression that caused recordings using the fps parameter to fail for valid inputs.

VCS

  • Fixed a bug with videoSettings.preferredParticipantIds that unintentionally removed certain participants from a recording.
  • Resolved security vulnerabilities of dependent libraries in daily-vcs.

REST API

  • Made a number of performance optimizations for the room creation API.

Dashboard

  • Added support to display iOS and Android version and library information for native mobile users.
  • Fixed an issue where some toggles in the dashboard's Room tab needed to be double clicked to enable and disable features.
  • Fixed an issue where a console error was emitted due to a JSON error.

Additional

  • We are now collecting sales tax for existing customers in New York.
  • Optimized some internal communication paths to reduce the overload system load for our SFUs.
  • The oldest supported version of daily-js is now v0.32.0.