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-updated
event 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 socket
orerror 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 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
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. 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-updated
event 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 socket
orerror 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 enablingexperimental_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 newReduce
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.