All user visible changes to this project will be documented in this file. This project uses Semantic Versioning 2.0.0.
master · unreleased
- Dependencies:
flutter_rust_bridge
to 2.7.0 version. (#195)
0.7.0 · 2024-10-29
- Cargo features:
- Replaced
wee_alloc
withtalc
. (#187)
- Replaced
- Dependencies:
flutter_rust_bridge
to 2.4.0 version. (#188)
0.6.1 · 2024-09-11
0.6.0 · 2024-08-27
- Dependencies:
- [
derive-more
] to 1.0 version. (#181) flutter_rust_bridge
to 2.2.0 version. (#182)
- [
0.5.0 · 2024-08-05
- Minimal supported version of
medea-client-api-proto
is0.6.0
(#151). - Library API:
- Removed
with_rpc_client()
constructor and addedWebSocketRpcClient
as argument tonew()
constructor inJason
(#175).
- Removed
- Logging:
- Exceptions thrown from Dart callbacks called by Rust (#138).
- Monitoring:
- Library API:
- Screen sharing in Firefox (#135).
- State synchronization during initial negotiation in P2P mesh mode (#162).
ConnectionHandle.on_remote_track_added
callback might be called twice for the same track (#162).RemoteMediaTrack.on_media_direction_changed
callback might not be called on direction update (#162).- Segfault on Dart isolate shutdown (#163).
- Exception in Dart code might be ignored by Rust caller (#176).
0.4.0 · 2023-07-11
- Minimal supported version of
medea-client-api-proto
is0.5.0
(#119).
- Initial mute state on incoming tracks in SFU mode (#119).
- Incorrect
ConnectionHandle
s creation and disposal in SFU mode (#119).
0.3.0 · 2023-06-09
- Library API:
ReconnectHandle.reconnect_with_backoff()
now performs first reconnect attempt immediately (instrumentisto/medea#206).- Removed
JasonError
and changed thrown exceptions kind (#4):ConnectionHandle
:on_close
-StateError
;get_remote_member_id
-StateError
;on_remote_track_added
-StateError
;on_quality_score_update
-StateError
.
MediaManager
:enumerate_devices
-EnumerateDevicesException
.init_local_tracks
-LocalMediaInitException
.
RoomHandle
:join
:StateError
;FormatException
;RpcClientException
;InternalException
.
on_new_connection
-StateError
;on_close
-StateError
;on_local_track
-StateError
;on_failed_local_media
-StateError
;on_connection_loss
-StateError
;set_local_media_settings
-MediaSettingsUpdateException
;mute_audio
,unmute_audio
,mute_video
,unmute_video
,disable_audio
,enable_audio
,disable_video
,enable_video
,disable_remote_video
,enable_remote_video
,disable_remote_audio
,enable_remote_audio
:StateError
;MediaStateTransitionException
;InternalException
;LocalMediaInitException
.
- Renamed
InputDeviceInfo
object toMediaDeviceDetails
(#29, #106). RemoteMediaTrack
:
- Library API:
- Optional argument to
ReconnectHandle.reconnect_with_backoff()
function that limits max elapsed time ([#206]). - Exceptions (#4, #31):
StateError
;LocalMediaInitException
;EnumerateDevicesException
;RpcClientException
;InternalException
;FormatException
;MediaStateTransitionException
;MediaSettingsUpdateException
.
MediaManagerHandle.set_output_audio_id()
method switching output audio device on Dart platform (#29);MediaManagerHandle.on_device_change()
callback firing wheneverMediaManagerHandle.enumerate_devices()
list changes (#30);ConnectionHandle
methods (#43, #59):enable_remote_video
;disable_remote_video
;enable_remote_audio
;disable_remote_audio
.
MediaDirection
type (#46).MediaManagerHandle
methods for microphone volume on Dart platform (#49):microphone_volume_is_available
;microphone_volume
;set_microphone_volume
.
LocalMediaInitExceptionKind
variants (#52):GetUserMediaAudioFailed
;GetUserMediaVideoFailed
.
MediaManager.enumerate_displays()
(#81);LocalMediaTrack
(#109):on_ended
;state
.
- Exposing all APIs via FFI to Dart (#8, #9, #10, #12, #14, #26, #28).
- Optional argument to
- Library API:
- Unconverted into Dart exception error in
RoomHandle.onFailedLocalMedia()
(#57).
- Unconverted into Dart exception error in
- Switch to [2021 Rust edition][012-1] (#16).
0.2.0 · 2021-04-09
- Library API:
- Transport and messaging:
- Reverse
ping
/pong
mechanism: expectPing
s from server and answer withPong
s (#75).
- Reverse
- Media management:
- Library API:
- Disable/Enable local video/audio (#40, #81, #97, #144, #155):
Room.disable_audio()
;Room.enable_audio()
;Room.disable_video()
;Room.enable_video()
.
InputDeviceInfo
class obtainable viaMediaManager.enumerate_devices()
(#46);MediaManager
class obtainable viaJason.media_manager()
(#46):- Local media stream constraints:
MediaStreamSettings
,AudioTrackConstraints
classes (#46, #97);DeviceVideoTrackConstraints
,DisplayVideoTrackConstraints
classes (#78);DeviceVideoTrackConstraints.ideal_facing_mode
andDeviceVideoTrackConstraints.exact_facing_mode
functions (#137);DeviceVideoTrackConstraints
width and height configuration (#158):DeviceVideoTrackConstraints.ideal_width
;DeviceVideoTrackConstraints.exact_width
;DeviceVideoTrackConstraints.width_in_range
;DeviceVideoTrackConstraints.ideal_height
;DeviceVideoTrackConstraints.exact_height
;DeviceVideoTrackConstraints.height_in_range
.
FacingMode
enum (#137).
MediaKind
enum that providesLocalMediaTrack
/RemoteMediaTrack
andInputDeviceInfo
kind (#146);MediaSourceKind
enum that providesMediaTrack
media source kind (Device
orDisplay
) (#146, #156);- Room management:
- Ability to configure local media stream used by
Room
viaRoom.set_local_media_settings()
(#54, #97, #145, #160): Room.on_failed_local_media
callback (#54, #143);Room.on_close
callback for WebSocket close initiated by server (#55);RemoteMediaTrack.on_enabled
andRemoteMediaTrack.on_disabled
callbacks being called whenRemoteMediaTrack
is enabled or disabled (#123, #143, #156);RemoteMediaTrack.on_stopped
callback that is called whenRemoteMediaTrack
is stopped (#109);RemoteMediaTrack.on_muted
andRemoteMediaTrack.on_unmuted
callbacks being called whenRemoteMediaTrack
is muted or unmuted (#191);RemoteMediaTrack.muted()
method indicating whether thisRemoteMediaTrack
is muted (#191);ConnectionHandle.on_remote_track_added
callback being called when new receiverRemoteMediaTrack
is added (#123, #143, #156);- Enabling/disabling remote video/audio (#127, #155):
Room.disable_remote_audio
;Room.enable_remote_audio
;Room.disable_remote_video
;Room.enable_remote_video
.
- Muting/unmuting audio/video send (#156):
Room.mute_audio
;Room.unmute_audio
;Room.mute_video
;Room.unmute_video
.
RemoteMediaTrack
/LocalMediaTrack
media_source_kind
function (#145, #146, #156);RemoteMediaTrack
class (#156);LocalMediaTrack
class (#156).
- Disable/Enable local video/audio (#40, #81, #97, #144, #155):
- Optional tracks support (#106);
- Simultaneous device and display video tracks publishing and receiving (#144);
RtcIceTransportPolicy
configuration (#79).
- Library API:
- Room management:
- Library API:
Room.on_connection_loss
callback that JS side can start Jason reconnection on connection loss with (#75);Room.on_close
callback for WebSocket close initiated by server (#55);ConnectionHandle.on_close
callback (#120);ConnectionHandle.get_remote_member_id
method (#124);ConnectionHandle.on_quality_score_update
callback for quality score updates received from server (#132).
- Library API:
- RPC messaging:
- Signalling:
- Emitting of RPC commands:
- Handling of RPC events:
- Error handling:
- Library API:
JasonError
as library error with trace information and underlying JS error if it is the cause (#55)
- Library API:
- Signalling:
- Skipped
IceCandidate
s received before receiving remote SDP (#50).
- Skipped
0.1.0 · 2019-08-21
- Transport and messaging (#18):
- Library API:
new Jason()
;Jason.join_room()
;Jason.dispose()
.
- RPC transport and heartbeat.
- Library API:
- Ability to use ICE servers provided by server (#20).
- Signalling (#22):
- Library API:
RoomHandle.on_new_connection
callback.
- Handling of RPC events:
PeerCreated
;SdpAnswerMade
;IceCandidateDiscovered
;PeersRemoved
.
- Emitting of RPC commands:
MakeSdpOffer
;MakeSdpAnswer
;SetIceCandidate
.
- Library API:
- Media management (#22):
- Library API:
MediaStreamHandle.get_media_stream()
;ConnectionHandle.on_remote_stream
callback;Jason.on_local_stream
callback.
- Library API: