Skip to content

Releases: daily-co/daily-python

v0.19.5

30 Jul 20:19
Compare
Choose a tag to compare

Added

  • It is now possible to set a logging interval when creating an audio or video renderer. This is useful to check if the renderers are being called correctly (specially on startup). By default, the interval is set to 10 seconds but can be changed using the logging_interval_ms argument. Note that these logs are only visible when setting the environment variable RUST_LOG=debug.

Fixed

  • Fixed an issue where the newly introduce Daily.set_log_level() was only setting the log level in debug builds.

v0.19.4

02 Jul 04:25
Compare
Choose a tag to compare

Added

  • Added Daily.set_log_level() as well as a new log_level argument to Daily.init(). The available log levels are: LogLevel.Off, LogLevel.Error, LogLevel.Warn, LogLevel.Info, LogLevel.Debug, LogLevel.Trace.

v0.19.3

17 Jun 16:58
Compare
Choose a tag to compare

Added

  • Added option to ignore audio level when creating a custom audio track.

v0.19.2

10 Jun 02:01
Compare
Choose a tag to compare

Fixed

  • Fixed an issue where an audio source could cause a segmentation fault on application exit if audio was still being written.

v0.19.1

28 May 16:41
Compare
Choose a tag to compare

Fixed

  • Fixed an audio renderer issue that would cause garbled audio if remote audio was stereo.

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

v0.19.0

23 May 20:30
Compare
Choose a tag to compare

Added

  • Added a new CustomAudioTrack. This new track can be used as an additional custom audio track (i.e. with custom names) or as the main microphone track.
audio_source = CustomAudioSource(...)

audio_track = CustomAudioTrack(audio_source)

client.join("YOUR_DAILY_ROOM", client_settings={
    "inputs": {
        "microphone": {
            "isEnabled": True,
            "settings": {
               "customTrack": {
                   "id": audio_track.id
               }
            }
        }
    }
})
  • Added support for CallClient.start_dialout() new fields: displayName, userId, video, codecs, and permissions.

  • CallClient.set_audio_renderer() can receive two additional arguments: sample_rate and callback_interval_ms. With sample_rate you can now specify the desired sample rate of the incoming audio data. With callback_interval_ms you can control how often the provided callback is called (with 10ms intervals).

Changed

  • CallClient.add_custom_audio_track() and CallClient.update_custom_audio_track() now receive a CustomAudioTrack instead of a CustomAudioSource.

  • System certificates are now loaded on macOS, Linux and Windows platforms instead of the embedded Mozilla's root certificates.

Fixed

  • Fixed an issue that would cause a blocking virtual microphone to not send any audio in some cases.

v0.18.2

07 May 18:51
Compare
Choose a tag to compare

Fixed

  • Fixed daily-python install issue on macOS < 15.0.

  • Fixed CallClient.remove_custom_track() type hints.

v0.18.1

07 May 17:10
Compare
Choose a tag to compare

Fixed

  • Fixed an issue that would cause virtual microphones to not call the completion callbacks in some situations.

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

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

v0.18.0

01 May 01:15
Compare
Choose a tag to compare

Added

  • It is now possible to create custom audio tracks with CallClient.add_custom_audio_track(). The custom audio tracks need a custom audio source which can be created with CustomAudioSource(). You can also update an existing custom track with a new audio source with CallClient.update_custom_audio_track() or remove and existing custom track with CallClient.remove_custom_audio_track().

  • Support the new canReceive permission, which involves:

    • Showing the proper track state (i.e. "off", with "receivePermission" among the "offReasons") when canReceive permission is lacking for a remote track.
    • Resuming receiving remote tracks when previously-revoked canReceive permissions have been restored.

Changed

  • Error messages "no subscription for consumer" and "Failed to close consumer" are now logged as debug messages since they can be caused by a remote participant simply disconnecting which is a valid and common case.

  • Audio (CallClient.set_audio_renderer()) and video (CallClient.set_video_renderer()) renderers callbacks now receive the audio and video source as the last argument.

v0.17.0

17 Apr 18:01
Compare
Choose a tag to compare

Fixed

  • daily-python 0.16.x was compiled with glibc 2.35, which prevented installing it on systems with an older glibc version. This release goes back to glibc 2.28.