June 7, 2023

Overview

Highlights from the last few weeks include:

  • New screen sharing controls in daily-js
  • New recording files can now be scrubbed through
  • daily-react introduces two new APIs: useMeetingState() and usePermissions()

daily-js

0.46.0

Screen sharing controls

You can now exercise more control over your screen share by specifying screen share constraints and modifying the send settings with your own custom settings or selecting from one of Daily's screen share encoding presets. To learn how to customize screen share constraints, see the startScreenShare documentation. To learn how to modify the screen share send settings, see the updateSendSettings() documentation.

Upcoming: Refactoring local media controls

We are gradually rolling out a complete refactor of our internal logic that deals with gathering and updating a client's local media (unmuting, changing devices, etc). This refactor will resolve a number of known issues around local device handling and simplify usage and permissions gathering that have long been a source of customer frustrations. 🎉

We will be porting all domains to use this new logic in the daily-js 0.49.0 release. For more information, see this README.

Release notes

For more information, check out the release notes.

react-native-daily-js

0.44.0

Upcoming: Refactoring local media controls

We are gradually rolling out a complete refactor of our internal logic that deals with gathering and updating a client's local media (unmuting, changing devices, etc). This refactor will resolve a number of known issues around local device handling and simplify usage and permissions gathering that have long been a source of customer frustrations. 🎉

We will be porting all domains to use this new logic in the react-native-daily-js 0.47.0 release. For more information, see this README.

Release notes

For more information, check out the release notes.

daily-react

0.9.0

Features

  • New hook useMeetingState(): this hook is a direct wrapper around meetingState() and returns a stateful representation of the current meeting state. More info in our docs.
  • New hook usePermissions(): this hook is a convenience wrapper around the local participant's permissions object. Use this hook to determine the presence status and ability to send media. More info in our docs.

Improvements

Bugfixes

  • Fixed an issue in combination with daily-js 0.45.0, where an app using <DailyProvider> without passing a callObject would throw an error in development mode with React 18 and strict mode enabled.

Maintenance

  • This release requires daily-js 0.45.0 or higher. We've updated the peerDependency accordingly.

Daily Prebuilt

  • Emoji reactions, in video tiles, now appear in the lower left corner near the participant's nametag.
  • Fixed an issue where mobile users could pull to refresh, which could potentially lead to reloading the call.
  • Fixed an issue in iOS Safari where video tracks could retain their last frame, in rare cases.
  • Fixed an issue on mobile devices, where the overlay that would appear when someone knocked for room access was not covering the entire screen.
  • Fixed an issue where the "speaking while muted" notification would prevent users from tabbing through the UI.

Media Services

Features

  • We will begin billing for HLS usage starting in July 2023. Invoices generated in August for the July time period will include HLS usage.

Improvements

  • There is a new muxer for all new cloud recordings that enables scrubbing through video files and changes how the files are encoded. This improvement also impacts recordings that will be stored in custom S3 buckets. Existing recordings prior to May 30, 2023 are unaffected.
  • The default limit for multi-instance streaming and recording has been increased from 1 to 2.
  • We parallelized asset downloads for VCS in order to reduce the startup time for live stream or recording sessions that use VCS.

Bugfixes

  • Fixed an issue where live-streaming-error events were previously not emitted at the start of a stream when there was an error.
  • Fixed an HLS issue where we would sometimes write an updated playlist (m3u8) before uploading a segment. This would cause clients to fail since they would ask for a non-existent segment.
  • Fixed an issue where updating a recording session from videoSettings.roundedCorners from false to true would break the recording pipeline.

Additional

  • We upgraded our fork of mediasoup to be closer in line with upstream. This upgrade improves the bandwidth estimations in various scenarios.
  • Improvements were made to how our platform reconnects to internal data stores when a connection fails (thundering herds are no fun).
  • We upgraded a few of our dependent libraries on the server-side; keeping our libraries up-to-date is important from a security and maintenance perspective.
  • The oldest supported version of daily-js is now 0.34.0.