Releases: daily-co/daily-python
v0.8.0
Added
-
Added
dialin-readyevent. -
Added dial-out events
dialout-connected,dialout-stopped,dialout-erroranddialout-warning.
Changed
CallClient.stop_dialout()now takes the participant ID of the dial-out session we want to stop.
v0.7.4
Fixed
-
Fixed a crash caused by the following completion callbacks:
CallClient.update_inputs(),CallClient.update_publishing(),CallClient.update_subscriptions(),CallClient.update_subscription_profiles(). The signature of the functions was wrongly documented as only a singleerrorargument is passed. -
Fixed issue when calling
CallClient.update_publishing()immediately afterCallClient.update_inputs().
v0.7.3
Fixed
- Fixed an issue that could cause video and audio renderers not to work if they were registered after the media track was already being received.
v0.7.2
Fixed
- Fixed missing milliseconds in client logs timestamps.
v0.7.1
Fixed
- Fixed an issue that could cause join to fail if recording/transcription/live stream was started from the REST API.
v0.7.0
Added
- Added initial support for low-level Voice Activity Detection (VAD).
vad = Daily.create_native_vad(1000, 16000, 1)
confidence = vad.analyze_frames(audio_frames)-
Added
includeRawResponsefield toTranscriptionSettings. If true, all incomingTranscriptionMessagewill include a newrawResponsefield with Deepgram's raw data. -
Added new
CallClient.release()function to allow freeing resources even in the event ofEventHandlercircular dependencies. It is common to have the following code:
class MyClient(EventHandler):
def __init__(self):
self.call_client=CallClient(event_handler=self)
...If MyClient is a single application there shouldn't be any issues with freeing resources when the application ends. However, if we have an application that wants to create and release multiple MyClient instances the previous approach won't work with Python's garbage collection since there's a circular dependency. To solve this, we can now do:
class MyClient(EventHandler):
def __init__(self):
self.call_client=CallClient(event_handler=self)
def leave(self):
self.call_client.leave()
self.call_client.release()
...The new CallClient.release() function also blocks until all previous asynchronous operations have completed, so it's another convenient way to know, for example, when CallClient.leave() finishes.
Changed
-
⚠️ Breaking change⚠️ : Completion callbacks now receive only the necessary arguments. For example, beforeCallClient.leave(completion=...)completion callback would receive(None, Error | None)arguments when it should only receive(Error | None).This is the list of functions with completion callbacks that have been affected:
CallClient.leave(),CallClient.update_remote_participants(),CallClient.eject_remote_participants(),CallClient.update_permissions(),CallClient.start_recording(),CallClient.stop_recording(),CallClient.update_recording(),CallClient.start_transcription(),CallClient.stop_transcription(),CallClient.start_dialout(),CallClient.stop_dialout(),CallClient.send_app_message(),CallClient.send_prebuilt_chat_message().If you use any of the completion callbacks from one of the functions listed above, you simply need to remove the first argument from your callable.
Other
- Updated demos to use the new
CallClient.release()function.
v0.6.4
Fixed
- Fixed an issue that would not allow join to succeed if a React Native client was already in the room.
v0.6.3
Added
- Add support for
audio-onlyrecording layout preset.
v0.6.2
Fixed
-
Virtual microphones now always send audio (silence) if the user doesn't provide audio frames.
-
Fix deadlock when registering completion callbacks inside callbacks.
-
Enable Opus in-band FEC to improve audio with network packet loss.
-
Fixed multiple issues which could cause a deadlock during network reconnection.
-
Ensure that
CallClient.update_inputs()continues to be usable while the network is down. -
Fixed a crash which could occur if the network connection drops soon after joining.
Other
-
Simplied demos by using
client_settingsparameter inCallClient.join()instead of a separateCallClient.update_inputs()call. -
Updated
pyaudiodemo to only use non-blocking virtual devices.
v0.6.1
Fixed
- Disable Opus DTX (discontinuous transmission). This improves audio quality and fixes audio issues on recordings.