Skip to main content

daily_flutter 0.41.0 copy "daily_flutter: ^0.41.0" to clipboard
daily_flutter: ^0.41.0 copied to clipboard

Flutter plugin for Daily. The Daily Client SDK allows you to build video and audio calling into your Flutter applications.

Changelog #

All notable changes to the daily-flutter SDK will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.41.0 - 2026-10-20 #

Added #

  • Added allowAdaptiveLayers to VideoSendSettings and VideoSendSettingsUpdate, to turn adaptive bitrate off.

  • Added preferredCodec to VideoSendSettings and VideoSendSettingsUpdate, to choose the codec the camera is sent with: vp8 (the default), vp9 or h264. VP9 is experimental and only used when the SFU's router offers it.

  • Added startBitrate to VideoSendSettings and VideoSendSettingsUpdate, so the bitrate the camera starts sending at can be configured. It is in bits per second and defaults to 1000000.

  • Added adaptiveLayerMaxBitrate to VideoSendSettings and VideoSendSettingsUpdate, to cap, in bits per second, the bitrate adaptive bitrate ramps up to. It never goes below 200000 and can be changed during a call; IntUpdate.fromDefaults removes it.

  • Added connection to ClientSettingsUpdate, used when joining, with ConnectionSettings.initialReceiveBitrate: your expected download bandwidth, in bits per second. The SFU starts its estimate of what it can send you from this value (1000000 by default), which also sets the first target bitrate other participants get.

Changed #

  • Adaptive bitrate is now on by default, as in Daily's other SDKs. To keep to the configured encodings instead, set allowAdaptiveLayers: BoolUpdate.set(false) in the camera's send settings.

  • Swift Package Manager is now supported on iOS, alongside CocoaPods.

Fixed #

  • Fixed a crash on iOS when calling CallClient.dispose() right after leave().

  • Fixed an issue where calling CallClient.dispose() on a joined client without calling leave() first left the call running: the microphone stayed open and the call's media kept being sent after the dispose.

  • Fixed a deadlock when CallClient.dispose() was called while a leave() or join() was still in progress: the dispose blocked the main isolate while waiting for the request, and the request was waiting for the main isolate.

  • Fixed a rare deadlock that could freeze the app while a CallClient was being disposed shortly after another one.

  • Fixed a native memory leak that grew with the length of a call, about 0.7 MB per minute with one published and one subscribed track.

  • Fixed per-stream bitrates in the network stats (videoSendBitsPerSecond, videoRecvBitsPerSecond) being 1,000 times too small.

  • Fixed videoSendBitsPerSecond, sendBitsPerSecond and the other send-side network stats always reading 0: libwebrtc 8010's stats no longer include a field the parser required, so all stats for the sending connection were discarded.

  • Fixed the top simulcast layer not being sent at the start of a call. maxQuality was passed to libmediasoupclient off by one, so high turned the high layer off, medium turned the medium layer off and low had no effect. With adaptive layers off, receivers got at most the medium layer (360p for a 720p camera) until the camera track was next updated, for example by switching or toggling the camera. With adaptive layers on, it lasted only until the first adaptive-layer update, a second or two in.

0.40.0 - 2026-09-22 #

Added #

  • Added support to automatically start transcription when joining a room if the auto_start_transcription meeting token property is set, using the room's auto_transcription_settings.

  • Added StreamingLayout.audioOnly, the audio-only recording layout preset, which was missing from the Flutter SDK. This also fixes an issue where an audio-only recording started by another participant or the REST API would not emit onRecordingStarted (the event failed to deserialize).

Changed #

  • Breaking: the minimum supported Flutter version is now 3.32.0 (Dart 3.8.0). If you cannot upgrade Flutter yet, stay on 0.39.0.

  • Relaxed the permission_handler constraint to >=11.3.1 <14.0.0, so it no longer holds your app to one major version of that package.

  • Model classes such as Participant and CallState are now declared abstract or sealed. Constructing them, reading their fields, copyWith and the union helpers are all unchanged; only extending or implementing them directly no longer works.

  • Upgraded libwebrtc to branch-heads/8010 (M153). Its vendored media and crypto dependencies (ffmpeg, libvpx and BoringSSL among them) are substantially newer.

  • Breaking: the minimum supported iOS version is now 14.0 (was 13.0). This follows the libwebrtc upgrade, which is built against an iOS 14.0 deployment target.

  • The bundled example app now targets iOS 15.0. The SDK itself still supports 14.0; the example is raised separately because Apple requires a MinimumOSVersion of 15.0 or later for apps uploaded to App Store Connect from Spring 2027.

Fixed #

  • Fixed an issue where videoBitrate and audioBitrate in a meeting token's start_cloud_recording_opts were ignored, causing recordings started from the token to use the default bitrates.

  • Fixed multiple memory, thread and file descriptor leaks when creating and releasing CallClients.

  • Fixed an issue on Android where enabling the microphone during a call sent no audio if the camera had been enabled first while the microphone was off.

0.39.0 - 2026-07-24 #

Added #

  • Added StreamingLayout.rawTracksAudioOnly, the raw-tracks-audio-only recording layout preset for audio-only raw-tracks recordings.

Fixed #

  • Fixed an issue where participants would appear as "guest" in saved transcriptions.

  • Fixed an issue where the raw-tracks-audio-only recording layout preset in a meeting token's start_cloud_recording_opts was ignored, causing raw-tracks recordings to include video.

  • Fixed an issue where server-side startRecording() failures were reported as an opaque deserialization error instead of a proper recording error.

0.38.0 - 2026-06-19 #

Added #

  • Added automatic fallback to dailywebrtc.com and dailywebrtc.net when daily.co authoritative nameservers are unreachable, improving connection resilience.

Fixed #

  • Fixed panics in signalling reconnect paths when room lookup returns no worker.

  • Fixed support for cloud-audio-only recording type

Performance #

  • Replaced ureq HTTP client with hyper + rustls (ring backend). Includes connection timeouts, TLS configuration reuse, and per-request timing metrics for DNS lookup, TCP connect, and TLS handshake.

  • Added per-phase connection timing metrics for WebSocket signalling (DNS lookup, TCP connect, TLS handshake, and WebSocket upgrade), complementing the existing HTTP connection timings.

0.37.0 - 2026-01-16 #

Fixed #

  • Avoid unnecessary signalling reconnection attempts when leave() is called during a network failure.

0.34.0 - 2025-09-17 #

Added #

  • Support for 16kB page size Android devices

0.33.0 - 2025-08-11 #

Added #

  • Added new signalling message to report the meeting type.

Fixed #

  • Fixed an issue with budget Android smartphones where the app could get stuck on launch.

0.32.0 - 2025-07-23 #

Added #

  • Support the new canReceive permission, which involves:
    • Adding the canReceive permission to:
      • ParticipantPermissions (the type in the Participant model)
      • ParticipantPermissionsUpdate (the type used by updateRemoteParticipants())
    • Showing the proper track state (i.e. off, with reason receivePermission) when canReceive permission is lacking for a remote track.
    • Resuming receiving remote tracks when previously-revoked canReceive permissions have been restored.

Changed #

  • Updated daily-flutter dependencies.

Fixed #

  • Handle meeting session ID changes which occur once the session has started.

  • Fixed an issue on smartphones with a 32-bit OS where the app would get stuck on launch.

  • Fixed an issue where participants from previous meetings were being retained.

0.31.0 - 2025-05-06 #

Added #

  • Retrying multiple times to open the signalling channel during the join.

  • Alternate websocket URI format to avoid connection issues potentially caused by ISPs.

0.30.0 - 2025-03-31 #

Fixed #

  • Fixed issue where the ice servers configured by the user were not being applied when creating the PeerConnection.

  • Fixed a potential crash in the Flutter iOS SDK when disposing the renderer.

0.29.0 - 2025-02-28 #

Added #

  • Added support to automatically start a recording when joining a room if the start_cloud_recording token property is set to True.

Changed #

  • Updated third party dependencies

Fixed #

  • Fixed issue that when running flutter build ios framework, the GCC_PREPROCESSOR_DEFINITIONS settings from the Podfile were not being included. This caused the daily_flutter package to incorrectly assume that permissions weren’t granted.

  • Fixed an issue where reconnection would fail if the meeting token was no longer valid.

0.28.0 - 2024-12-13 #

Changed #

  • Renamed org.webrtc package to co.daily.webrtc to avoid conflicts.

Fixed #

  • Fixed various Android build issues seen with new versions of Gradle, Java, and AGP.

  • Fixed a logging-related crash (stack overflow) that could occur when rapidly starting and stopping the SDK.

  • Fixed an issue where missing fields in the domain/room permission config could cause a connection failure.

  • Improved meeting move robustness by increasing the number of retries, to account for situations where the backend takes longer to complete the move.

0.22.0 - 2024-08-05 #

Added #

  • Added new metrics that will allow us to better understand the meeting quality.

Fixed #

  • Preventing Flutter iOS from crashing when closing the app (via the user manually swiping away).

  • Preventing Flutter Android from crashing when closing the app if the surfaceTextureHelper has not been properly initialized.

  • Fixed an issue to show the correct state when the mic is muted remotely.

  • Fixed an issue with meeting moves that could occur in an exceptional case where, for a short period of time, we didn't receive information about which worker server to connect to.

0.20.0 - 2024-05-20 #

Added #

  • Added support for Flutter 3.22 and Dart 3.4.

Fixed #

  • Fixed multi-threading issue encountered when sending events.

  • Resolved an issue where the videos sent had the wrong orientation when viewed on iOS mobile web.

  • Fixed an issue where joinedAt value (participant info) could sometimes be zero.

  • Fixed issue where onParticipantUpdated() didn't reflect the new state of the local participant's screen video track, in cases where leave() was called while a screen share was active.

  • Fixed an issue that could cause join to fail if recording/transcription/live stream was started from the REST API.

  • Fixed an issue that would not allow join to succeed if a React Native client was already in the room.

0.16.0-beta.1 - 2024-03-04 #

Bringing the latest changes to daily-flutter, primarily focused on fixing multiple issues that could cause deadlock during network reconnection, enhancing performance, and reducing the bundle size for Android.

0.1.0-alpha.1 - 2023-01-17 #

Initial alpha release.

7
likes
140
points
14.2k
downloads

Documentation

API reference

Publisher

verified publisherdaily.co

Weekly Downloads

Flutter plugin for Daily. The Daily Client SDK allows you to build video and audio calling into your Flutter applications.

Homepage

License

unknown (license)

Dependencies

collection, flutter, freezed_annotation, json_annotation, logging, permission_handler, synchronized

More

Packages that depend on daily_flutter

Packages that implement daily_flutter