Skip to content

Releases: daily-co/daily-js

0.43.0

12 Apr 22:28
Compare
Choose a tag to compare

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

0.42.2

30 Mar 21:05
Compare
Choose a tag to compare

Features

  • The event cpu-load-change has a new property cpuLoadStateReason, with possible values ENCODE, DECODE, SCHEDULE_DURATION, NONE, to describe why the event has been triggered. The method getCpuLoadStats() also has multiple new properties.
  • The updateInputSettings() method now supports audio processing for microphone tracks. The first feature released is noise cancellation built on top of Krisp's SDKs.

Bugfixes

  • Fixed an issue with default audio output change detection, as well as an issue where the device returned by call.getInputDevices().speaker would often be a microphone.
  • Fixed an issue where a non-default audio output device specified via setOutputDeviceAsync(), wouldn't properly apply to audio elements in the DOM if they were added after the call to setOutputDeviceAsync(). For example, if a new participant joined afterward, or if setOutputDeviceAsync() were invoked before join().
  • Fixed a problem where setInterval() intervals that the call object starts are never cleaned up if the user doesn't end up join()ing a call first. Intervals should be cleaned up when the user invokes destroy(), whether or not they ever join()ed.
    There is one side effect of this change: now, after destroy() is run, the call object will always be left with meetingState() as either 'left-meeting' or 'error', whereas previously the call object could also be left in a number of other states.
  • Fixed an issue where if you join a meeting in P2P mode with mic on, your audio sometimes doesn't play for the other person.
  • Fixed the DailyEventObjectCameraError and DailyCameraErrorObject type definitions to resolve to their defined camera error types, allowing developers to handle the different types of camera errors ergonomically in a TypeScript codebase.
  • Fixed an issue in our TypeScript definitions of custom layout properties passed to startRecording() / startLiveStreaming(), to mark composition_id as optional.
  • Fixed an issue where, in P2P mode, toggling the camera off and back on would disable background effects.

Other improvements

  • Increased the number of internal call quality statistics we record, for example the number of pauses and freezes in a video track or audio track.
  • Made some meeting errors in connection failure cases more informative.
  • Made a change to ensure that instanceid should always be included in live-streaming-started events.

0.41.0

15 Mar 20:48
Compare
Choose a tag to compare

Features

  • Made inputSettings specifiable in the join(), createCallObject(), and createFrame() methods, so that developers no longer need to join() first, and then call updateInputSettings(). See the inputSettings object's documentation for more info.

Bugfixes

  • Fixed an issue where processed video tracks could fall back to a default aspect ratio when muted and unmuted, introducing unwanted cropping or letterboxing.
  • Fixed a memory leak which could occur when processed video tracks are muted and unmuted.
  • Fixed TypeScript definitions for streaming layouts to remove composition_id from the object passed to the updateRecording() function (where it is not allowed), while keeping it in startRecording(), where composition_id is required.
  • Fixed an issue where iframeEventInputSettingsUpdateError() was being sent an error object and not the error message string it expected.

Other improvements

  • Improved handling of custom backgrounds in the case where the background's aspect ratio doesn't match the video's aspect ratio, by fitting the custom background within the video frame.
  • Updated mediasoup-client to version 3.6.80, which among other things, adds unified plan support for React Native.

0.40.0

21 Feb 23:37
Compare
Choose a tag to compare

Features

  • Added a keepCamIndicatorLightOn flag, which currently causes no change to daily-js behavior, but which will eventually become an opt-in flag when the default behavior changes. See the notice in the README as of this release for more details.
  • Added support for third party AV processors.
  • Added a strictMode flag to cause daily-js to throw an Error if more than one call-object is detected in use, before this behavior becomes the default beginning in daily-js 0.43.0. See the notice in the README as of this release for more details.
  • Added a getCallInstance() method, which can get a handle to your call instance from anywhere in case you lost track of it.
  • Added a new type field to track events, which can be any of 'video', 'audio', 'screenVideo', 'screenAudio', 'rmpVideo', 'rmpAudio', or other values of type string for custom tracks
  • Livestreams can now emit update events, including for errors and interruptions.

Bugfixes

  • Fixed an issue where fullscreen mode wouldn't trigger on iframed calls.
  • Fix a Safari < 16 issue where, when experimentalChromeVideoMuteLightOff is set, turning the camera off and then on would result in your local camera track having a 4:3 aspect ratio.
  • Fixed an issue where background setting and camera stream changes at the same time could conflict, and cause errors
  • Fixed an issue where background settings could not be applied if the camera had never been enabled
  • Fixed an issue where 403 Forbidden could be hit while downloading daily-js components if accessed during new code deployments

0.38.0

25 Jan 23:23
Compare
Choose a tag to compare

Bugfixes

  • Fixed a bug where an error could be thrown accessing an undefined object when unmuting while a device is not found.
  • Fixed an issue where one blocked device being blocked could cause both devices to appear as blocked.
  • Fixed an issue where a blocked device could appear to have a (blank) track, and be unmuted.
  • Fixed some customTrack TypeScript definitions.
  • Updated TypeScript definitions for DailyTrackSubscriptionOptions

Other improvements

  • Reduced the memory footprint of video processor URL object once they’re no longer needed.
  • Improved prevention of MUTE_REMOTE_AUDIO and MUTE_REMOVE_VIDEO from non-owner participants.
  • Removed a long deprecated path to set the local owner flag.

0.37.0

06 Jan 15:03
Compare
Choose a tag to compare

Improvements

  • Added new error types for issues while knocking for entry to a room.

Bugfixes

  • Fixed an issue where an error could be thrown while formatting a number used in a telemetry calculation.

0.36.1

16 Dec 21:07
Compare
Choose a tag to compare

Features

  • Improved logging to include pre-join logs and added new logs for identifying cases when we detect multiple daily instances are connected simultaneously (multiple daily instances is unsupported and leads to unexpected issues).
  • Added server-side support for properly detecting and warning clients when they are using a version that is nearing end of support, unsupported or nearing end of life as well as a means to reject a client from joining if using a version that is end of life’d.
  • Improve screen share error handling. Screen share errors now include more detailed information about how and why the error occurred. See the docs for more information.

Bugfixes

  • Fix background-blur bug where a failure caused the processor to get stuck in a busy state.
  • Fix for slower background-blur frame rate.

Other improvements

  • Added better logging around fatal errors and ejections.
  • Improved the error messaging in streaming/recording API to clarify the UUID requirement when an invalid id is provided.
  • Turn off debug level logging in large calls.
  • Added back the logging for Highest-videoFrameSize.
  • Logging improvements for debugging ejection.

0.35.1

30 Nov 14:46
Compare
Choose a tag to compare

Bugfixes

  • Fix a case where a warning log may throw an exception.

0.35.0

30 Nov 01:00
Compare
Choose a tag to compare

Features

  • Added detection of playback interruptions in remote media.

Other Improvements

  • Cleaned up debug logging to reduce log noise.

0.34.1

21 Nov 23:40
Compare
Choose a tag to compare

Bugfixes

  • Fixed an issue where custom tracks would not start as expected and would throw an error.
  • Fixed an issue where the call state would not be correctly set to upon leaving the call.