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. SeeupdateSendSettings()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.
- Related to the above work, we have changed the default send resolution when using daily-js in mobile browsers:
- 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 afterload()(orstartCamera(), orjoin()) that you had no processors specified, until the firstinput-settings-updatedevent fired. This could occur even if you specified one in the preload cache via a constructor argument, or a previous call toupdateInputSettings(). - 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 socketorerror connecting to the sfuerrors to be logged. - Fixed a longstanding issue where back-to-back
available-devices-updatedevents (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
DailyEventObjectFatalErrortypes 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
experimentalChromeVideoMuteLightOffin favor ofkeepCamIndicatorLightOn, 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
devicechangeevent 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
dailyConfigwere 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. SeeupdateSendSettings()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.
- Related to the above work, we have changed the default send resolution when using daily-js in mobile browsers:
- 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 afterload()(orstartCamera(), orjoin()) that you had no processors specified, until the firstinput-settings-updatedevent fired. This could occur even if you specified one in the preload cache via a constructor argument, or a previous call toupdateInputSettings(). - 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 socketorerror connecting to the sfuerrors to be logged. - Fixed a longstanding issue where back-to-back
available-devices-updatedevents (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
DailyEventObjectFatalErrortypes 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
devicechangeevent 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_callsroom property) for breakout rooms. By enablingexperimental_optimize_large_callsfor 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_uiis enabled for a room, a newReducebutton 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-startedevents are sent to new participants that join a call. - Fixed a regression that caused recordings using the
fpsparameter to fail for valid inputs.
VCS
- Fixed a bug with
videoSettings.preferredParticipantIdsthat 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-jsis now v0.32.0.