> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daily.co/llms.txt
> Use this file to discover all available pages before exploring further.

# May 1, 2023

> The latest updates to Daily's real-time audio and video APIs.

## 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()`](/reference/daily-js/instance-methods/update-send-settings) 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`](/reference/daily-js/types/daily-call-options#param-experimental-chrome-video-mute-light-off) in favor of [`keepCamIndicatorLightOn`](/reference/daily-js/types/daily-call-options#param-keep-cam-indicator-light-on).

## 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()`](/reference/daily-js/instance-methods/update-send-settings) 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`](/reference/daily-js/types/daily-call-options#param-experimental-chrome-video-mute-light-off) in favor of [`keepCamIndicatorLightOn`](/reference/daily-js/types/daily-call-options#param-keep-cam-indicator-light-on), 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()`](/reference/react-native/instance-methods/update-send-settings) 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](/reference/rest-api/rooms/get-room#response-config-experimental-optimize-large-calls)) 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`](/reference/rest-api/rooms/get-room#response-config-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.
