Skip to content

Releases: livekit/client-sdk-cpp

v1.5.0-rc2

v1.5.0-rc2 Pre-release
Pre-release

Choose a tag to compare

@alan-george-lk alan-george-lk released this 20 Jul 22:58

Improvements to schema metadata API to add better error typing.

What's Changed

Full Changelog: v1.5.0-rc...v1.5.0-rc2

v1.5.0-rc

v1.5.0-rc Pre-release
Pre-release

Choose a tag to compare

@alan-george-lk alan-george-lk released this 17 Jul 23:04
169174e

Pre-release of schema metadata support. Upstream dependencies and SFU support not fully complete.

What's Changed

Full Changelog: v1.4.0...v1.5.0-rc

v1.4.0

Choose a tag to compare

@alan-george-lk alan-george-lk released this 17 Jul 18:30
ef35d9c

Overview

Minor changes

  • Brings in livekit-ffi v0.12.71 release
  • Added DegradationPreference to TrackPublishOptions, allowing video publishers to prioritize frame rate, resolution, or a balance of both when bandwidth is constrained.
  • Added the AgentError disconnect reason so applications can distinguish agent failures from other room disconnections.
  • Examples submodule now references new PlatformAudio, TokenSource, and video frame metadata examples.

Bug fixes

  • Fixed server-initiated room shutdowns that could crash or report mutex errors. Disconnects now cleanly stop subscriptions, remove FFI listeners, clear room state, and invoke onDisconnected exactly once.

What's Changed

Full Changelog: v1.3.0...v1.4.0

v1.3.0

Choose a tag to compare

@alan-george-lk alan-george-lk released this 01 Jul 15:15
7596552

What's Changed

Full Changelog: v1.2.0...v1.3.0

v1.2.0

Choose a tag to compare

@stephen-derosa stephen-derosa released this 29 Jun 19:45
bb14853

What's Changed

Full Changelog: v1.1.1...v1.2.0

v1.1.1

Choose a tag to compare

@alan-george-lk alan-george-lk released this 15 Jun 21:36
29846aa

What's Changed

Full Changelog: v1.1.0...v1.1.1

v1.1.0

Choose a tag to compare

@stephen-derosa stephen-derosa released this 10 Jun 03:38
12eb6f1

What's Changed

Full Changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@stephen-derosa stephen-derosa released this 01 Jun 22:13
2ae61af

What's Changed

Full Changelog: v0.4.1...v1.0.0-rc

Public Breaking Changes

  • Removed the entire livekit_bridge library/API:

    • liblivekit_bridge / bridge CMake target
    • bridge/ source, headers, tests, and README
  • Removed TrackSource-keyed frame callback APIs:

    • Room::setOnAudioFrameCallback(participant_identity, TrackSource, ...)
    • Room::setOnVideoFrameCallback(participant_identity, TrackSource, ...)
    • Room::clearOnAudioFrameCallback(participant_identity, TrackSource)
    • Room::clearOnVideoFrameCallback(participant_identity, TrackSource)
    • Matching SubscriptionThreadDispatcher overloads
  • Removed deprecated SDK functions:

    • Room::Connect
    • Room::room_info
    • AudioFrame::total_samples, sample_rate, num_channels, samples_per_channel, to_string
    • AudioSource::sample_rate, num_channels, ffi_handle_id
    • Participant::set_name, set_metadata, set_attributes, set_attribute, remove_attribute, set_kind, set_disconnect_reason
    • Track::stream_state, mime_type, has_handle, ffi_handle_id
    • Result::has_error
    • LocalAudioTrack::to_string
    • LocalVideoTrack::to_string
    • RemoteAudioTrack::to_string
    • RemoteVideoTrack::to_string
    • RemoteParticipant::to_string
    • VideoSource::ffi_handle_id
  • Signature changes:

    • All method/function styling is now camelBack() case. Prior violations of this were simply renamed, e.g. Connect() -> connect(), and room_info -> roomInfo()
    • Room::e2eeManager() now returns a weak_ptr
    • Room::localParticipant() now returns a weak_ptr
    • Room:remoteParticipant() now returns a weak_ptr
    • E2EEManager::keyProvider() now returns a weak_ptr
    • livekit::initialize()removed second argument and the LogSink entirely. This was done to future proof releases. This was not decided lightly and was a result of the extensive log forwarding investigation done and minimizing breaking changes beyond v1.0.0. Context: LogSink enum was not working as expected. If set to kCallback, it would enable FFI capture_logs, but no support existed in the FFI client to handle those events. So functionally, kCallback would silently disable all Rust logs (never would reach console out or callbacks of any kind). Additionally, setting this value to kCallback wouldn't actually forward logs to the user lambda. That only works via livekit::setLoggingCallback

v1.0.0-rc

v1.0.0-rc Pre-release
Pre-release

Choose a tag to compare

@stephen-derosa stephen-derosa released this 01 Jun 20:53
9d0eeb5

What's Changed

Full Changelog: v0.4.1...v1.0.0-rc

Public Breaking Changes

  • Removed the entire livekit_bridge library/API:

    • liblivekit_bridge / bridge CMake target
    • bridge/ source, headers, tests, and README
  • Removed TrackSource-keyed frame callback APIs:

    • Room::setOnAudioFrameCallback(participant_identity, TrackSource, ...)
    • Room::setOnVideoFrameCallback(participant_identity, TrackSource, ...)
    • Room::clearOnAudioFrameCallback(participant_identity, TrackSource)
    • Room::clearOnVideoFrameCallback(participant_identity, TrackSource)
    • Matching SubscriptionThreadDispatcher overloads
  • Removed deprecated SDK functions:

    • Room::Connect
    • Room::room_info
    • AudioFrame::total_samples, sample_rate, num_channels, samples_per_channel, to_string
    • AudioSource::sample_rate, num_channels, ffi_handle_id
    • Participant::set_name, set_metadata, set_attributes, set_attribute, remove_attribute, set_kind, set_disconnect_reason
    • Track::stream_state, mime_type, has_handle, ffi_handle_id
    • Result::has_error
    • LocalAudioTrack::to_string
    • LocalVideoTrack::to_string
    • RemoteAudioTrack::to_string
    • RemoteVideoTrack::to_string
    • RemoteParticipant::to_string
    • VideoSource::ffi_handle_id
  • Signature changes:

    • Room::e2eeManager() now returns a weak_ptr
    • Room::localParticipant() now returns a weak_ptr
    • Room:remoteParticipant() now returns a weak_ptr
    • E2EEManager::keyProvider() now returns a weak_ptr
    • livekit::initialize()removed second argument and the LogSink entirely. This was done to future proof releases. This was not decided lightly and was a result of the extensive log forwarding investigation done in #133 and upcoming v1.0.0 breaking changes anyways. LogSink enum was not working as expected. If set to kCallback, it would enable FFI capture_logs, but no support existed in the FFI client to handle those events. So functionally, kCallback would silently disable all Rust logs (never would reach console out or callbacks of any kind). Additionally, setting this value to kCallback wouldn't actually forward logs to the user lambda. That only works via livekit::setLoggingCallback

v0.4.1

Choose a tag to compare

@alan-george-lk alan-george-lk released this 28 May 23:38
bb40ec7

What's Changed

Full Changelog: v0.4.0...v0.4.1