From 5e3adf5e01458538724e887d7f8b8d39fadc3d6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Monnom?= Date: Fri, 22 Sep 2023 22:23:08 -0700 Subject: [PATCH] feat: update dependencies & rename livekit-webrtc to libwebrtc (#195) --- .github/workflows/publish.yml | 6 +- .gitignore | 3 +- Cargo.lock | 602 +++++----- Cargo.toml | 2 +- README.md | 4 +- examples/Cargo.lock | 667 +++++------ {livekit-webrtc => libwebrtc}/Cargo.toml | 2 +- .../src/audio_frame.rs | 0 .../src/audio_source.rs | 0 .../src/audio_stream.rs | 0 .../src/audio_track.rs | 0 .../src/data_channel.rs | 0 .../src/ice_candidate.rs | 0 {livekit-webrtc => libwebrtc}/src/lib.rs | 0 .../src/media_stream.rs | 0 .../src/media_stream_track.rs | 0 .../src/native/android.rs | 0 .../src/native/audio_resampler.rs | 0 .../src/native/audio_source.rs | 0 .../src/native/audio_stream.rs | 0 .../src/native/audio_track.rs | 0 .../src/native/data_channel.rs | 0 .../src/native/frame_cryptor.rs | 0 .../src/native/ice_candidate.rs | 0 .../src/native/media_stream.rs | 0 .../src/native/media_stream_track.rs | 0 .../src/native/mod.rs | 0 .../src/native/peer_connection.rs | 0 .../src/native/peer_connection_factory.rs | 0 .../src/native/rtp_parameters.rs | 0 .../src/native/rtp_receiver.rs | 0 .../src/native/rtp_sender.rs | 0 .../src/native/rtp_transceiver.rs | 0 .../src/native/session_description.rs | 0 .../src/native/video_frame.rs | 0 .../src/native/video_source.rs | 0 .../src/native/video_stream.rs | 0 .../src/native/video_track.rs | 0 .../src/native/yuv_helper.rs | 0 .../src/peer_connection.rs | 0 .../src/peer_connection_factory.rs | 0 {livekit-webrtc => libwebrtc}/src/prelude.rs | 0 .../src/rtp_parameters.rs | 0 .../src/rtp_receiver.rs | 0 .../src/rtp_sender.rs | 0 .../src/rtp_transceiver.rs | 0 .../src/session_description.rs | 0 .../src/video_frame.rs | 2 + .../src/video_source.rs | 0 .../src/video_stream.rs | 0 .../src/video_track.rs | 0 .../src/web/data_channel.rs | 0 .../src/web/media_stream.rs | 0 {livekit-webrtc => libwebrtc}/src/web/mod.rs | 0 livekit-api/Cargo.toml | 2 +- livekit-api/src/services/ingress.rs | 1 + livekit-api/src/services/room.rs | 5 + .../src/signal_client/signal_stream.rs | 2 +- livekit-protocol/Cargo.toml | 8 +- livekit-protocol/protocol | 2 +- livekit-protocol/src/livekit.rs | 176 ++- livekit-protocol/src/livekit.serde.rs | 1038 +++++++++++++++-- livekit/Cargo.toml | 4 +- livekit/src/lib.rs | 2 +- livekit/src/room/e2ee/key_provider.rs | 2 +- livekit/src/room/e2ee/manager.rs | 4 +- livekit/src/room/mod.rs | 2 +- livekit/src/room/options.rs | 2 +- .../src/room/participant/local_participant.rs | 2 +- .../room/participant/remote_participant.rs | 2 +- livekit/src/room/track/audio_track.rs | 2 +- livekit/src/room/track/local_audio_track.rs | 11 +- livekit/src/room/track/local_track.rs | 2 +- livekit/src/room/track/local_video_track.rs | 11 +- livekit/src/room/track/mod.rs | 2 +- livekit/src/room/track/remote_audio_track.rs | 2 +- livekit/src/room/track/remote_track.rs | 2 +- livekit/src/room/track/remote_video_track.rs | 2 +- livekit/src/room/track/video_track.rs | 2 +- livekit/src/rtc_engine/lk_runtime.rs | 2 +- livekit/src/rtc_engine/mod.rs | 4 +- livekit/src/rtc_engine/peer_transport.rs | 2 +- livekit/src/rtc_engine/rtc_events.rs | 2 +- livekit/src/rtc_engine/rtc_session.rs | 2 +- 84 files changed, 1790 insertions(+), 800 deletions(-) rename {livekit-webrtc => libwebrtc}/Cargo.toml (97%) rename {livekit-webrtc => libwebrtc}/src/audio_frame.rs (100%) rename {livekit-webrtc => libwebrtc}/src/audio_source.rs (100%) rename {livekit-webrtc => libwebrtc}/src/audio_stream.rs (100%) rename {livekit-webrtc => libwebrtc}/src/audio_track.rs (100%) rename {livekit-webrtc => libwebrtc}/src/data_channel.rs (100%) rename {livekit-webrtc => libwebrtc}/src/ice_candidate.rs (100%) rename {livekit-webrtc => libwebrtc}/src/lib.rs (100%) rename {livekit-webrtc => libwebrtc}/src/media_stream.rs (100%) rename {livekit-webrtc => libwebrtc}/src/media_stream_track.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/android.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/audio_resampler.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/audio_source.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/audio_stream.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/audio_track.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/data_channel.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/frame_cryptor.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/ice_candidate.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/media_stream.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/media_stream_track.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/mod.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/peer_connection.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/peer_connection_factory.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/rtp_parameters.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/rtp_receiver.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/rtp_sender.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/rtp_transceiver.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/session_description.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/video_frame.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/video_source.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/video_stream.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/video_track.rs (100%) rename {livekit-webrtc => libwebrtc}/src/native/yuv_helper.rs (100%) rename {livekit-webrtc => libwebrtc}/src/peer_connection.rs (100%) rename {livekit-webrtc => libwebrtc}/src/peer_connection_factory.rs (100%) rename {livekit-webrtc => libwebrtc}/src/prelude.rs (100%) rename {livekit-webrtc => libwebrtc}/src/rtp_parameters.rs (100%) rename {livekit-webrtc => libwebrtc}/src/rtp_receiver.rs (100%) rename {livekit-webrtc => libwebrtc}/src/rtp_sender.rs (100%) rename {livekit-webrtc => libwebrtc}/src/rtp_transceiver.rs (100%) rename {livekit-webrtc => libwebrtc}/src/session_description.rs (100%) rename {livekit-webrtc => libwebrtc}/src/video_frame.rs (99%) rename {livekit-webrtc => libwebrtc}/src/video_source.rs (100%) rename {livekit-webrtc => libwebrtc}/src/video_stream.rs (100%) rename {livekit-webrtc => libwebrtc}/src/video_track.rs (100%) rename {livekit-webrtc => libwebrtc}/src/web/data_channel.rs (100%) rename {livekit-webrtc => libwebrtc}/src/web/media_stream.rs (100%) rename {livekit-webrtc => libwebrtc}/src/web/mod.rs (100%) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ad3c8d7b..a0c5e2d1 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -33,7 +33,9 @@ jobs: - name: Publish crates run: | cd livekit-protocol && cargo publish - cd ../webrtc-sys && cargo publish - cd ../livekit-webrtc && cargo publish + cd ../webrtc-sys/build && cargo publish + cd ../../webrtc-sys && cargo publish + cd ../libwebrtc && cargo publish + cd ../livekit-api && cargo publish cd ../livekit && cp ../README.md README.md && cargo publish --allow-dirty cd ../livekit-ffi && cargo publish diff --git a/.gitignore b/.gitignore index 0f453821..3d98c20c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ target -/.idea -/libwebrtc \ No newline at end of file +/.idea \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 08d74bb8..eeee7aa4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] @@ -30,34 +30,28 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" dependencies = [ "memchr", ] -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "anyhow" -version = "1.0.72" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -68,9 +62,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.6.19" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a1de45611fdb535bfde7b7de4fd54f4fd2b17b1737c0a59b69bf9b92074b8c" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" dependencies = [ "async-trait", "axum-core", @@ -113,9 +107,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", @@ -134,9 +128,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.2" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" [[package]] name = "base64ct" @@ -152,9 +146,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" [[package]] name = "block-buffer" @@ -167,9 +161,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byteorder" @@ -179,9 +173,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "bzip2" @@ -206,11 +200,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -227,11 +222,10 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ - "android-tzdata", "num-traits", ] @@ -373,9 +367,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.102" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f68e12e817cb19eaab81aaec582b4052d07debd3c3c6b083b9d361db47c7dc9d" +checksum = "bbe98ba1789d56fb3db3bee5e032774d4f421b685de7ba703643584ba24effbe" dependencies = [ "cc", "cxxbridge-flags", @@ -385,9 +379,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.102" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e789217e4ab7cf8cc9ce82253180a9fe331f35f5d339f0ccfe0270b39433f397" +checksum = "c4ce20f6b8433da4841b1dadfb9468709868022d829d5ca1f2ffbda928455ea3" dependencies = [ "cc", "codespan-reporting", @@ -395,31 +389,31 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "cxxbridge-flags" -version = "1.0.102" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78a19f4c80fd9ab6c882286fa865e92e07688f4387370a209508014ead8751d0" +checksum = "20888d9e1d2298e2ff473cee30efe7d5036e437857ab68bbfea84c74dba91da2" [[package]] name = "cxxbridge-macro" -version = "1.0.102" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fcfa71f66c8563c4fa9dd2bb68368d50267856f831ac5d85367e0805f9606c" +checksum = "2fa16a70dd58129e4dfffdff535fb1bce66673f7bbeec4a5a1765a504e1ccd84" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "dashmap" -version = "5.5.0" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6943ae99c34386c84a470c499d3414f66502a41340aa895406e0d2e4a207b91d" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", "hashbrown 0.14.0", @@ -436,9 +430,9 @@ checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "deranged" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8810e7e2cf385b1e9b50d68264908ec367ba642c96d02edfe61c39e88e2a3c01" +checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" [[package]] name = "digest" @@ -465,9 +459,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "encoding_rs" -version = "0.8.32" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" dependencies = [ "cfg-if", ] @@ -485,11 +479,17 @@ dependencies = [ "termcolor", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" +checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" dependencies = [ "errno-dragonfly", "libc", @@ -520,9 +520,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "miniz_oxide", @@ -612,7 +612,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -667,9 +667,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.3" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] name = "glob" @@ -679,9 +679,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "h2" -version = "0.3.20" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" dependencies = [ "bytes", "fnv", @@ -689,7 +689,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util", @@ -729,9 +729,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hmac" @@ -742,6 +742,15 @@ dependencies = [ "digest", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "http" version = "0.2.9" @@ -772,9 +781,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -799,7 +808,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -865,6 +874,16 @@ dependencies = [ "hashbrown 0.12.3", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "inout" version = "0.1.3" @@ -900,6 +919,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -952,7 +980,7 @@ version = "8.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ - "base64 0.21.2", + "base64 0.21.4", "ring", "serde", "serde_json", @@ -966,9 +994,30 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" + +[[package]] +name = "libwebrtc" +version = "0.2.0" +dependencies = [ + "cxx", + "env_logger", + "jni", + "js-sys", + "lazy_static", + "livekit-protocol", + "log", + "parking_lot", + "thiserror", + "tokio", + "tokio-stream", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webrtc-sys", +] [[package]] name = "link-cplusplus" @@ -981,9 +1030,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.5" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" +checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" [[package]] name = "livekit" @@ -991,12 +1040,12 @@ version = "0.2.0" dependencies = [ "futures-util", "lazy_static", + "libwebrtc", "livekit-api", "livekit-protocol", - "livekit-webrtc", "log", "parking_lot", - "prost 0.11.9", + "prost 0.12.1", "serde", "serde_json", "thiserror", @@ -1007,13 +1056,13 @@ dependencies = [ name = "livekit-api" version = "0.2.0" dependencies = [ - "base64 0.21.2", + "base64 0.21.4", "futures-util", "jsonwebtoken", "livekit-protocol", "log", "parking_lot", - "prost 0.11.9", + "prost 0.12.1", "reqwest", "scopeguard", "serde", @@ -1040,8 +1089,8 @@ dependencies = [ "livekit-protocol", "log", "parking_lot", - "prost 0.12.0", - "prost-types 0.12.0", + "prost 0.12.1", + "prost-types 0.12.1", "thiserror", "tokio", "webrtc-sys-build", @@ -1055,34 +1104,13 @@ dependencies = [ "parking_lot", "pbjson", "pbjson-types", - "prost 0.11.9", - "prost-types 0.11.9", + "prost 0.12.1", + "prost-types 0.12.1", "serde", "thiserror", "tokio", ] -[[package]] -name = "livekit-webrtc" -version = "0.2.0" -dependencies = [ - "cxx", - "env_logger", - "jni", - "js-sys", - "lazy_static", - "livekit-protocol", - "log", - "parking_lot", - "thiserror", - "tokio", - "tokio-stream", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webrtc-sys", -] - [[package]] name = "lock_api" version = "0.4.10" @@ -1095,9 +1123,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "matchers" @@ -1110,15 +1138,15 @@ dependencies = [ [[package]] name = "matchit" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67827e6ea8ee8a7c4a72227ef4fc08957040acffdb5f122733b24fa12daff41b" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" [[package]] name = "mime" @@ -1207,9 +1235,9 @@ dependencies = [ [[package]] name = "object" -version = "0.31.1" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] @@ -1222,11 +1250,11 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "openssl" -version = "0.10.55" +version = "0.10.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" +checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.0", "cfg-if", "foreign-types", "libc", @@ -1243,7 +1271,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -1254,18 +1282,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "111.26.0+1.1.1u" +version = "300.1.5+3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efc62c9f12b22b8f5208c23a7200a442b2e5999f8bdf80233852122b5a4f6f37" +checksum = "559068e4c12950d7dcaa1857a61725c0d38d4fc03ff8e070ab31a75d6e316491" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.90" +version = "0.9.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" +checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" dependencies = [ "cc", "libc", @@ -1297,7 +1325,7 @@ dependencies = [ "redox_syscall 0.3.5", "smallvec", "thread-id", - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -1313,37 +1341,37 @@ dependencies = [ [[package]] name = "pbjson" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048f9ac93c1eab514f9470c4bc8d97ca2a0a236b84f45cc19d69a59fc11467f6" +checksum = "1030c719b0ec2a2d25a5df729d6cff1acf3cc230bf766f4f97833591f7577b90" dependencies = [ - "base64 0.13.1", + "base64 0.21.4", "serde", ] [[package]] name = "pbjson-build" -version = "0.5.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdbb7b706f2afc610f3853550cdbbf6372fd324824a087806bd4480ea4996e24" +checksum = "2580e33f2292d34be285c5bc3dba5259542b083cfad6037b6d70345f24dcb735" dependencies = [ "heck", - "itertools", - "prost 0.11.9", - "prost-types 0.11.9", + "itertools 0.11.0", + "prost 0.12.1", + "prost-types 0.12.1", ] [[package]] name = "pbjson-types" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a88c8d87f99a4ac14325e7a4c24af190fca261956e3b82dd7ed67e77e6c7043" +checksum = "18f596653ba4ac51bdecbb4ef6773bc7f56042dc13927910de1684ad3d32aa12" dependencies = [ "bytes", "chrono", "pbjson", "pbjson-build", - "prost 0.11.9", + "prost 0.12.1", "prost-build", "serde", ] @@ -1368,39 +1396,39 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "petgraph" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 2.0.0", ] [[package]] name = "pin-project" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -1422,19 +1450,19 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "prettyplease" -version = "0.1.25" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ "proc-macro2", - "syn 1.0.109", + "syn 2.0.37", ] [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" dependencies = [ "unicode-ident", ] @@ -1451,32 +1479,32 @@ dependencies = [ [[package]] name = "prost" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa8473a65b88506c106c28ae905ca4a2b83a2993640467a41bb3080627ddfd2c" +checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d" dependencies = [ "bytes", - "prost-derive 0.12.0", + "prost-derive 0.12.1", ] [[package]] name = "prost-build" -version = "0.11.9" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +checksum = "8bdf592881d821b83d471f8af290226c8d51402259e9bb5be7f9f8bdebbb11ac" dependencies = [ "bytes", "heck", - "itertools", - "lazy_static", + "itertools 0.11.0", "log", "multimap", + "once_cell", "petgraph", "prettyplease", - "prost 0.11.9", - "prost-types 0.11.9", + "prost 0.12.1", + "prost-types 0.12.1", "regex", - "syn 1.0.109", + "syn 2.0.37", "tempfile", "which", ] @@ -1488,7 +1516,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", - "itertools", + "itertools 0.10.5", "proc-macro2", "quote", "syn 1.0.109", @@ -1496,15 +1524,15 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56075c27b20ae524d00f247b8a4dc333e5784f889fe63099f8e626bc8d73486c" +checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32" dependencies = [ "anyhow", - "itertools", + "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -1518,18 +1546,18 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cebe0a918c97f86c217b0f76fd754e966f8b9f41595095cf7d74cb4e59d730f6" +checksum = "e081b29f63d83a4bc75cfc9f3fe424f9156cf92d8a4f0c9407cce9a1b67327cf" dependencies = [ - "prost 0.12.0", + "prost 0.12.1", ] [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -1584,14 +1612,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.1" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.4", - "regex-syntax 0.7.4", + "regex-automata 0.3.8", + "regex-syntax 0.7.5", ] [[package]] @@ -1605,13 +1633,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.4" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7b6d6190b7594385f61bd3911cd1be99dfddcfc365a4160cc2ab5bff4aed294" +checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.4", + "regex-syntax 0.7.5", ] [[package]] @@ -1622,17 +1650,17 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "reqwest" -version = "0.11.18" +version = "0.11.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" +checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" dependencies = [ - "base64 0.21.2", + "base64 0.21.4", "bytes", "encoding_rs", "futures-core", @@ -1665,7 +1693,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.22.6", + "webpki-roots 0.25.2", "winreg", ] @@ -1691,11 +1719,11 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "747c788e9ce8e92b12cd485c49ddf90723550b654b32508f979b71a7b1ecda4f" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "errno", "libc", "linux-raw-sys", @@ -1704,13 +1732,13 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.5" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79ea77c539259495ce8ca47f53e66ae0330a8819f67e23ac96ca02f50e7b7d36" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" dependencies = [ "log", "ring", - "rustls-webpki 0.101.2", + "rustls-webpki 0.101.6", "sct", ] @@ -1732,14 +1760,14 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ - "base64 0.21.2", + "base64 0.21.4", ] [[package]] name = "rustls-webpki" -version = "0.100.1" +version = "0.100.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +checksum = "5f6a5fc258f1c1276dfe3016516945546e2d5383911efc0fc4f1cdc5df3a4ae3" dependencies = [ "ring", "untrusted", @@ -1747,9 +1775,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.101.2" +version = "0.101.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513722fd73ad80a71f72b61009ea1b584bcfa1483ca93949c8f290298837fa59" +checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" dependencies = [ "ring", "untrusted", @@ -1832,35 +1860,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0" [[package]] name = "serde" -version = "1.0.180" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea67f183f058fe88a4e3ec6e2788e003840893b91bac4559cabedd00863b3ed" +checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.180" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24e744d7782b686ab3b73267ef05697159cc0e5abbed3f47f9933165e5219036" +checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "serde_json" -version = "1.0.104" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" dependencies = [ "itoa", "ryu", @@ -1881,9 +1909,9 @@ dependencies = [ [[package]] name = "sha1" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", @@ -1921,18 +1949,18 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "socket2" @@ -1944,6 +1972,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "spin" version = "0.9.8" @@ -1969,9 +2007,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.28" +version = "2.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" dependencies = [ "proc-macro2", "quote", @@ -1986,9 +2024,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "tempfile" -version = "3.7.0" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" dependencies = [ "cfg-if", "fastrand", @@ -1999,38 +2037,38 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" dependencies = [ "winapi-util", ] [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "thread-id" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee93aa2b8331c0fec9091548843f2c90019571814057da3b783f9de09349d73" +checksum = "79474f573561cdc4871a0de34a51c92f7f5a56039113fbb5b9c9f96bdb756669" dependencies = [ "libc", "redox_syscall 0.2.16", @@ -2049,9 +2087,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.24" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b79eabcd964882a646b3584543ccabeae7869e9ac32a46f6f22b7a5bd405308b" +checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48" dependencies = [ "deranged", "serde", @@ -2081,11 +2119,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -2094,7 +2131,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.4", "tokio-macros", "tracing", "windows-sys 0.48.0", @@ -2118,7 +2155,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -2172,9 +2209,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" dependencies = [ "bytes", "futures-core", @@ -2192,7 +2229,7 @@ checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" dependencies = [ "async-trait", "axum", - "base64 0.21.2", + "base64 0.21.4", "bytes", "futures-core", "futures-util", @@ -2220,7 +2257,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand", @@ -2264,7 +2301,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -2301,9 +2338,9 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "tungstenite" -version = "0.20.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e862a1c4128df0112ab625f55cd5c934bcb4312ba80b39ae4b4835a3fd58e649" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" dependencies = [ "byteorder", "bytes", @@ -2322,9 +2359,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-bidi" @@ -2334,9 +2371,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -2349,9 +2386,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "untrusted" @@ -2361,9 +2398,9 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna", @@ -2396,9 +2433,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", @@ -2440,7 +2477,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", "wasm-bindgen-shared", ] @@ -2474,7 +2511,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2495,33 +2532,20 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki-roots" -version = "0.22.6" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "webpki", + "rustls-webpki 0.100.3", ] [[package]] name = "webpki-roots" -version = "0.23.1" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" -dependencies = [ - "rustls-webpki 0.100.1", -] +checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" [[package]] name = "webrtc-sys" @@ -2550,13 +2574,14 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", ] [[package]] @@ -2577,9 +2602,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -2605,7 +2630,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -2625,17 +2650,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -2646,9 +2671,9 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" @@ -2658,9 +2683,9 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" @@ -2670,9 +2695,9 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" @@ -2682,9 +2707,9 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" @@ -2694,9 +2719,9 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" @@ -2706,9 +2731,9 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" @@ -2718,17 +2743,18 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winreg" -version = "0.10.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi", + "cfg-if", + "windows-sys 0.48.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index e65a1135..d96cd5e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ members = [ "livekit-api", "livekit-protocol", "livekit-ffi", - "livekit-webrtc", + "libwebrtc", "webrtc-sys", "webrtc-sys/build", ] diff --git a/README.md b/README.md index 54864210..00231681 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,6 @@ [![crates.io](https://img.shields.io/crates/v/livekit.svg)](https://crates.io/crates/livekit) [![livekit docs.rs](https://img.shields.io/docsrs/livekit)](https://docs.rs/livekit/latest/) -[![livekit-api docs.rs](https://img.shields.io/docsrs/livekit-api)](https://docs.rs/livekit-api/latest/) -[![livekit-webrtc docs.rs](https://img.shields.io/docsrs/livekit-webrtc)](https://docs.rs/livekit-webrtc/latest/) [![Builds](https://github.com/livekit/client-sdk-native/actions/workflows/builds.yml/badge.svg?branch=main)](https://github.com/livekit/client-sdk-native/actions/workflows/builds.yml) [![Tests](https://github.com/livekit/client-sdk-native/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/livekit/client-sdk-native/actions/workflows/tests.yml) @@ -41,7 +39,7 @@ - `livekit-core`: LiveKit protocol implementation - `livekit-utils`: Shared utilities between our crates - `livekit-ffi`: Bindings for other languages. Uses `livekit-core`. -- `livekit-webrtc`: Safe Rust bindings to libwebrtc +- `libwebrtc`: Safe Rust bindings to libwebrtc - `webrtc-sys`: Unsafe bindings to libwebrtc ## Motivation and Design Goals diff --git a/examples/Cargo.lock b/examples/Cargo.lock index 71248b37..877026df 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -20,9 +20,9 @@ checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" [[package]] name = "accesskit" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77020650e30e570cff04a3650872b9be650b79de494005da13809574a0d1fdb" +checksum = "76eb1adf08c5bcaa8490b9851fd53cca27fa9880076f178ea9d29f05196728a8" dependencies = [ "enumn", "serde", @@ -30,9 +30,9 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] @@ -79,9 +79,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" dependencies = [ "memchr", ] @@ -110,12 +110,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - [[package]] name = "android_log-sys" version = "0.3.1" @@ -145,22 +139,21 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.72" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" [[package]] name = "arboard" -version = "3.2.0" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6041616acea41d67c4a984709ddab1587fd0b10efe5cc563fee954d2f011854" +checksum = "ac57f2b058a76363e357c056e4f74f1945bf734d37b8b3ef49066c4787dde0fc" dependencies = [ "clipboard-win", "log", "objc", "objc-foundation", "objc_id", - "once_cell", "parking_lot", "thiserror", "winapi", @@ -190,20 +183,20 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.72" +version = "0.1.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09" +checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "atomic_refcell" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79d6dc922a2792b006573f60b2648076355daeae5ce9cb59507e5908c9625d31" +checksum = "112ef6b3f6cb3cb6fc5b6b494ef7a848492cff1ab0ef4de10b0f7d572861c905" [[package]] name = "autocfg" @@ -213,9 +206,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.6.19" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a1de45611fdb535bfde7b7de4fd54f4fd2b17b1737c0a59b69bf9b92074b8c" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" dependencies = [ "async-trait", "axum-core", @@ -258,9 +251,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", @@ -279,9 +272,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.2" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" [[package]] name = "base64ct" @@ -328,9 +321,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" +checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" +dependencies = [ + "serde", +] [[package]] name = "block" @@ -368,28 +364,28 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "bytemuck" -version = "1.13.1" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192" +checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -400,9 +396,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "bzip2" @@ -441,11 +437,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ "jobserver", + "libc", ] [[package]] @@ -468,11 +465,10 @@ checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ - "android-tzdata", "num-traits", ] @@ -515,15 +511,14 @@ dependencies = [ [[package]] name = "cocoa-foundation" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "931d3837c286f56e3c58423ce4eba12d08db2374461a785c86f672b08b5650d6" +checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" dependencies = [ "bitflags 1.3.2", "block", "core-foundation", "core-graphics-types", - "foreign-types", "libc", "objc", ] @@ -566,7 +561,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2895653b4d9f1538a83970077cb01dfc77a4810524e51a110944688e916b18e" dependencies = [ - "prost", + "prost 0.11.9", "prost-types", "tonic", "tracing-core", @@ -722,9 +717,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.102" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f68e12e817cb19eaab81aaec582b4052d07debd3c3c6b083b9d361db47c7dc9d" +checksum = "bbe98ba1789d56fb3db3bee5e032774d4f421b685de7ba703643584ba24effbe" dependencies = [ "cc", "cxxbridge-flags", @@ -734,9 +729,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.102" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e789217e4ab7cf8cc9ce82253180a9fe331f35f5d339f0ccfe0270b39433f397" +checksum = "c4ce20f6b8433da4841b1dadfb9468709868022d829d5ca1f2ffbda928455ea3" dependencies = [ "cc", "codespan-reporting", @@ -744,24 +739,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "cxxbridge-flags" -version = "1.0.102" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78a19f4c80fd9ab6c882286fa865e92e07688f4387370a209508014ead8751d0" +checksum = "20888d9e1d2298e2ff473cee30efe7d5036e437857ab68bbfea84c74dba91da2" [[package]] name = "cxxbridge-macro" -version = "1.0.102" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fcfa71f66c8563c4fa9dd2bb68368d50267856f831ac5d85367e0805f9606c" +checksum = "2fa16a70dd58129e4dfffdff535fb1bce66673f7bbeec4a5a1765a504e1ccd84" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -783,9 +778,9 @@ checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "deranged" -version = "0.3.6" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8810e7e2cf385b1e9b50d68264908ec367ba642c96d02edfe61c39e88e2a3c01" +checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" [[package]] name = "digest" @@ -945,22 +940,22 @@ dependencies = [ [[package]] name = "encoding_rs" -version = "0.8.32" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" dependencies = [ "cfg-if", ] [[package]] name = "enumn" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b893c4eb2dc092c811165f84dc7447fae16fb66521717968c34c509b39b1a5c5" +checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -1002,9 +997,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" +checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" dependencies = [ "errno-dragonfly", "libc", @@ -1033,9 +1028,9 @@ dependencies = [ [[package]] name = "exr" -version = "1.7.0" +version = "1.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1e481eb11a482815d3e9d618db8c42a93207134662873809335a92327440c18" +checksum = "832a761f35ab3e6664babfbdc6cef35a4860e816ec3916dcfd0882954e98a8a8" dependencies = [ "bit_field", "flume", @@ -1070,9 +1065,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "miniz_oxide", @@ -1080,14 +1075,10 @@ dependencies = [ [[package]] name = "flume" -version = "0.10.14" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" dependencies = [ - "futures-core", - "futures-sink", - "nanorand", - "pin-project", "spin 0.9.8", ] @@ -1187,7 +1178,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -1247,10 +1238,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi", - "wasm-bindgen", ] [[package]] @@ -1265,9 +1254,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.3" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" [[package]] name = "glob" @@ -1341,9 +1330,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.20" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" dependencies = [ "bytes", "fnv", @@ -1418,9 +1407,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hexf-parse" @@ -1476,9 +1465,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -1503,7 +1492,7 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", @@ -1561,9 +1550,9 @@ dependencies = [ [[package]] name = "image" -version = "0.24.6" +version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527909aa81e20ac3a44803521443a765550f09b5130c2c2fa1ea59c2f8f50a3a" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" dependencies = [ "bytemuck", "byteorder", @@ -1645,6 +1634,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -1706,7 +1704,7 @@ version = "8.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" dependencies = [ - "base64 0.21.2", + "base64 0.21.4", "ring", "serde", "serde_json", @@ -1737,9 +1735,9 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" [[package]] name = "libloading" @@ -1761,6 +1759,26 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "libwebrtc" +version = "0.2.0" +dependencies = [ + "cxx", + "jni", + "js-sys", + "lazy_static", + "livekit-protocol", + "log", + "parking_lot", + "thiserror", + "tokio", + "tokio-stream", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webrtc-sys", +] + [[package]] name = "link-cplusplus" version = "1.0.9" @@ -1772,9 +1790,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.5" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" +checksum = "1a9bad9f94746442c783ca431b22403b519cd7fbeed0533fdd6328b2f2212128" [[package]] name = "livekit" @@ -1782,12 +1800,12 @@ version = "0.2.0" dependencies = [ "futures-util", "lazy_static", + "libwebrtc", "livekit-api", "livekit-protocol", - "livekit-webrtc", "log", "parking_lot", - "prost", + "prost 0.12.1", "serde", "serde_json", "thiserror", @@ -1798,13 +1816,13 @@ dependencies = [ name = "livekit-api" version = "0.2.0" dependencies = [ - "base64 0.21.2", + "base64 0.21.4", "futures-util", "jsonwebtoken", "livekit-protocol", "log", "parking_lot", - "prost", + "prost 0.12.1", "reqwest", "scopeguard", "serde", @@ -1824,33 +1842,13 @@ dependencies = [ "parking_lot", "pbjson", "pbjson-types", - "prost", + "prost 0.11.9", "prost-types", "serde", "thiserror", "tokio", ] -[[package]] -name = "livekit-webrtc" -version = "0.2.0" -dependencies = [ - "cxx", - "jni", - "js-sys", - "lazy_static", - "livekit-protocol", - "log", - "parking_lot", - "thiserror", - "tokio", - "tokio-stream", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webrtc-sys", -] - [[package]] name = "lock_api" version = "0.4.10" @@ -1863,9 +1861,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "malloc_buf" @@ -1887,15 +1885,15 @@ dependencies = [ [[package]] name = "matchit" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67827e6ea8ee8a7c4a72227ef4fc08957040acffdb5f122733b24fa12daff41b" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" [[package]] name = "memmap2" @@ -2011,15 +2009,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "nanorand" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" -dependencies = [ - "getrandom", -] - [[package]] name = "native-tls" version = "0.2.11" @@ -2187,7 +2176,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -2257,9 +2246,9 @@ dependencies = [ [[package]] name = "object" -version = "0.31.1" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] @@ -2272,11 +2261,11 @@ checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "openssl" -version = "0.10.55" +version = "0.10.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d" +checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.0", "cfg-if", "foreign-types", "libc", @@ -2293,7 +2282,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -2304,9 +2293,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.90" +version = "0.9.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6" +checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" dependencies = [ "cc", "libc", @@ -2316,9 +2305,9 @@ dependencies = [ [[package]] name = "orbclient" -version = "0.3.45" +version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221d488cd70617f1bd599ed8ceb659df2147d9393717954d82a0f5e8032a6ab1" +checksum = "8378ac0dfbd4e7895f2d2c1f1345cab3836910baf3a300b000d04250f0c8428f" dependencies = [ "redox_syscall 0.3.5", ] @@ -2355,7 +2344,7 @@ dependencies = [ "redox_syscall 0.3.5", "smallvec", "thread-id", - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -2386,8 +2375,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdbb7b706f2afc610f3853550cdbbf6372fd324824a087806bd4480ea4996e24" dependencies = [ "heck", - "itertools", - "prost", + "itertools 0.10.5", + "prost 0.11.9", "prost-types", ] @@ -2401,7 +2390,7 @@ dependencies = [ "chrono", "pbjson", "pbjson-build", - "prost", + "prost 0.11.9", "prost-build", "serde", ] @@ -2426,39 +2415,39 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "petgraph" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 1.9.3", + "indexmap 2.0.0", ] [[package]] name = "pin-project" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030ad2bc4db10a8944cb0d837f158bdfec4d4a4873ab701a95046770d11f8842" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec2e072ecce94ec471b13398d5402c188e76ac03cf74dd1a975161b23a3f6d9c" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "pin-project-lite" -version = "0.2.10" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2474,9 +2463,9 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "png" -version = "0.17.9" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" dependencies = [ "bitflags 1.3.2", "crc32fast", @@ -2519,18 +2508,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" dependencies = [ "unicode-ident", ] [[package]] name = "profiling" -version = "1.0.8" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332cd62e95873ea4f41f3dfd6bbbfc5b52aec892d7e8d534197c4720a0bbbab2" +checksum = "f89dff0959d98c9758c88826cc002e2c3d0b9dfac4139711d1f30de442f1139b" [[package]] name = "prost" @@ -2539,7 +2528,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d" +dependencies = [ + "bytes", + "prost-derive 0.12.1", ] [[package]] @@ -2550,13 +2549,13 @@ checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", "heck", - "itertools", + "itertools 0.10.5", "lazy_static", "log", "multimap", "petgraph", "prettyplease", - "prost", + "prost 0.11.9", "prost-types", "regex", "syn 1.0.109", @@ -2571,19 +2570,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", - "itertools", + "itertools 0.10.5", "proc-macro2", "quote", "syn 1.0.109", ] +[[package]] +name = "prost-derive" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "proc-macro2", + "quote", + "syn 2.0.37", +] + [[package]] name = "prost-types" version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "prost", + "prost 0.11.9", ] [[package]] @@ -2597,9 +2609,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.32" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2648,9 +2660,9 @@ checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -2658,14 +2670,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] @@ -2699,14 +2709,14 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.1" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.3.4", - "regex-syntax 0.7.4", + "regex-automata 0.3.8", + "regex-syntax 0.7.5", ] [[package]] @@ -2720,13 +2730,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.4" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7b6d6190b7594385f61bd3911cd1be99dfddcfc365a4160cc2ab5bff4aed294" +checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.4", + "regex-syntax 0.7.5", ] [[package]] @@ -2737,9 +2747,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "renderdoc-sys" @@ -2749,11 +2759,11 @@ checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b" [[package]] name = "reqwest" -version = "0.11.18" +version = "0.11.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" +checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" dependencies = [ - "base64 0.21.2", + "base64 0.21.4", "bytes", "encoding_rs", "futures-core", @@ -2786,7 +2796,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.22.6", + "webpki-roots 0.25.2", "winreg", ] @@ -2807,13 +2817,14 @@ dependencies = [ [[package]] name = "ron" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff" +checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ - "base64 0.13.1", - "bitflags 1.3.2", + "base64 0.21.4", + "bitflags 2.4.0", "serde", + "serde_derive", ] [[package]] @@ -2830,11 +2841,11 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.38.4" +version = "0.38.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" +checksum = "747c788e9ce8e92b12cd485c49ddf90723550b654b32508f979b71a7b1ecda4f" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "errno", "libc", "linux-raw-sys", @@ -2843,13 +2854,13 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.5" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79ea77c539259495ce8ca47f53e66ae0330a8819f67e23ac96ca02f50e7b7d36" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" dependencies = [ "log", "ring", - "rustls-webpki 0.101.2", + "rustls-webpki 0.101.6", "sct", ] @@ -2871,14 +2882,14 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ - "base64 0.21.2", + "base64 0.21.4", ] [[package]] name = "rustls-webpki" -version = "0.100.1" +version = "0.100.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +checksum = "5f6a5fc258f1c1276dfe3016516945546e2d5383911efc0fc4f1cdc5df3a4ae3" dependencies = [ "ring", "untrusted", @@ -2886,9 +2897,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.101.2" +version = "0.101.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513722fd73ad80a71f72b61009ea1b584bcfa1483ca93949c8f290298837fa59" +checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" dependencies = [ "ring", "untrusted", @@ -3001,35 +3012,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0" [[package]] name = "serde" -version = "1.0.180" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea67f183f058fe88a4e3ec6e2788e003840893b91bac4559cabedd00863b3ed" +checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.180" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24e744d7782b686ab3b73267ef05697159cc0e5abbed3f47f9933165e5219036" +checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "serde_json" -version = "1.0.104" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" dependencies = [ "itoa", "ryu", @@ -3050,9 +3061,9 @@ dependencies = [ [[package]] name = "sha1" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", @@ -3096,9 +3107,9 @@ checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] @@ -3114,15 +3125,15 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "smithay-client-toolkit" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454" +checksum = "870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9" dependencies = [ "bitflags 1.3.2", "calloop", @@ -3157,6 +3168,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4031e820eb552adee9295814c0ced9e5cf38ddf1e8b7d566d6de8e2538ea989e" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "spin" version = "0.5.2" @@ -3219,9 +3240,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.28" +version = "2.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567" +checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" dependencies = [ "proc-macro2", "quote", @@ -3236,9 +3257,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "tempfile" -version = "3.7.0" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998" +checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" dependencies = [ "cfg-if", "fastrand", @@ -3249,38 +3270,38 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" dependencies = [ "winapi-util", ] [[package]] name = "thiserror" -version = "1.0.44" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90" +checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.44" +version = "1.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96" +checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] name = "thread-id" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee93aa2b8331c0fec9091548843f2c90019571814057da3b783f9de09349d73" +checksum = "79474f573561cdc4871a0de34a51c92f7f5a56039113fbb5b9c9f96bdb756669" dependencies = [ "libc", "redox_syscall 0.2.16", @@ -3299,9 +3320,9 @@ dependencies = [ [[package]] name = "tiff" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471" +checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" dependencies = [ "flate2", "jpeg-decoder", @@ -3310,9 +3331,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.24" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b79eabcd964882a646b3584543ccabeae7869e9ac32a46f6f22b7a5bd405308b" +checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48" dependencies = [ "deranged", "serde", @@ -3367,11 +3388,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.29.1" +version = "1.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da" +checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9" dependencies = [ - "autocfg", "backtrace", "bytes", "libc", @@ -3380,7 +3400,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.4", "tokio-macros", "tracing", "windows-sys 0.48.0", @@ -3404,7 +3424,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -3457,9 +3477,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "1d68074620f57a0b21594d9735eb2e98ab38b17f80d3fcb189fca266771ca60d" dependencies = [ "bytes", "futures-core", @@ -3477,9 +3497,9 @@ checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" [[package]] name = "toml_edit" -version = "0.19.14" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap 2.0.0", "toml_datetime", @@ -3494,7 +3514,7 @@ checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" dependencies = [ "async-trait", "axum", - "base64 0.21.2", + "base64 0.21.4", "bytes", "futures-core", "futures-util", @@ -3505,7 +3525,7 @@ dependencies = [ "hyper-timeout", "percent-encoding", "pin-project", - "prost", + "prost 0.11.9", "tokio", "tokio-stream", "tower", @@ -3566,7 +3586,7 @@ checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", ] [[package]] @@ -3603,15 +3623,15 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "ttf-parser" -version = "0.19.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a464a4b34948a5f67fddd2b823c62d9d92e44be75058b99939eae6c5b6960b33" +checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1" [[package]] name = "tungstenite" -version = "0.20.0" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e862a1c4128df0112ab625f55cd5c934bcb4312ba80b39ae4b4835a3fd58e649" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" dependencies = [ "byteorder", "bytes", @@ -3639,9 +3659,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-bidi" @@ -3651,9 +3671,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -3666,9 +3686,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode-xid" @@ -3684,9 +3704,9 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna", @@ -3725,9 +3745,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", @@ -3769,7 +3789,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", "wasm-bindgen-shared", ] @@ -3803,7 +3823,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.28", + "syn 2.0.37", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3899,9 +3919,9 @@ dependencies = [ [[package]] name = "webbrowser" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd222aa310eb7532e3fd427a5d7db7e44bc0b0cf1c1e21139c345325511a85b6" +checksum = "b2c79b77f525a2d670cb40619d7d9c673d09e0666f72c591ebd7861f84a87e57" dependencies = [ "core-foundation", "home", @@ -3923,33 +3943,20 @@ dependencies = [ "tokio", ] -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki-roots" -version = "0.22.6" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "webpki", + "rustls-webpki 0.100.3", ] [[package]] name = "webpki-roots" -version = "0.23.1" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" -dependencies = [ - "rustls-webpki 0.100.1", -] +checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" [[package]] name = "webrtc-sys" @@ -4013,7 +4020,7 @@ checksum = "8f478237b4bf0d5b70a39898a66fa67ca3a007d79f2520485b8b0c3dfc46f8c2" dependencies = [ "arrayvec", "bit-vec", - "bitflags 2.3.3", + "bitflags 2.4.0", "codespan-reporting", "log", "naga", @@ -4038,7 +4045,7 @@ dependencies = [ "arrayvec", "ash", "bit-set", - "bitflags 2.3.3", + "bitflags 2.4.0", "block", "core-graphics-types", "d3d12", @@ -4076,7 +4083,7 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0c153280bb108c2979eb5c7391cb18c56642dd3c072e55f52065e13e2a1252a" dependencies = [ - "bitflags 2.3.3", + "bitflags 2.4.0", "js-sys", "web-sys", ] @@ -4103,13 +4110,14 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", ] [[package]] @@ -4136,9 +4144,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -4182,7 +4190,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.1", + "windows-targets 0.48.5", ] [[package]] @@ -4202,17 +4210,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.48.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -4223,9 +4231,9 @@ checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_msvc" @@ -4235,9 +4243,9 @@ checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_i686_gnu" @@ -4247,9 +4255,9 @@ checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_msvc" @@ -4259,9 +4267,9 @@ checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_x86_64_gnu" @@ -4271,9 +4279,9 @@ checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnullvm" @@ -4283,9 +4291,9 @@ checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_msvc" @@ -4295,9 +4303,9 @@ checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winit" @@ -4336,20 +4344,21 @@ dependencies = [ [[package]] name = "winnow" -version = "0.5.3" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46aab759304e4d7b2075a9aecba26228bb073ee8c50db796b2c72c676b5d807" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" dependencies = [ "memchr", ] [[package]] name = "winreg" -version = "0.10.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi", + "cfg-if", + "windows-sys 0.48.0", ] [[package]] @@ -4396,9 +4405,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.16" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47430998a7b5d499ccee752b41567bc3afc57e1327dc855b1a2aa44ce29b5fa1" +checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" [[package]] name = "zip" diff --git a/livekit-webrtc/Cargo.toml b/libwebrtc/Cargo.toml similarity index 97% rename from livekit-webrtc/Cargo.toml rename to libwebrtc/Cargo.toml index c5241243..867a7488 100644 --- a/livekit-webrtc/Cargo.toml +++ b/libwebrtc/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "livekit-webrtc" +name = "libwebrtc" version = "0.2.0" edition = "2021" homepage = "https://livekit.io" diff --git a/livekit-webrtc/src/audio_frame.rs b/libwebrtc/src/audio_frame.rs similarity index 100% rename from livekit-webrtc/src/audio_frame.rs rename to libwebrtc/src/audio_frame.rs diff --git a/livekit-webrtc/src/audio_source.rs b/libwebrtc/src/audio_source.rs similarity index 100% rename from livekit-webrtc/src/audio_source.rs rename to libwebrtc/src/audio_source.rs diff --git a/livekit-webrtc/src/audio_stream.rs b/libwebrtc/src/audio_stream.rs similarity index 100% rename from livekit-webrtc/src/audio_stream.rs rename to libwebrtc/src/audio_stream.rs diff --git a/livekit-webrtc/src/audio_track.rs b/libwebrtc/src/audio_track.rs similarity index 100% rename from livekit-webrtc/src/audio_track.rs rename to libwebrtc/src/audio_track.rs diff --git a/livekit-webrtc/src/data_channel.rs b/libwebrtc/src/data_channel.rs similarity index 100% rename from livekit-webrtc/src/data_channel.rs rename to libwebrtc/src/data_channel.rs diff --git a/livekit-webrtc/src/ice_candidate.rs b/libwebrtc/src/ice_candidate.rs similarity index 100% rename from livekit-webrtc/src/ice_candidate.rs rename to libwebrtc/src/ice_candidate.rs diff --git a/livekit-webrtc/src/lib.rs b/libwebrtc/src/lib.rs similarity index 100% rename from livekit-webrtc/src/lib.rs rename to libwebrtc/src/lib.rs diff --git a/livekit-webrtc/src/media_stream.rs b/libwebrtc/src/media_stream.rs similarity index 100% rename from livekit-webrtc/src/media_stream.rs rename to libwebrtc/src/media_stream.rs diff --git a/livekit-webrtc/src/media_stream_track.rs b/libwebrtc/src/media_stream_track.rs similarity index 100% rename from livekit-webrtc/src/media_stream_track.rs rename to libwebrtc/src/media_stream_track.rs diff --git a/livekit-webrtc/src/native/android.rs b/libwebrtc/src/native/android.rs similarity index 100% rename from livekit-webrtc/src/native/android.rs rename to libwebrtc/src/native/android.rs diff --git a/livekit-webrtc/src/native/audio_resampler.rs b/libwebrtc/src/native/audio_resampler.rs similarity index 100% rename from livekit-webrtc/src/native/audio_resampler.rs rename to libwebrtc/src/native/audio_resampler.rs diff --git a/livekit-webrtc/src/native/audio_source.rs b/libwebrtc/src/native/audio_source.rs similarity index 100% rename from livekit-webrtc/src/native/audio_source.rs rename to libwebrtc/src/native/audio_source.rs diff --git a/livekit-webrtc/src/native/audio_stream.rs b/libwebrtc/src/native/audio_stream.rs similarity index 100% rename from livekit-webrtc/src/native/audio_stream.rs rename to libwebrtc/src/native/audio_stream.rs diff --git a/livekit-webrtc/src/native/audio_track.rs b/libwebrtc/src/native/audio_track.rs similarity index 100% rename from livekit-webrtc/src/native/audio_track.rs rename to libwebrtc/src/native/audio_track.rs diff --git a/livekit-webrtc/src/native/data_channel.rs b/libwebrtc/src/native/data_channel.rs similarity index 100% rename from livekit-webrtc/src/native/data_channel.rs rename to libwebrtc/src/native/data_channel.rs diff --git a/livekit-webrtc/src/native/frame_cryptor.rs b/libwebrtc/src/native/frame_cryptor.rs similarity index 100% rename from livekit-webrtc/src/native/frame_cryptor.rs rename to libwebrtc/src/native/frame_cryptor.rs diff --git a/livekit-webrtc/src/native/ice_candidate.rs b/libwebrtc/src/native/ice_candidate.rs similarity index 100% rename from livekit-webrtc/src/native/ice_candidate.rs rename to libwebrtc/src/native/ice_candidate.rs diff --git a/livekit-webrtc/src/native/media_stream.rs b/libwebrtc/src/native/media_stream.rs similarity index 100% rename from livekit-webrtc/src/native/media_stream.rs rename to libwebrtc/src/native/media_stream.rs diff --git a/livekit-webrtc/src/native/media_stream_track.rs b/libwebrtc/src/native/media_stream_track.rs similarity index 100% rename from livekit-webrtc/src/native/media_stream_track.rs rename to libwebrtc/src/native/media_stream_track.rs diff --git a/livekit-webrtc/src/native/mod.rs b/libwebrtc/src/native/mod.rs similarity index 100% rename from livekit-webrtc/src/native/mod.rs rename to libwebrtc/src/native/mod.rs diff --git a/livekit-webrtc/src/native/peer_connection.rs b/libwebrtc/src/native/peer_connection.rs similarity index 100% rename from livekit-webrtc/src/native/peer_connection.rs rename to libwebrtc/src/native/peer_connection.rs diff --git a/livekit-webrtc/src/native/peer_connection_factory.rs b/libwebrtc/src/native/peer_connection_factory.rs similarity index 100% rename from livekit-webrtc/src/native/peer_connection_factory.rs rename to libwebrtc/src/native/peer_connection_factory.rs diff --git a/livekit-webrtc/src/native/rtp_parameters.rs b/libwebrtc/src/native/rtp_parameters.rs similarity index 100% rename from livekit-webrtc/src/native/rtp_parameters.rs rename to libwebrtc/src/native/rtp_parameters.rs diff --git a/livekit-webrtc/src/native/rtp_receiver.rs b/libwebrtc/src/native/rtp_receiver.rs similarity index 100% rename from livekit-webrtc/src/native/rtp_receiver.rs rename to libwebrtc/src/native/rtp_receiver.rs diff --git a/livekit-webrtc/src/native/rtp_sender.rs b/libwebrtc/src/native/rtp_sender.rs similarity index 100% rename from livekit-webrtc/src/native/rtp_sender.rs rename to libwebrtc/src/native/rtp_sender.rs diff --git a/livekit-webrtc/src/native/rtp_transceiver.rs b/libwebrtc/src/native/rtp_transceiver.rs similarity index 100% rename from livekit-webrtc/src/native/rtp_transceiver.rs rename to libwebrtc/src/native/rtp_transceiver.rs diff --git a/livekit-webrtc/src/native/session_description.rs b/libwebrtc/src/native/session_description.rs similarity index 100% rename from livekit-webrtc/src/native/session_description.rs rename to libwebrtc/src/native/session_description.rs diff --git a/livekit-webrtc/src/native/video_frame.rs b/libwebrtc/src/native/video_frame.rs similarity index 100% rename from livekit-webrtc/src/native/video_frame.rs rename to libwebrtc/src/native/video_frame.rs diff --git a/livekit-webrtc/src/native/video_source.rs b/libwebrtc/src/native/video_source.rs similarity index 100% rename from livekit-webrtc/src/native/video_source.rs rename to libwebrtc/src/native/video_source.rs diff --git a/livekit-webrtc/src/native/video_stream.rs b/libwebrtc/src/native/video_stream.rs similarity index 100% rename from livekit-webrtc/src/native/video_stream.rs rename to libwebrtc/src/native/video_stream.rs diff --git a/livekit-webrtc/src/native/video_track.rs b/libwebrtc/src/native/video_track.rs similarity index 100% rename from livekit-webrtc/src/native/video_track.rs rename to libwebrtc/src/native/video_track.rs diff --git a/livekit-webrtc/src/native/yuv_helper.rs b/libwebrtc/src/native/yuv_helper.rs similarity index 100% rename from livekit-webrtc/src/native/yuv_helper.rs rename to libwebrtc/src/native/yuv_helper.rs diff --git a/livekit-webrtc/src/peer_connection.rs b/libwebrtc/src/peer_connection.rs similarity index 100% rename from livekit-webrtc/src/peer_connection.rs rename to libwebrtc/src/peer_connection.rs diff --git a/livekit-webrtc/src/peer_connection_factory.rs b/libwebrtc/src/peer_connection_factory.rs similarity index 100% rename from livekit-webrtc/src/peer_connection_factory.rs rename to libwebrtc/src/peer_connection_factory.rs diff --git a/livekit-webrtc/src/prelude.rs b/libwebrtc/src/prelude.rs similarity index 100% rename from livekit-webrtc/src/prelude.rs rename to libwebrtc/src/prelude.rs diff --git a/livekit-webrtc/src/rtp_parameters.rs b/libwebrtc/src/rtp_parameters.rs similarity index 100% rename from livekit-webrtc/src/rtp_parameters.rs rename to libwebrtc/src/rtp_parameters.rs diff --git a/livekit-webrtc/src/rtp_receiver.rs b/libwebrtc/src/rtp_receiver.rs similarity index 100% rename from livekit-webrtc/src/rtp_receiver.rs rename to libwebrtc/src/rtp_receiver.rs diff --git a/livekit-webrtc/src/rtp_sender.rs b/libwebrtc/src/rtp_sender.rs similarity index 100% rename from livekit-webrtc/src/rtp_sender.rs rename to libwebrtc/src/rtp_sender.rs diff --git a/livekit-webrtc/src/rtp_transceiver.rs b/libwebrtc/src/rtp_transceiver.rs similarity index 100% rename from livekit-webrtc/src/rtp_transceiver.rs rename to libwebrtc/src/rtp_transceiver.rs diff --git a/livekit-webrtc/src/session_description.rs b/libwebrtc/src/session_description.rs similarity index 100% rename from livekit-webrtc/src/session_description.rs rename to libwebrtc/src/session_description.rs diff --git a/livekit-webrtc/src/video_frame.rs b/libwebrtc/src/video_frame.rs similarity index 99% rename from livekit-webrtc/src/video_frame.rs rename to libwebrtc/src/video_frame.rs index a212d9aa..3ade9f17 100644 --- a/livekit-webrtc/src/video_frame.rs +++ b/libwebrtc/src/video_frame.rs @@ -245,10 +245,12 @@ impl I420ABuffer { ) } + #[allow(clippy::type_complexity)] pub fn data(&self) -> (&[u8], &[u8], &[u8], Option<&[u8]>) { self.handle.data() } + #[allow(clippy::type_complexity)] pub fn data_mut(&self) -> (&mut [u8], &mut [u8], &mut [u8], Option<&mut [u8]>) { let (data_y, data_u, data_v, data_a) = self.handle.data(); unsafe { diff --git a/livekit-webrtc/src/video_source.rs b/libwebrtc/src/video_source.rs similarity index 100% rename from livekit-webrtc/src/video_source.rs rename to libwebrtc/src/video_source.rs diff --git a/livekit-webrtc/src/video_stream.rs b/libwebrtc/src/video_stream.rs similarity index 100% rename from livekit-webrtc/src/video_stream.rs rename to libwebrtc/src/video_stream.rs diff --git a/livekit-webrtc/src/video_track.rs b/libwebrtc/src/video_track.rs similarity index 100% rename from livekit-webrtc/src/video_track.rs rename to libwebrtc/src/video_track.rs diff --git a/livekit-webrtc/src/web/data_channel.rs b/libwebrtc/src/web/data_channel.rs similarity index 100% rename from livekit-webrtc/src/web/data_channel.rs rename to libwebrtc/src/web/data_channel.rs diff --git a/livekit-webrtc/src/web/media_stream.rs b/libwebrtc/src/web/media_stream.rs similarity index 100% rename from livekit-webrtc/src/web/media_stream.rs rename to libwebrtc/src/web/media_stream.rs diff --git a/livekit-webrtc/src/web/mod.rs b/libwebrtc/src/web/mod.rs similarity index 100% rename from livekit-webrtc/src/web/mod.rs rename to libwebrtc/src/web/mod.rs diff --git a/livekit-api/Cargo.toml b/livekit-api/Cargo.toml index 0c2a0305..b71d5388 100644 --- a/livekit-api/Cargo.toml +++ b/livekit-api/Cargo.toml @@ -31,7 +31,7 @@ sha2 = "0.10" url = "2.3" log = "0.4" parking_lot = { version = "0.12" } -prost = "0.11" +prost = "0.12" # webhooks serde_json = { version = "1.0", optional = true } diff --git a/livekit-api/src/services/ingress.rs b/livekit-api/src/services/ingress.rs index 2fa147b1..f3b030ac 100644 --- a/livekit-api/src/services/ingress.rs +++ b/livekit-api/src/services/ingress.rs @@ -73,6 +73,7 @@ impl IngressClient { audio: Some(options.audio), video: Some(options.video), bypass_transcoding: false, // TODO Expose + ..Default::default() }, self.base.auth_header(VideoGrants { ingress_admin: true, diff --git a/livekit-api/src/services/room.rs b/livekit-api/src/services/room.rs index 856664b3..1ff754b6 100644 --- a/livekit-api/src/services/room.rs +++ b/livekit-api/src/services/room.rs @@ -38,7 +38,9 @@ pub struct UpdateParticipantOptions { #[derive(Debug, Clone, Default)] pub struct SendDataOptions { pub kind: proto::data_packet::Kind, + #[deprecated(note = "Use destination_identities instead")] pub destination_sids: Vec, + pub destination_identities: Vec, pub topic: Option, } @@ -77,6 +79,7 @@ impl RoomClient { node_id: options.node_id, metadata: options.metadata, egress: options.egress, + ..Default::default() }, self.base.auth_header(VideoGrants { room_create: true, @@ -299,6 +302,7 @@ impl RoomClient { data: Vec, options: SendDataOptions, ) -> ServiceResult<()> { + #[allow(deprecated)] self.client .request( SVC, @@ -309,6 +313,7 @@ impl RoomClient { destination_sids: options.destination_sids, topic: options.topic, kind: options.kind as i32, + destination_identities: options.destination_identities, }, self.base.auth_header(VideoGrants { room_admin: true, diff --git a/livekit-api/src/signal_client/signal_stream.rs b/livekit-api/src/signal_client/signal_stream.rs index 7fed8bfb..11628dc5 100644 --- a/livekit-api/src/signal_client/signal_stream.rs +++ b/livekit-api/src/signal_client/signal_stream.rs @@ -16,7 +16,7 @@ use super::{SignalError, SignalResult}; use futures_util::stream::{SplitSink, SplitStream}; use futures_util::{SinkExt, StreamExt}; use livekit_protocol as proto; -use prost::Message as ProstMessage; +use prost::Message as ProtoMessage; use tokio::net::TcpStream; use tokio::sync::{mpsc, oneshot}; use tokio::task::JoinHandle; diff --git a/livekit-protocol/Cargo.toml b/livekit-protocol/Cargo.toml index 215b8161..6ea7858b 100644 --- a/livekit-protocol/Cargo.toml +++ b/livekit-protocol/Cargo.toml @@ -10,10 +10,10 @@ repository = "https://github.com/livekit/client-sdk-rust" tokio = { version = "1", features = ["full"] } futures-util = { version = "0.3", features = ["sink"] } parking_lot = "0.12" -prost = "0.11" -prost-types = "0.11" +prost = "0.12" +prost-types = "0.12" serde = "1.0" -pbjson = "0.5" -pbjson-types = "0.5" +pbjson = "0.6" +pbjson-types = "0.6" thiserror = "1.0" diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index d45d830f..821c244d 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit d45d830f69e25056379fd30ec6c55c9c7fa4c412 +Subproject commit 821c244d8ce2f505aa494198fa4e153607335cf0 diff --git a/livekit-protocol/src/livekit.rs b/livekit-protocol/src/livekit.rs index 8986aa1d..4069786e 100644 --- a/livekit-protocol/src/livekit.rs +++ b/livekit-protocol/src/livekit.rs @@ -319,12 +319,17 @@ pub struct UserPacket { /// participant ID of user that sent the message #[prost(string, tag="1")] pub participant_sid: ::prost::alloc::string::String, + #[prost(string, tag="5")] + pub participant_identity: ::prost::alloc::string::String, /// user defined payload #[prost(bytes="vec", tag="2")] pub payload: ::prost::alloc::vec::Vec, - /// the ID of the participants who will receive the message (the message will be sent to all the people in the room if this variable is empty) + /// the ID of the participants who will receive the message (sent to all by default) #[prost(string, repeated, tag="3")] pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// identities of participants who will receive the message (sent to all by default) + #[prost(string, repeated, tag="6")] + pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// topic under which the message was published #[prost(string, optional, tag="4")] pub topic: ::core::option::Option<::prost::alloc::string::String>, @@ -425,6 +430,8 @@ pub mod client_info { Unity = 6, ReactNative = 7, Rust = 8, + Python = 9, + Cpp = 10, } impl Sdk { /// String value of the enum field names used in the ProtoBuf definition. @@ -442,6 +449,8 @@ pub mod client_info { Sdk::Unity => "UNITY", Sdk::ReactNative => "REACT_NATIVE", Sdk::Rust => "RUST", + Sdk::Python => "PYTHON", + Sdk::Cpp => "CPP", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -456,6 +465,8 @@ pub mod client_info { "UNITY" => Some(Self::Unity), "REACT_NATIVE" => Some(Self::ReactNative), "RUST" => Some(Self::Rust), + "PYTHON" => Some(Self::Python), + "CPP" => Some(Self::Cpp), _ => None, } } @@ -494,6 +505,28 @@ pub struct DisabledCodecs { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] +pub struct RtpDrift { + #[prost(message, optional, tag="1")] + pub start_time: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(message, optional, tag="2")] + pub end_time: ::core::option::Option<::pbjson_types::Timestamp>, + #[prost(double, tag="3")] + pub duration: f64, + #[prost(uint64, tag="4")] + pub start_timestamp: u64, + #[prost(uint64, tag="5")] + pub end_timestamp: u64, + #[prost(uint64, tag="6")] + pub rtp_clock_ticks: u64, + #[prost(int64, tag="7")] + pub drift_samples: i64, + #[prost(double, tag="8")] + pub drift_ms: f64, + #[prost(double, tag="9")] + pub clock_rate: f64, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct RtpStats { #[prost(message, optional, tag="1")] pub start_time: ::core::option::Option<::pbjson_types::Timestamp>, @@ -577,11 +610,11 @@ pub struct RtpStats { pub layer_lock_plis: u32, #[prost(message, optional, tag="36")] pub last_layer_lock_pli: ::core::option::Option<::pbjson_types::Timestamp>, - #[prost(double, tag="42")] - pub sample_rate: f64, - /// NEXT_ID: 44 - #[prost(double, tag="43")] - pub drift_ms: f64, + #[prost(message, optional, tag="44")] + pub packet_drift: ::core::option::Option, + /// NEXT_ID: 46 + #[prost(message, optional, tag="45")] + pub report_drift: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1018,6 +1051,41 @@ pub mod web_egress_request { Advanced(super::EncodingOptions), } } +/// record audio and video from a single participant +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ParticipantEgressRequest { + /// required + #[prost(string, tag="1")] + pub room_name: ::prost::alloc::string::String, + /// required + #[prost(string, tag="2")] + pub identity: ::prost::alloc::string::String, + /// (default false) + #[prost(bool, tag="3")] + pub screen_share: bool, + #[prost(message, repeated, tag="6")] + pub file_outputs: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="7")] + pub stream_outputs: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="8")] + pub segment_outputs: ::prost::alloc::vec::Vec, + #[prost(oneof="participant_egress_request::Options", tags="4, 5")] + pub options: ::core::option::Option, +} +/// Nested message and enum types in `ParticipantEgressRequest`. +pub mod participant_egress_request { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Options { + /// (default H264_720P_30) + #[prost(enumeration="super::EncodingOptionsPreset", tag="4")] + Preset(i32), + /// (optional) + #[prost(message, tag="5")] + Advanced(super::EncodingOptions), + } +} /// containerize up to one audio and one video track #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -1136,6 +1204,9 @@ pub struct SegmentedFileOutput { /// (optional) #[prost(string, tag="3")] pub playlist_name: ::prost::alloc::string::String, + /// (optional, disabled if not provided). Path of a live playlist + #[prost(string, tag="11")] + pub live_playlist_name: ::prost::alloc::string::String, /// in seconds (optional) #[prost(uint32, tag="4")] pub segment_duration: u32, @@ -1356,7 +1427,7 @@ pub struct EgressInfo { pub file_results: ::prost::alloc::vec::Vec, #[prost(message, repeated, tag="17")] pub segment_results: ::prost::alloc::vec::Vec, - #[prost(oneof="egress_info::Request", tags="4, 5, 6, 14")] + #[prost(oneof="egress_info::Request", tags="4, 14, 19, 5, 6")] pub request: ::core::option::Option, /// deprecated (use _result fields) #[prost(oneof="egress_info::Result", tags="7, 8, 12")] @@ -1369,12 +1440,14 @@ pub mod egress_info { pub enum Request { #[prost(message, tag="4")] RoomComposite(super::RoomCompositeEgressRequest), + #[prost(message, tag="14")] + Web(super::WebEgressRequest), + #[prost(message, tag="19")] + Participant(super::ParticipantEgressRequest), #[prost(message, tag="5")] TrackComposite(super::TrackCompositeEgressRequest), #[prost(message, tag="6")] Track(super::TrackEgressRequest), - #[prost(message, tag="14")] - Web(super::WebEgressRequest), } /// deprecated (use _result fields) #[allow(clippy::derive_partial_eq_without_eq)] @@ -1463,12 +1536,16 @@ pub struct FileInfo { pub struct SegmentsInfo { #[prost(string, tag="1")] pub playlist_name: ::prost::alloc::string::String, + #[prost(string, tag="8")] + pub live_playlist_name: ::prost::alloc::string::String, #[prost(int64, tag="2")] pub duration: i64, #[prost(int64, tag="3")] pub size: i64, #[prost(string, tag="4")] pub playlist_location: ::prost::alloc::string::String, + #[prost(string, tag="9")] + pub live_playlist_location: ::prost::alloc::string::String, #[prost(int64, tag="5")] pub segment_count: i64, #[prost(int64, tag="6")] @@ -1478,6 +1555,29 @@ pub struct SegmentsInfo { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] +pub struct AutoParticipantEgress { + #[prost(message, repeated, tag="3")] + pub file_outputs: ::prost::alloc::vec::Vec, + #[prost(message, repeated, tag="4")] + pub segment_outputs: ::prost::alloc::vec::Vec, + #[prost(oneof="auto_participant_egress::Options", tags="1, 2")] + pub options: ::core::option::Option, +} +/// Nested message and enum types in `AutoParticipantEgress`. +pub mod auto_participant_egress { + #[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum Options { + /// (default H264_720P_30) + #[prost(enumeration="super::EncodingOptionsPreset", tag="1")] + Preset(i32), + /// (optional) + #[prost(message, tag="2")] + Advanced(super::EncodingOptions), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct AutoTrackEgress { /// see docs for templating (default {track_id}-{time}) #[prost(string, tag="1")] @@ -1843,8 +1943,6 @@ pub struct SimulcastCodec { pub codec: ::prost::alloc::string::String, #[prost(string, tag="2")] pub cid: ::prost::alloc::string::String, - #[prost(bool, tag="3")] - pub enable_simulcast_layers: bool, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -2356,12 +2454,19 @@ pub struct CreateRoomRequest { /// egress #[prost(message, optional, tag="6")] pub egress: ::core::option::Option, + /// playout delay of subscriber + #[prost(uint32, tag="7")] + pub min_playout_delay: u32, + #[prost(uint32, tag="8")] + pub max_playout_delay: u32, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct RoomEgress { #[prost(message, optional, tag="1")] pub room: ::core::option::Option, + #[prost(message, optional, tag="3")] + pub participant: ::core::option::Option, #[prost(message, optional, tag="2")] pub tracks: ::core::option::Option, } @@ -2485,8 +2590,13 @@ pub struct SendDataRequest { pub data: ::prost::alloc::vec::Vec, #[prost(enumeration="data_packet::Kind", tag="3")] pub kind: i32, + /// mark deprecated + #[deprecated] #[prost(string, repeated, tag="4")] pub destination_sids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, + /// when set, only forward to these identities + #[prost(string, repeated, tag="6")] + pub destination_identities: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, #[prost(string, optional, tag="5")] pub topic: ::core::option::Option<::prost::alloc::string::String>, } @@ -2509,6 +2619,9 @@ pub struct UpdateRoomMetadataRequest { pub struct CreateIngressRequest { #[prost(enumeration="IngressInput", tag="1")] pub input_type: i32, + /// Where to pull media from, only for URL input type + #[prost(string, tag="9")] + pub url: ::prost::alloc::string::String, /// User provided identifier for the ingress #[prost(string, tag="2")] pub name: ::prost::alloc::string::String, @@ -2605,6 +2718,7 @@ pub struct IngressInfo { pub name: ::prost::alloc::string::String, #[prost(string, tag="3")] pub stream_key: ::prost::alloc::string::String, + /// URL to point the encoder to for push (RTMP, WHIP), or location to pull media from for pull (URL) #[prost(string, tag="4")] pub url: ::prost::alloc::string::String, /// for RTMP input, it'll be a rtmp:// URL @@ -2663,6 +2777,7 @@ pub mod ingress_state { EndpointBuffering = 1, EndpointPublishing = 2, EndpointError = 3, + EndpointComplete = 4, } impl Status { /// String value of the enum field names used in the ProtoBuf definition. @@ -2675,6 +2790,7 @@ pub mod ingress_state { Status::EndpointBuffering => "ENDPOINT_BUFFERING", Status::EndpointPublishing => "ENDPOINT_PUBLISHING", Status::EndpointError => "ENDPOINT_ERROR", + Status::EndpointComplete => "ENDPOINT_COMPLETE", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -2684,6 +2800,7 @@ pub mod ingress_state { "ENDPOINT_BUFFERING" => Some(Self::EndpointBuffering), "ENDPOINT_PUBLISHING" => Some(Self::EndpointPublishing), "ENDPOINT_ERROR" => Some(Self::EndpointError), + "ENDPOINT_COMPLETE" => Some(Self::EndpointComplete), _ => None, } } @@ -2763,10 +2880,9 @@ pub struct DeleteIngressRequest { #[repr(i32)] pub enum IngressInput { RtmpInput = 0, - /// FILE_INPUT = 2; - /// SRT_INPUT = 3; - /// URL_INPUT = 4; WhipInput = 1, + /// Pull from the provided URL. Only HTTP url are supported, serving either a single media file or a HLS stream + UrlInput = 2, } impl IngressInput { /// String value of the enum field names used in the ProtoBuf definition. @@ -2777,6 +2893,7 @@ impl IngressInput { match self { IngressInput::RtmpInput => "RTMP_INPUT", IngressInput::WhipInput => "WHIP_INPUT", + IngressInput::UrlInput => "URL_INPUT", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -2784,6 +2901,7 @@ impl IngressInput { match value { "RTMP_INPUT" => Some(Self::RtmpInput), "WHIP_INPUT" => Some(Self::WhipInput), + "URL_INPUT" => Some(Self::UrlInput), _ => None, } } @@ -2819,16 +2937,26 @@ impl IngressAudioEncodingPreset { #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum IngressVideoEncodingPreset { - /// 1280x720, 30fps, 1700kbps main layer, 3 layers total + /// 1280x720, 30fps, 1900kbps main layer, 3 layers total H264720p30fps3Layers = 0, - /// 1980x1080, 30fps, 3000kbps main layer, 3 layers total + /// 1980x1080, 30fps, 3500kbps main layer, 3 layers total H2641080p30fps3Layers = 1, - /// 960x540, 25fps, 600kbps main layer, 2 layers total + /// 960x540, 25fps, 1000kbps main layer, 2 layers total H264540p25fps2Layers = 2, - /// 1280x720, 30fps, 1700kbps, no simulcast + /// 1280x720, 30fps, 1900kbps, no simulcast H264720p30fps1Layer = 3, - /// 1980x1080, 30fps, 3000kbps, no simulcast + /// 1980x1080, 30fps, 3500kbps, no simulcast H2641080p30fps1Layer = 4, + /// 1280x720, 30fps, 2500kbps main layer, 3 layers total, higher bitrate for high motion, harder to encode content + H264720p30fps3LayersHighMotion = 5, + /// 1980x1080, 30fps, 4500kbps main layer, 3 layers total, higher bitrate for high motion, harder to encode content + H2641080p30fps3LayersHighMotion = 6, + /// 960x540, 25fps, 1300kbps main layer, 2 layers total, higher bitrate for high motion, harder to encode content + H264540p25fps2LayersHighMotion = 7, + /// 1280x720, 30fps, 2500kbps, no simulcast, higher bitrate for high motion, harder to encode content + H264720p30fps1LayerHighMotion = 8, + /// 1980x1080, 30fps, 4500kbps, no simulcast, higher bitrate for high motion, harder to encode content + H2641080p30fps1LayerHighMotion = 9, } impl IngressVideoEncodingPreset { /// String value of the enum field names used in the ProtoBuf definition. @@ -2842,6 +2970,11 @@ impl IngressVideoEncodingPreset { IngressVideoEncodingPreset::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS", IngressVideoEncodingPreset::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER", IngressVideoEncodingPreset::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER", + IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION", + IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION", + IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION", + IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION", + IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION", } } /// Creates an enum from field names used in the ProtoBuf definition. @@ -2852,6 +2985,11 @@ impl IngressVideoEncodingPreset { "H264_540P_25FPS_2_LAYERS" => Some(Self::H264540p25fps2Layers), "H264_720P_30FPS_1_LAYER" => Some(Self::H264720p30fps1Layer), "H264_1080P_30FPS_1_LAYER" => Some(Self::H2641080p30fps1Layer), + "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H264720p30fps3LayersHighMotion), + "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Some(Self::H2641080p30fps3LayersHighMotion), + "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Some(Self::H264540p25fps2LayersHighMotion), + "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H264720p30fps1LayerHighMotion), + "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Some(Self::H2641080p30fps1LayerHighMotion), _ => None, } } diff --git a/livekit-protocol/src/livekit.serde.rs b/livekit-protocol/src/livekit.serde.rs index b158da0f..f15ef9c4 100644 --- a/livekit-protocol/src/livekit.serde.rs +++ b/livekit-protocol/src/livekit.serde.rs @@ -668,6 +668,152 @@ impl<'de> serde::Deserialize<'de> for AudioCodec { deserializer.deserialize_any(GeneratedVisitor) } } +impl serde::Serialize for AutoParticipantEgress { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.file_outputs.is_empty() { + len += 1; + } + if !self.segment_outputs.is_empty() { + len += 1; + } + if self.options.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("livekit.AutoParticipantEgress", len)?; + if !self.file_outputs.is_empty() { + struct_ser.serialize_field("fileOutputs", &self.file_outputs)?; + } + if !self.segment_outputs.is_empty() { + struct_ser.serialize_field("segmentOutputs", &self.segment_outputs)?; + } + if let Some(v) = self.options.as_ref() { + match v { + auto_participant_egress::Options::Preset(v) => { + let v = EncodingOptionsPreset::from_i32(*v) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", *v)))?; + struct_ser.serialize_field("preset", &v)?; + } + auto_participant_egress::Options::Advanced(v) => { + struct_ser.serialize_field("advanced", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for AutoParticipantEgress { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "file_outputs", + "fileOutputs", + "segment_outputs", + "segmentOutputs", + "preset", + "advanced", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + FileOutputs, + SegmentOutputs, + Preset, + Advanced, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "fileOutputs" | "file_outputs" => Ok(GeneratedField::FileOutputs), + "segmentOutputs" | "segment_outputs" => Ok(GeneratedField::SegmentOutputs), + "preset" => Ok(GeneratedField::Preset), + "advanced" => Ok(GeneratedField::Advanced), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = AutoParticipantEgress; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct livekit.AutoParticipantEgress") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut file_outputs__ = None; + let mut segment_outputs__ = None; + let mut options__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::FileOutputs => { + if file_outputs__.is_some() { + return Err(serde::de::Error::duplicate_field("fileOutputs")); + } + file_outputs__ = Some(map.next_value()?); + } + GeneratedField::SegmentOutputs => { + if segment_outputs__.is_some() { + return Err(serde::de::Error::duplicate_field("segmentOutputs")); + } + segment_outputs__ = Some(map.next_value()?); + } + GeneratedField::Preset => { + if options__.is_some() { + return Err(serde::de::Error::duplicate_field("preset")); + } + options__ = map.next_value::<::std::option::Option>()?.map(|x| auto_participant_egress::Options::Preset(x as i32)); + } + GeneratedField::Advanced => { + if options__.is_some() { + return Err(serde::de::Error::duplicate_field("advanced")); + } + options__ = map.next_value::<::std::option::Option<_>>()?.map(auto_participant_egress::Options::Advanced) +; + } + } + } + Ok(AutoParticipantEgress { + file_outputs: file_outputs__.unwrap_or_default(), + segment_outputs: segment_outputs__.unwrap_or_default(), + options: options__, + }) + } + } + deserializer.deserialize_struct("livekit.AutoParticipantEgress", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for AutoTrackEgress { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result @@ -1538,6 +1684,8 @@ impl serde::Serialize for client_info::Sdk { Self::Unity => "UNITY", Self::ReactNative => "REACT_NATIVE", Self::Rust => "RUST", + Self::Python => "PYTHON", + Self::Cpp => "CPP", }; serializer.serialize_str(variant) } @@ -1558,6 +1706,8 @@ impl<'de> serde::Deserialize<'de> for client_info::Sdk { "UNITY", "REACT_NATIVE", "RUST", + "PYTHON", + "CPP", ]; struct GeneratedVisitor; @@ -1609,6 +1759,8 @@ impl<'de> serde::Deserialize<'de> for client_info::Sdk { "UNITY" => Ok(client_info::Sdk::Unity), "REACT_NATIVE" => Ok(client_info::Sdk::ReactNative), "RUST" => Ok(client_info::Sdk::Rust), + "PYTHON" => Ok(client_info::Sdk::Python), + "CPP" => Ok(client_info::Sdk::Cpp), _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), } } @@ -2033,6 +2185,9 @@ impl serde::Serialize for CreateIngressRequest { if self.input_type != 0 { len += 1; } + if !self.url.is_empty() { + len += 1; + } if !self.name.is_empty() { len += 1; } @@ -2060,6 +2215,9 @@ impl serde::Serialize for CreateIngressRequest { .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.input_type)))?; struct_ser.serialize_field("inputType", &v)?; } + if !self.url.is_empty() { + struct_ser.serialize_field("url", &self.url)?; + } if !self.name.is_empty() { struct_ser.serialize_field("name", &self.name)?; } @@ -2093,6 +2251,7 @@ impl<'de> serde::Deserialize<'de> for CreateIngressRequest { const FIELDS: &[&str] = &[ "input_type", "inputType", + "url", "name", "room_name", "roomName", @@ -2109,6 +2268,7 @@ impl<'de> serde::Deserialize<'de> for CreateIngressRequest { #[allow(clippy::enum_variant_names)] enum GeneratedField { InputType, + Url, Name, RoomName, ParticipantIdentity, @@ -2138,6 +2298,7 @@ impl<'de> serde::Deserialize<'de> for CreateIngressRequest { { match value { "inputType" | "input_type" => Ok(GeneratedField::InputType), + "url" => Ok(GeneratedField::Url), "name" => Ok(GeneratedField::Name), "roomName" | "room_name" => Ok(GeneratedField::RoomName), "participantIdentity" | "participant_identity" => Ok(GeneratedField::ParticipantIdentity), @@ -2165,6 +2326,7 @@ impl<'de> serde::Deserialize<'de> for CreateIngressRequest { V: serde::de::MapAccess<'de>, { let mut input_type__ = None; + let mut url__ = None; let mut name__ = None; let mut room_name__ = None; let mut participant_identity__ = None; @@ -2180,6 +2342,12 @@ impl<'de> serde::Deserialize<'de> for CreateIngressRequest { } input_type__ = Some(map.next_value::()? as i32); } + GeneratedField::Url => { + if url__.is_some() { + return Err(serde::de::Error::duplicate_field("url")); + } + url__ = Some(map.next_value()?); + } GeneratedField::Name => { if name__.is_some() { return Err(serde::de::Error::duplicate_field("name")); @@ -2226,6 +2394,7 @@ impl<'de> serde::Deserialize<'de> for CreateIngressRequest { } Ok(CreateIngressRequest { input_type: input_type__.unwrap_or_default(), + url: url__.unwrap_or_default(), name: name__.unwrap_or_default(), room_name: room_name__.unwrap_or_default(), participant_identity: participant_identity__.unwrap_or_default(), @@ -2265,6 +2434,12 @@ impl serde::Serialize for CreateRoomRequest { if self.egress.is_some() { len += 1; } + if self.min_playout_delay != 0 { + len += 1; + } + if self.max_playout_delay != 0 { + len += 1; + } let mut struct_ser = serializer.serialize_struct("livekit.CreateRoomRequest", len)?; if !self.name.is_empty() { struct_ser.serialize_field("name", &self.name)?; @@ -2284,6 +2459,12 @@ impl serde::Serialize for CreateRoomRequest { if let Some(v) = self.egress.as_ref() { struct_ser.serialize_field("egress", v)?; } + if self.min_playout_delay != 0 { + struct_ser.serialize_field("minPlayoutDelay", &self.min_playout_delay)?; + } + if self.max_playout_delay != 0 { + struct_ser.serialize_field("maxPlayoutDelay", &self.max_playout_delay)?; + } struct_ser.end() } } @@ -2303,6 +2484,10 @@ impl<'de> serde::Deserialize<'de> for CreateRoomRequest { "nodeId", "metadata", "egress", + "min_playout_delay", + "minPlayoutDelay", + "max_playout_delay", + "maxPlayoutDelay", ]; #[allow(clippy::enum_variant_names)] @@ -2313,6 +2498,8 @@ impl<'de> serde::Deserialize<'de> for CreateRoomRequest { NodeId, Metadata, Egress, + MinPlayoutDelay, + MaxPlayoutDelay, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -2340,6 +2527,8 @@ impl<'de> serde::Deserialize<'de> for CreateRoomRequest { "nodeId" | "node_id" => Ok(GeneratedField::NodeId), "metadata" => Ok(GeneratedField::Metadata), "egress" => Ok(GeneratedField::Egress), + "minPlayoutDelay" | "min_playout_delay" => Ok(GeneratedField::MinPlayoutDelay), + "maxPlayoutDelay" | "max_playout_delay" => Ok(GeneratedField::MaxPlayoutDelay), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -2365,6 +2554,8 @@ impl<'de> serde::Deserialize<'de> for CreateRoomRequest { let mut node_id__ = None; let mut metadata__ = None; let mut egress__ = None; + let mut min_playout_delay__ = None; + let mut max_playout_delay__ = None; while let Some(k) = map.next_key()? { match k { GeneratedField::Name => { @@ -2407,6 +2598,22 @@ impl<'de> serde::Deserialize<'de> for CreateRoomRequest { } egress__ = map.next_value()?; } + GeneratedField::MinPlayoutDelay => { + if min_playout_delay__.is_some() { + return Err(serde::de::Error::duplicate_field("minPlayoutDelay")); + } + min_playout_delay__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::MaxPlayoutDelay => { + if max_playout_delay__.is_some() { + return Err(serde::de::Error::duplicate_field("maxPlayoutDelay")); + } + max_playout_delay__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } } } Ok(CreateRoomRequest { @@ -2416,6 +2623,8 @@ impl<'de> serde::Deserialize<'de> for CreateRoomRequest { node_id: node_id__.unwrap_or_default(), metadata: metadata__.unwrap_or_default(), egress: egress__, + min_playout_delay: min_playout_delay__.unwrap_or_default(), + max_playout_delay: max_playout_delay__.unwrap_or_default(), }) } } @@ -3463,15 +3672,18 @@ impl serde::Serialize for EgressInfo { egress_info::Request::RoomComposite(v) => { struct_ser.serialize_field("roomComposite", v)?; } + egress_info::Request::Web(v) => { + struct_ser.serialize_field("web", v)?; + } + egress_info::Request::Participant(v) => { + struct_ser.serialize_field("participant", v)?; + } egress_info::Request::TrackComposite(v) => { struct_ser.serialize_field("trackComposite", v)?; } egress_info::Request::Track(v) => { struct_ser.serialize_field("track", v)?; } - egress_info::Request::Web(v) => { - struct_ser.serialize_field("web", v)?; - } } } if let Some(v) = self.result.as_ref() { @@ -3519,10 +3731,11 @@ impl<'de> serde::Deserialize<'de> for EgressInfo { "segmentResults", "room_composite", "roomComposite", + "web", + "participant", "track_composite", "trackComposite", "track", - "web", "stream", "file", "segments", @@ -3542,9 +3755,10 @@ impl<'de> serde::Deserialize<'de> for EgressInfo { FileResults, SegmentResults, RoomComposite, + Web, + Participant, TrackComposite, Track, - Web, Stream, File, Segments, @@ -3581,9 +3795,10 @@ impl<'de> serde::Deserialize<'de> for EgressInfo { "fileResults" | "file_results" => Ok(GeneratedField::FileResults), "segmentResults" | "segment_results" => Ok(GeneratedField::SegmentResults), "roomComposite" | "room_composite" => Ok(GeneratedField::RoomComposite), + "web" => Ok(GeneratedField::Web), + "participant" => Ok(GeneratedField::Participant), "trackComposite" | "track_composite" => Ok(GeneratedField::TrackComposite), "track" => Ok(GeneratedField::Track), - "web" => Ok(GeneratedField::Web), "stream" => Ok(GeneratedField::Stream), "file" => Ok(GeneratedField::File), "segments" => Ok(GeneratedField::Segments), @@ -3698,6 +3913,20 @@ impl<'de> serde::Deserialize<'de> for EgressInfo { return Err(serde::de::Error::duplicate_field("roomComposite")); } request__ = map.next_value::<::std::option::Option<_>>()?.map(egress_info::Request::RoomComposite) +; + } + GeneratedField::Web => { + if request__.is_some() { + return Err(serde::de::Error::duplicate_field("web")); + } + request__ = map.next_value::<::std::option::Option<_>>()?.map(egress_info::Request::Web) +; + } + GeneratedField::Participant => { + if request__.is_some() { + return Err(serde::de::Error::duplicate_field("participant")); + } + request__ = map.next_value::<::std::option::Option<_>>()?.map(egress_info::Request::Participant) ; } GeneratedField::TrackComposite => { @@ -3712,13 +3941,6 @@ impl<'de> serde::Deserialize<'de> for EgressInfo { return Err(serde::de::Error::duplicate_field("track")); } request__ = map.next_value::<::std::option::Option<_>>()?.map(egress_info::Request::Track) -; - } - GeneratedField::Web => { - if request__.is_some() { - return Err(serde::de::Error::duplicate_field("web")); - } - request__ = map.next_value::<::std::option::Option<_>>()?.map(egress_info::Request::Web) ; } GeneratedField::Stream => { @@ -5727,6 +5949,7 @@ impl serde::Serialize for IngressInput { let variant = match self { Self::RtmpInput => "RTMP_INPUT", Self::WhipInput => "WHIP_INPUT", + Self::UrlInput => "URL_INPUT", }; serializer.serialize_str(variant) } @@ -5740,6 +5963,7 @@ impl<'de> serde::Deserialize<'de> for IngressInput { const FIELDS: &[&str] = &[ "RTMP_INPUT", "WHIP_INPUT", + "URL_INPUT", ]; struct GeneratedVisitor; @@ -5784,6 +6008,7 @@ impl<'de> serde::Deserialize<'de> for IngressInput { match value { "RTMP_INPUT" => Ok(IngressInput::RtmpInput), "WHIP_INPUT" => Ok(IngressInput::WhipInput), + "URL_INPUT" => Ok(IngressInput::UrlInput), _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), } } @@ -6039,6 +6264,7 @@ impl serde::Serialize for ingress_state::Status { Self::EndpointBuffering => "ENDPOINT_BUFFERING", Self::EndpointPublishing => "ENDPOINT_PUBLISHING", Self::EndpointError => "ENDPOINT_ERROR", + Self::EndpointComplete => "ENDPOINT_COMPLETE", }; serializer.serialize_str(variant) } @@ -6054,6 +6280,7 @@ impl<'de> serde::Deserialize<'de> for ingress_state::Status { "ENDPOINT_BUFFERING", "ENDPOINT_PUBLISHING", "ENDPOINT_ERROR", + "ENDPOINT_COMPLETE", ]; struct GeneratedVisitor; @@ -6100,6 +6327,7 @@ impl<'de> serde::Deserialize<'de> for ingress_state::Status { "ENDPOINT_BUFFERING" => Ok(ingress_state::Status::EndpointBuffering), "ENDPOINT_PUBLISHING" => Ok(ingress_state::Status::EndpointPublishing), "ENDPOINT_ERROR" => Ok(ingress_state::Status::EndpointError), + "ENDPOINT_COMPLETE" => Ok(ingress_state::Status::EndpointComplete), _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), } } @@ -6250,6 +6478,11 @@ impl serde::Serialize for IngressVideoEncodingPreset { Self::H264540p25fps2Layers => "H264_540P_25FPS_2_LAYERS", Self::H264720p30fps1Layer => "H264_720P_30FPS_1_LAYER", Self::H2641080p30fps1Layer => "H264_1080P_30FPS_1_LAYER", + Self::H264720p30fps3LayersHighMotion => "H264_720P_30FPS_3_LAYERS_HIGH_MOTION", + Self::H2641080p30fps3LayersHighMotion => "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION", + Self::H264540p25fps2LayersHighMotion => "H264_540P_25FPS_2_LAYERS_HIGH_MOTION", + Self::H264720p30fps1LayerHighMotion => "H264_720P_30FPS_1_LAYER_HIGH_MOTION", + Self::H2641080p30fps1LayerHighMotion => "H264_1080P_30FPS_1_LAYER_HIGH_MOTION", }; serializer.serialize_str(variant) } @@ -6266,6 +6499,11 @@ impl<'de> serde::Deserialize<'de> for IngressVideoEncodingPreset { "H264_540P_25FPS_2_LAYERS", "H264_720P_30FPS_1_LAYER", "H264_1080P_30FPS_1_LAYER", + "H264_720P_30FPS_3_LAYERS_HIGH_MOTION", + "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION", + "H264_540P_25FPS_2_LAYERS_HIGH_MOTION", + "H264_720P_30FPS_1_LAYER_HIGH_MOTION", + "H264_1080P_30FPS_1_LAYER_HIGH_MOTION", ]; struct GeneratedVisitor; @@ -6313,6 +6551,11 @@ impl<'de> serde::Deserialize<'de> for IngressVideoEncodingPreset { "H264_540P_25FPS_2_LAYERS" => Ok(IngressVideoEncodingPreset::H264540p25fps2Layers), "H264_720P_30FPS_1_LAYER" => Ok(IngressVideoEncodingPreset::H264720p30fps1Layer), "H264_1080P_30FPS_1_LAYER" => Ok(IngressVideoEncodingPreset::H2641080p30fps1Layer), + "H264_720P_30FPS_3_LAYERS_HIGH_MOTION" => Ok(IngressVideoEncodingPreset::H264720p30fps3LayersHighMotion), + "H264_1080P_30FPS_3_LAYERS_HIGH_MOTION" => Ok(IngressVideoEncodingPreset::H2641080p30fps3LayersHighMotion), + "H264_540P_25FPS_2_LAYERS_HIGH_MOTION" => Ok(IngressVideoEncodingPreset::H264540p25fps2LayersHighMotion), + "H264_720P_30FPS_1_LAYER_HIGH_MOTION" => Ok(IngressVideoEncodingPreset::H264720p30fps1LayerHighMotion), + "H264_1080P_30FPS_1_LAYER_HIGH_MOTION" => Ok(IngressVideoEncodingPreset::H2641080p30fps1LayerHighMotion), _ => Err(serde::de::Error::unknown_variant(value, FIELDS)), } } @@ -8334,6 +8577,223 @@ impl<'de> serde::Deserialize<'de> for MuteTrackRequest { deserializer.deserialize_struct("livekit.MuteTrackRequest", FIELDS, GeneratedVisitor) } } +impl serde::Serialize for ParticipantEgressRequest { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.room_name.is_empty() { + len += 1; + } + if !self.identity.is_empty() { + len += 1; + } + if self.screen_share { + len += 1; + } + if !self.file_outputs.is_empty() { + len += 1; + } + if !self.stream_outputs.is_empty() { + len += 1; + } + if !self.segment_outputs.is_empty() { + len += 1; + } + if self.options.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("livekit.ParticipantEgressRequest", len)?; + if !self.room_name.is_empty() { + struct_ser.serialize_field("roomName", &self.room_name)?; + } + if !self.identity.is_empty() { + struct_ser.serialize_field("identity", &self.identity)?; + } + if self.screen_share { + struct_ser.serialize_field("screenShare", &self.screen_share)?; + } + if !self.file_outputs.is_empty() { + struct_ser.serialize_field("fileOutputs", &self.file_outputs)?; + } + if !self.stream_outputs.is_empty() { + struct_ser.serialize_field("streamOutputs", &self.stream_outputs)?; + } + if !self.segment_outputs.is_empty() { + struct_ser.serialize_field("segmentOutputs", &self.segment_outputs)?; + } + if let Some(v) = self.options.as_ref() { + match v { + participant_egress_request::Options::Preset(v) => { + let v = EncodingOptionsPreset::from_i32(*v) + .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", *v)))?; + struct_ser.serialize_field("preset", &v)?; + } + participant_egress_request::Options::Advanced(v) => { + struct_ser.serialize_field("advanced", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ParticipantEgressRequest { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "room_name", + "roomName", + "identity", + "screen_share", + "screenShare", + "file_outputs", + "fileOutputs", + "stream_outputs", + "streamOutputs", + "segment_outputs", + "segmentOutputs", + "preset", + "advanced", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RoomName, + Identity, + ScreenShare, + FileOutputs, + StreamOutputs, + SegmentOutputs, + Preset, + Advanced, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "roomName" | "room_name" => Ok(GeneratedField::RoomName), + "identity" => Ok(GeneratedField::Identity), + "screenShare" | "screen_share" => Ok(GeneratedField::ScreenShare), + "fileOutputs" | "file_outputs" => Ok(GeneratedField::FileOutputs), + "streamOutputs" | "stream_outputs" => Ok(GeneratedField::StreamOutputs), + "segmentOutputs" | "segment_outputs" => Ok(GeneratedField::SegmentOutputs), + "preset" => Ok(GeneratedField::Preset), + "advanced" => Ok(GeneratedField::Advanced), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ParticipantEgressRequest; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct livekit.ParticipantEgressRequest") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut room_name__ = None; + let mut identity__ = None; + let mut screen_share__ = None; + let mut file_outputs__ = None; + let mut stream_outputs__ = None; + let mut segment_outputs__ = None; + let mut options__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::RoomName => { + if room_name__.is_some() { + return Err(serde::de::Error::duplicate_field("roomName")); + } + room_name__ = Some(map.next_value()?); + } + GeneratedField::Identity => { + if identity__.is_some() { + return Err(serde::de::Error::duplicate_field("identity")); + } + identity__ = Some(map.next_value()?); + } + GeneratedField::ScreenShare => { + if screen_share__.is_some() { + return Err(serde::de::Error::duplicate_field("screenShare")); + } + screen_share__ = Some(map.next_value()?); + } + GeneratedField::FileOutputs => { + if file_outputs__.is_some() { + return Err(serde::de::Error::duplicate_field("fileOutputs")); + } + file_outputs__ = Some(map.next_value()?); + } + GeneratedField::StreamOutputs => { + if stream_outputs__.is_some() { + return Err(serde::de::Error::duplicate_field("streamOutputs")); + } + stream_outputs__ = Some(map.next_value()?); + } + GeneratedField::SegmentOutputs => { + if segment_outputs__.is_some() { + return Err(serde::de::Error::duplicate_field("segmentOutputs")); + } + segment_outputs__ = Some(map.next_value()?); + } + GeneratedField::Preset => { + if options__.is_some() { + return Err(serde::de::Error::duplicate_field("preset")); + } + options__ = map.next_value::<::std::option::Option>()?.map(|x| participant_egress_request::Options::Preset(x as i32)); + } + GeneratedField::Advanced => { + if options__.is_some() { + return Err(serde::de::Error::duplicate_field("advanced")); + } + options__ = map.next_value::<::std::option::Option<_>>()?.map(participant_egress_request::Options::Advanced) +; + } + } + } + Ok(ParticipantEgressRequest { + room_name: room_name__.unwrap_or_default(), + identity: identity__.unwrap_or_default(), + screen_share: screen_share__.unwrap_or_default(), + file_outputs: file_outputs__.unwrap_or_default(), + stream_outputs: stream_outputs__.unwrap_or_default(), + segment_outputs: segment_outputs__.unwrap_or_default(), + options: options__, + }) + } + } + deserializer.deserialize_struct("livekit.ParticipantEgressRequest", FIELDS, GeneratedVisitor) + } +} impl serde::Serialize for ParticipantInfo { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result @@ -9292,41 +9752,154 @@ impl<'de> serde::Deserialize<'de> for PlayoutDelay { let mut max__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::Enabled => { - if enabled__.is_some() { - return Err(serde::de::Error::duplicate_field("enabled")); - } - enabled__ = Some(map.next_value()?); - } - GeneratedField::Min => { - if min__.is_some() { - return Err(serde::de::Error::duplicate_field("min")); + GeneratedField::Enabled => { + if enabled__.is_some() { + return Err(serde::de::Error::duplicate_field("enabled")); + } + enabled__ = Some(map.next_value()?); + } + GeneratedField::Min => { + if min__.is_some() { + return Err(serde::de::Error::duplicate_field("min")); + } + min__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Max => { + if max__.is_some() { + return Err(serde::de::Error::duplicate_field("max")); + } + max__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + } + } + Ok(PlayoutDelay { + enabled: enabled__.unwrap_or_default(), + min: min__.unwrap_or_default(), + max: max__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("livekit.PlayoutDelay", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Pong { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.last_ping_timestamp != 0 { + len += 1; + } + if self.timestamp != 0 { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("livekit.Pong", len)?; + if self.last_ping_timestamp != 0 { + struct_ser.serialize_field("lastPingTimestamp", ToString::to_string(&self.last_ping_timestamp).as_str())?; + } + if self.timestamp != 0 { + struct_ser.serialize_field("timestamp", ToString::to_string(&self.timestamp).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Pong { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "last_ping_timestamp", + "lastPingTimestamp", + "timestamp", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + LastPingTimestamp, + Timestamp, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "lastPingTimestamp" | "last_ping_timestamp" => Ok(GeneratedField::LastPingTimestamp), + "timestamp" => Ok(GeneratedField::Timestamp), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Pong; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct livekit.Pong") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut last_ping_timestamp__ = None; + let mut timestamp__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::LastPingTimestamp => { + if last_ping_timestamp__.is_some() { + return Err(serde::de::Error::duplicate_field("lastPingTimestamp")); } - min__ = + last_ping_timestamp__ = Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) ; } - GeneratedField::Max => { - if max__.is_some() { - return Err(serde::de::Error::duplicate_field("max")); + GeneratedField::Timestamp => { + if timestamp__.is_some() { + return Err(serde::de::Error::duplicate_field("timestamp")); } - max__ = + timestamp__ = Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) ; } } } - Ok(PlayoutDelay { - enabled: enabled__.unwrap_or_default(), - min: min__.unwrap_or_default(), - max: max__.unwrap_or_default(), + Ok(Pong { + last_ping_timestamp: last_ping_timestamp__.unwrap_or_default(), + timestamp: timestamp__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("livekit.PlayoutDelay", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("livekit.Pong", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for Pong { +impl serde::Serialize for RtpDrift { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -9334,38 +9907,101 @@ impl serde::Serialize for Pong { { use serde::ser::SerializeStruct; let mut len = 0; - if self.last_ping_timestamp != 0 { + if self.start_time.is_some() { len += 1; } - if self.timestamp != 0 { + if self.end_time.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("livekit.Pong", len)?; - if self.last_ping_timestamp != 0 { - struct_ser.serialize_field("lastPingTimestamp", ToString::to_string(&self.last_ping_timestamp).as_str())?; + if self.duration != 0. { + len += 1; } - if self.timestamp != 0 { - struct_ser.serialize_field("timestamp", ToString::to_string(&self.timestamp).as_str())?; + if self.start_timestamp != 0 { + len += 1; + } + if self.end_timestamp != 0 { + len += 1; + } + if self.rtp_clock_ticks != 0 { + len += 1; + } + if self.drift_samples != 0 { + len += 1; + } + if self.drift_ms != 0. { + len += 1; + } + if self.clock_rate != 0. { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("livekit.RTPDrift", len)?; + if let Some(v) = self.start_time.as_ref() { + struct_ser.serialize_field("startTime", v)?; + } + if let Some(v) = self.end_time.as_ref() { + struct_ser.serialize_field("endTime", v)?; + } + if self.duration != 0. { + struct_ser.serialize_field("duration", &self.duration)?; + } + if self.start_timestamp != 0 { + struct_ser.serialize_field("startTimestamp", ToString::to_string(&self.start_timestamp).as_str())?; + } + if self.end_timestamp != 0 { + struct_ser.serialize_field("endTimestamp", ToString::to_string(&self.end_timestamp).as_str())?; + } + if self.rtp_clock_ticks != 0 { + struct_ser.serialize_field("rtpClockTicks", ToString::to_string(&self.rtp_clock_ticks).as_str())?; + } + if self.drift_samples != 0 { + struct_ser.serialize_field("driftSamples", ToString::to_string(&self.drift_samples).as_str())?; + } + if self.drift_ms != 0. { + struct_ser.serialize_field("driftMs", &self.drift_ms)?; + } + if self.clock_rate != 0. { + struct_ser.serialize_field("clockRate", &self.clock_rate)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for Pong { +impl<'de> serde::Deserialize<'de> for RtpDrift { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "last_ping_timestamp", - "lastPingTimestamp", - "timestamp", + "start_time", + "startTime", + "end_time", + "endTime", + "duration", + "start_timestamp", + "startTimestamp", + "end_timestamp", + "endTimestamp", + "rtp_clock_ticks", + "rtpClockTicks", + "drift_samples", + "driftSamples", + "drift_ms", + "driftMs", + "clock_rate", + "clockRate", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - LastPingTimestamp, - Timestamp, + StartTime, + EndTime, + Duration, + StartTimestamp, + EndTimestamp, + RtpClockTicks, + DriftSamples, + DriftMs, + ClockRate, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -9387,8 +10023,15 @@ impl<'de> serde::Deserialize<'de> for Pong { E: serde::de::Error, { match value { - "lastPingTimestamp" | "last_ping_timestamp" => Ok(GeneratedField::LastPingTimestamp), - "timestamp" => Ok(GeneratedField::Timestamp), + "startTime" | "start_time" => Ok(GeneratedField::StartTime), + "endTime" | "end_time" => Ok(GeneratedField::EndTime), + "duration" => Ok(GeneratedField::Duration), + "startTimestamp" | "start_timestamp" => Ok(GeneratedField::StartTimestamp), + "endTimestamp" | "end_timestamp" => Ok(GeneratedField::EndTimestamp), + "rtpClockTicks" | "rtp_clock_ticks" => Ok(GeneratedField::RtpClockTicks), + "driftSamples" | "drift_samples" => Ok(GeneratedField::DriftSamples), + "driftMs" | "drift_ms" => Ok(GeneratedField::DriftMs), + "clockRate" | "clock_rate" => Ok(GeneratedField::ClockRate), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -9398,45 +10041,111 @@ impl<'de> serde::Deserialize<'de> for Pong { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Pong; + type Value = RtpDrift; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct livekit.Pong") + formatter.write_str("struct livekit.RTPDrift") } - fn visit_map(self, mut map: V) -> std::result::Result + fn visit_map(self, mut map: V) -> std::result::Result where V: serde::de::MapAccess<'de>, { - let mut last_ping_timestamp__ = None; - let mut timestamp__ = None; + let mut start_time__ = None; + let mut end_time__ = None; + let mut duration__ = None; + let mut start_timestamp__ = None; + let mut end_timestamp__ = None; + let mut rtp_clock_ticks__ = None; + let mut drift_samples__ = None; + let mut drift_ms__ = None; + let mut clock_rate__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::LastPingTimestamp => { - if last_ping_timestamp__.is_some() { - return Err(serde::de::Error::duplicate_field("lastPingTimestamp")); + GeneratedField::StartTime => { + if start_time__.is_some() { + return Err(serde::de::Error::duplicate_field("startTime")); } - last_ping_timestamp__ = + start_time__ = map.next_value()?; + } + GeneratedField::EndTime => { + if end_time__.is_some() { + return Err(serde::de::Error::duplicate_field("endTime")); + } + end_time__ = map.next_value()?; + } + GeneratedField::Duration => { + if duration__.is_some() { + return Err(serde::de::Error::duplicate_field("duration")); + } + duration__ = Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) ; } - GeneratedField::Timestamp => { - if timestamp__.is_some() { - return Err(serde::de::Error::duplicate_field("timestamp")); + GeneratedField::StartTimestamp => { + if start_timestamp__.is_some() { + return Err(serde::de::Error::duplicate_field("startTimestamp")); } - timestamp__ = + start_timestamp__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::EndTimestamp => { + if end_timestamp__.is_some() { + return Err(serde::de::Error::duplicate_field("endTimestamp")); + } + end_timestamp__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::RtpClockTicks => { + if rtp_clock_ticks__.is_some() { + return Err(serde::de::Error::duplicate_field("rtpClockTicks")); + } + rtp_clock_ticks__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::DriftSamples => { + if drift_samples__.is_some() { + return Err(serde::de::Error::duplicate_field("driftSamples")); + } + drift_samples__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::DriftMs => { + if drift_ms__.is_some() { + return Err(serde::de::Error::duplicate_field("driftMs")); + } + drift_ms__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::ClockRate => { + if clock_rate__.is_some() { + return Err(serde::de::Error::duplicate_field("clockRate")); + } + clock_rate__ = Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) ; } } } - Ok(Pong { - last_ping_timestamp: last_ping_timestamp__.unwrap_or_default(), - timestamp: timestamp__.unwrap_or_default(), + Ok(RtpDrift { + start_time: start_time__, + end_time: end_time__, + duration: duration__.unwrap_or_default(), + start_timestamp: start_timestamp__.unwrap_or_default(), + end_timestamp: end_timestamp__.unwrap_or_default(), + rtp_clock_ticks: rtp_clock_ticks__.unwrap_or_default(), + drift_samples: drift_samples__.unwrap_or_default(), + drift_ms: drift_ms__.unwrap_or_default(), + clock_rate: clock_rate__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("livekit.Pong", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("livekit.RTPDrift", FIELDS, GeneratedVisitor) } } impl serde::Serialize for RtpStats { @@ -9570,10 +10279,10 @@ impl serde::Serialize for RtpStats { if self.last_layer_lock_pli.is_some() { len += 1; } - if self.sample_rate != 0. { + if self.packet_drift.is_some() { len += 1; } - if self.drift_ms != 0. { + if self.report_drift.is_some() { len += 1; } let mut struct_ser = serializer.serialize_struct("livekit.RTPStats", len)?; @@ -9700,11 +10409,11 @@ impl serde::Serialize for RtpStats { if let Some(v) = self.last_layer_lock_pli.as_ref() { struct_ser.serialize_field("lastLayerLockPli", v)?; } - if self.sample_rate != 0. { - struct_ser.serialize_field("sampleRate", &self.sample_rate)?; + if let Some(v) = self.packet_drift.as_ref() { + struct_ser.serialize_field("packetDrift", v)?; } - if self.drift_ms != 0. { - struct_ser.serialize_field("driftMs", &self.drift_ms)?; + if let Some(v) = self.report_drift.as_ref() { + struct_ser.serialize_field("reportDrift", v)?; } struct_ser.end() } @@ -9790,10 +10499,10 @@ impl<'de> serde::Deserialize<'de> for RtpStats { "layerLockPlis", "last_layer_lock_pli", "lastLayerLockPli", - "sample_rate", - "sampleRate", - "drift_ms", - "driftMs", + "packet_drift", + "packetDrift", + "report_drift", + "reportDrift", ]; #[allow(clippy::enum_variant_names)] @@ -9839,8 +10548,8 @@ impl<'de> serde::Deserialize<'de> for RtpStats { LastKeyFrame, LayerLockPlis, LastLayerLockPli, - SampleRate, - DriftMs, + PacketDrift, + ReportDrift, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -9903,8 +10612,8 @@ impl<'de> serde::Deserialize<'de> for RtpStats { "lastKeyFrame" | "last_key_frame" => Ok(GeneratedField::LastKeyFrame), "layerLockPlis" | "layer_lock_plis" => Ok(GeneratedField::LayerLockPlis), "lastLayerLockPli" | "last_layer_lock_pli" => Ok(GeneratedField::LastLayerLockPli), - "sampleRate" | "sample_rate" => Ok(GeneratedField::SampleRate), - "driftMs" | "drift_ms" => Ok(GeneratedField::DriftMs), + "packetDrift" | "packet_drift" => Ok(GeneratedField::PacketDrift), + "reportDrift" | "report_drift" => Ok(GeneratedField::ReportDrift), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -9965,8 +10674,8 @@ impl<'de> serde::Deserialize<'de> for RtpStats { let mut last_key_frame__ = None; let mut layer_lock_plis__ = None; let mut last_layer_lock_pli__ = None; - let mut sample_rate__ = None; - let mut drift_ms__ = None; + let mut packet_drift__ = None; + let mut report_drift__ = None; while let Some(k) = map.next_key()? { match k { GeneratedField::StartTime => { @@ -10286,21 +10995,17 @@ impl<'de> serde::Deserialize<'de> for RtpStats { } last_layer_lock_pli__ = map.next_value()?; } - GeneratedField::SampleRate => { - if sample_rate__.is_some() { - return Err(serde::de::Error::duplicate_field("sampleRate")); + GeneratedField::PacketDrift => { + if packet_drift__.is_some() { + return Err(serde::de::Error::duplicate_field("packetDrift")); } - sample_rate__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; + packet_drift__ = map.next_value()?; } - GeneratedField::DriftMs => { - if drift_ms__.is_some() { - return Err(serde::de::Error::duplicate_field("driftMs")); + GeneratedField::ReportDrift => { + if report_drift__.is_some() { + return Err(serde::de::Error::duplicate_field("reportDrift")); } - drift_ms__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; + report_drift__ = map.next_value()?; } } } @@ -10346,8 +11051,8 @@ impl<'de> serde::Deserialize<'de> for RtpStats { last_key_frame: last_key_frame__, layer_lock_plis: layer_lock_plis__.unwrap_or_default(), last_layer_lock_pli: last_layer_lock_pli__, - sample_rate: sample_rate__.unwrap_or_default(), - drift_ms: drift_ms__.unwrap_or_default(), + packet_drift: packet_drift__, + report_drift: report_drift__, }) } } @@ -11444,6 +12149,9 @@ impl serde::Serialize for RoomEgress { if self.room.is_some() { len += 1; } + if self.participant.is_some() { + len += 1; + } if self.tracks.is_some() { len += 1; } @@ -11451,6 +12159,9 @@ impl serde::Serialize for RoomEgress { if let Some(v) = self.room.as_ref() { struct_ser.serialize_field("room", v)?; } + if let Some(v) = self.participant.as_ref() { + struct_ser.serialize_field("participant", v)?; + } if let Some(v) = self.tracks.as_ref() { struct_ser.serialize_field("tracks", v)?; } @@ -11465,12 +12176,14 @@ impl<'de> serde::Deserialize<'de> for RoomEgress { { const FIELDS: &[&str] = &[ "room", + "participant", "tracks", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { Room, + Participant, Tracks, } impl<'de> serde::Deserialize<'de> for GeneratedField { @@ -11494,6 +12207,7 @@ impl<'de> serde::Deserialize<'de> for RoomEgress { { match value { "room" => Ok(GeneratedField::Room), + "participant" => Ok(GeneratedField::Participant), "tracks" => Ok(GeneratedField::Tracks), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } @@ -11515,6 +12229,7 @@ impl<'de> serde::Deserialize<'de> for RoomEgress { V: serde::de::MapAccess<'de>, { let mut room__ = None; + let mut participant__ = None; let mut tracks__ = None; while let Some(k) = map.next_key()? { match k { @@ -11524,6 +12239,12 @@ impl<'de> serde::Deserialize<'de> for RoomEgress { } room__ = map.next_value()?; } + GeneratedField::Participant => { + if participant__.is_some() { + return Err(serde::de::Error::duplicate_field("participant")); + } + participant__ = map.next_value()?; + } GeneratedField::Tracks => { if tracks__.is_some() { return Err(serde::de::Error::duplicate_field("tracks")); @@ -11534,6 +12255,7 @@ impl<'de> serde::Deserialize<'de> for RoomEgress { } Ok(RoomEgress { room: room__, + participant: participant__, tracks: tracks__, }) } @@ -11971,6 +12693,9 @@ impl serde::Serialize for SegmentedFileOutput { if !self.playlist_name.is_empty() { len += 1; } + if !self.live_playlist_name.is_empty() { + len += 1; + } if self.segment_duration != 0 { len += 1; } @@ -11995,6 +12720,9 @@ impl serde::Serialize for SegmentedFileOutput { if !self.playlist_name.is_empty() { struct_ser.serialize_field("playlistName", &self.playlist_name)?; } + if !self.live_playlist_name.is_empty() { + struct_ser.serialize_field("livePlaylistName", &self.live_playlist_name)?; + } if self.segment_duration != 0 { struct_ser.serialize_field("segmentDuration", &self.segment_duration)?; } @@ -12037,6 +12765,8 @@ impl<'de> serde::Deserialize<'de> for SegmentedFileOutput { "filenamePrefix", "playlist_name", "playlistName", + "live_playlist_name", + "livePlaylistName", "segment_duration", "segmentDuration", "filename_suffix", @@ -12054,6 +12784,7 @@ impl<'de> serde::Deserialize<'de> for SegmentedFileOutput { Protocol, FilenamePrefix, PlaylistName, + LivePlaylistName, SegmentDuration, FilenameSuffix, DisableManifest, @@ -12085,6 +12816,7 @@ impl<'de> serde::Deserialize<'de> for SegmentedFileOutput { "protocol" => Ok(GeneratedField::Protocol), "filenamePrefix" | "filename_prefix" => Ok(GeneratedField::FilenamePrefix), "playlistName" | "playlist_name" => Ok(GeneratedField::PlaylistName), + "livePlaylistName" | "live_playlist_name" => Ok(GeneratedField::LivePlaylistName), "segmentDuration" | "segment_duration" => Ok(GeneratedField::SegmentDuration), "filenameSuffix" | "filename_suffix" => Ok(GeneratedField::FilenameSuffix), "disableManifest" | "disable_manifest" => Ok(GeneratedField::DisableManifest), @@ -12114,6 +12846,7 @@ impl<'de> serde::Deserialize<'de> for SegmentedFileOutput { let mut protocol__ = None; let mut filename_prefix__ = None; let mut playlist_name__ = None; + let mut live_playlist_name__ = None; let mut segment_duration__ = None; let mut filename_suffix__ = None; let mut disable_manifest__ = None; @@ -12138,6 +12871,12 @@ impl<'de> serde::Deserialize<'de> for SegmentedFileOutput { } playlist_name__ = Some(map.next_value()?); } + GeneratedField::LivePlaylistName => { + if live_playlist_name__.is_some() { + return Err(serde::de::Error::duplicate_field("livePlaylistName")); + } + live_playlist_name__ = Some(map.next_value()?); + } GeneratedField::SegmentDuration => { if segment_duration__.is_some() { return Err(serde::de::Error::duplicate_field("segmentDuration")); @@ -12192,6 +12931,7 @@ impl<'de> serde::Deserialize<'de> for SegmentedFileOutput { protocol: protocol__.unwrap_or_default(), filename_prefix: filename_prefix__.unwrap_or_default(), playlist_name: playlist_name__.unwrap_or_default(), + live_playlist_name: live_playlist_name__.unwrap_or_default(), segment_duration: segment_duration__.unwrap_or_default(), filename_suffix: filename_suffix__.unwrap_or_default(), disable_manifest: disable_manifest__.unwrap_or_default(), @@ -12359,6 +13099,9 @@ impl serde::Serialize for SegmentsInfo { if !self.playlist_name.is_empty() { len += 1; } + if !self.live_playlist_name.is_empty() { + len += 1; + } if self.duration != 0 { len += 1; } @@ -12368,6 +13111,9 @@ impl serde::Serialize for SegmentsInfo { if !self.playlist_location.is_empty() { len += 1; } + if !self.live_playlist_location.is_empty() { + len += 1; + } if self.segment_count != 0 { len += 1; } @@ -12381,6 +13127,9 @@ impl serde::Serialize for SegmentsInfo { if !self.playlist_name.is_empty() { struct_ser.serialize_field("playlistName", &self.playlist_name)?; } + if !self.live_playlist_name.is_empty() { + struct_ser.serialize_field("livePlaylistName", &self.live_playlist_name)?; + } if self.duration != 0 { struct_ser.serialize_field("duration", ToString::to_string(&self.duration).as_str())?; } @@ -12390,6 +13139,9 @@ impl serde::Serialize for SegmentsInfo { if !self.playlist_location.is_empty() { struct_ser.serialize_field("playlistLocation", &self.playlist_location)?; } + if !self.live_playlist_location.is_empty() { + struct_ser.serialize_field("livePlaylistLocation", &self.live_playlist_location)?; + } if self.segment_count != 0 { struct_ser.serialize_field("segmentCount", ToString::to_string(&self.segment_count).as_str())?; } @@ -12411,10 +13163,14 @@ impl<'de> serde::Deserialize<'de> for SegmentsInfo { const FIELDS: &[&str] = &[ "playlist_name", "playlistName", + "live_playlist_name", + "livePlaylistName", "duration", "size", "playlist_location", "playlistLocation", + "live_playlist_location", + "livePlaylistLocation", "segment_count", "segmentCount", "started_at", @@ -12426,9 +13182,11 @@ impl<'de> serde::Deserialize<'de> for SegmentsInfo { #[allow(clippy::enum_variant_names)] enum GeneratedField { PlaylistName, + LivePlaylistName, Duration, Size, PlaylistLocation, + LivePlaylistLocation, SegmentCount, StartedAt, EndedAt, @@ -12454,9 +13212,11 @@ impl<'de> serde::Deserialize<'de> for SegmentsInfo { { match value { "playlistName" | "playlist_name" => Ok(GeneratedField::PlaylistName), + "livePlaylistName" | "live_playlist_name" => Ok(GeneratedField::LivePlaylistName), "duration" => Ok(GeneratedField::Duration), "size" => Ok(GeneratedField::Size), "playlistLocation" | "playlist_location" => Ok(GeneratedField::PlaylistLocation), + "livePlaylistLocation" | "live_playlist_location" => Ok(GeneratedField::LivePlaylistLocation), "segmentCount" | "segment_count" => Ok(GeneratedField::SegmentCount), "startedAt" | "started_at" => Ok(GeneratedField::StartedAt), "endedAt" | "ended_at" => Ok(GeneratedField::EndedAt), @@ -12480,9 +13240,11 @@ impl<'de> serde::Deserialize<'de> for SegmentsInfo { V: serde::de::MapAccess<'de>, { let mut playlist_name__ = None; + let mut live_playlist_name__ = None; let mut duration__ = None; let mut size__ = None; let mut playlist_location__ = None; + let mut live_playlist_location__ = None; let mut segment_count__ = None; let mut started_at__ = None; let mut ended_at__ = None; @@ -12494,6 +13256,12 @@ impl<'de> serde::Deserialize<'de> for SegmentsInfo { } playlist_name__ = Some(map.next_value()?); } + GeneratedField::LivePlaylistName => { + if live_playlist_name__.is_some() { + return Err(serde::de::Error::duplicate_field("livePlaylistName")); + } + live_playlist_name__ = Some(map.next_value()?); + } GeneratedField::Duration => { if duration__.is_some() { return Err(serde::de::Error::duplicate_field("duration")); @@ -12516,6 +13284,12 @@ impl<'de> serde::Deserialize<'de> for SegmentsInfo { } playlist_location__ = Some(map.next_value()?); } + GeneratedField::LivePlaylistLocation => { + if live_playlist_location__.is_some() { + return Err(serde::de::Error::duplicate_field("livePlaylistLocation")); + } + live_playlist_location__ = Some(map.next_value()?); + } GeneratedField::SegmentCount => { if segment_count__.is_some() { return Err(serde::de::Error::duplicate_field("segmentCount")); @@ -12544,9 +13318,11 @@ impl<'de> serde::Deserialize<'de> for SegmentsInfo { } Ok(SegmentsInfo { playlist_name: playlist_name__.unwrap_or_default(), + live_playlist_name: live_playlist_name__.unwrap_or_default(), duration: duration__.unwrap_or_default(), size: size__.unwrap_or_default(), playlist_location: playlist_location__.unwrap_or_default(), + live_playlist_location: live_playlist_location__.unwrap_or_default(), segment_count: segment_count__.unwrap_or_default(), started_at: started_at__.unwrap_or_default(), ended_at: ended_at__.unwrap_or_default(), @@ -12576,6 +13352,9 @@ impl serde::Serialize for SendDataRequest { if !self.destination_sids.is_empty() { len += 1; } + if !self.destination_identities.is_empty() { + len += 1; + } if self.topic.is_some() { len += 1; } @@ -12594,6 +13373,9 @@ impl serde::Serialize for SendDataRequest { if !self.destination_sids.is_empty() { struct_ser.serialize_field("destinationSids", &self.destination_sids)?; } + if !self.destination_identities.is_empty() { + struct_ser.serialize_field("destinationIdentities", &self.destination_identities)?; + } if let Some(v) = self.topic.as_ref() { struct_ser.serialize_field("topic", v)?; } @@ -12612,6 +13394,8 @@ impl<'de> serde::Deserialize<'de> for SendDataRequest { "kind", "destination_sids", "destinationSids", + "destination_identities", + "destinationIdentities", "topic", ]; @@ -12621,6 +13405,7 @@ impl<'de> serde::Deserialize<'de> for SendDataRequest { Data, Kind, DestinationSids, + DestinationIdentities, Topic, } impl<'de> serde::Deserialize<'de> for GeneratedField { @@ -12647,6 +13432,7 @@ impl<'de> serde::Deserialize<'de> for SendDataRequest { "data" => Ok(GeneratedField::Data), "kind" => Ok(GeneratedField::Kind), "destinationSids" | "destination_sids" => Ok(GeneratedField::DestinationSids), + "destinationIdentities" | "destination_identities" => Ok(GeneratedField::DestinationIdentities), "topic" => Ok(GeneratedField::Topic), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } @@ -12671,6 +13457,7 @@ impl<'de> serde::Deserialize<'de> for SendDataRequest { let mut data__ = None; let mut kind__ = None; let mut destination_sids__ = None; + let mut destination_identities__ = None; let mut topic__ = None; while let Some(k) = map.next_key()? { match k { @@ -12700,6 +13487,12 @@ impl<'de> serde::Deserialize<'de> for SendDataRequest { } destination_sids__ = Some(map.next_value()?); } + GeneratedField::DestinationIdentities => { + if destination_identities__.is_some() { + return Err(serde::de::Error::duplicate_field("destinationIdentities")); + } + destination_identities__ = Some(map.next_value()?); + } GeneratedField::Topic => { if topic__.is_some() { return Err(serde::de::Error::duplicate_field("topic")); @@ -12713,6 +13506,7 @@ impl<'de> serde::Deserialize<'de> for SendDataRequest { data: data__.unwrap_or_default(), kind: kind__.unwrap_or_default(), destination_sids: destination_sids__.unwrap_or_default(), + destination_identities: destination_identities__.unwrap_or_default(), topic: topic__, }) } @@ -14039,9 +14833,6 @@ impl serde::Serialize for SimulcastCodec { if !self.cid.is_empty() { len += 1; } - if self.enable_simulcast_layers { - len += 1; - } let mut struct_ser = serializer.serialize_struct("livekit.SimulcastCodec", len)?; if !self.codec.is_empty() { struct_ser.serialize_field("codec", &self.codec)?; @@ -14049,9 +14840,6 @@ impl serde::Serialize for SimulcastCodec { if !self.cid.is_empty() { struct_ser.serialize_field("cid", &self.cid)?; } - if self.enable_simulcast_layers { - struct_ser.serialize_field("enableSimulcastLayers", &self.enable_simulcast_layers)?; - } struct_ser.end() } } @@ -14064,15 +14852,12 @@ impl<'de> serde::Deserialize<'de> for SimulcastCodec { const FIELDS: &[&str] = &[ "codec", "cid", - "enable_simulcast_layers", - "enableSimulcastLayers", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { Codec, Cid, - EnableSimulcastLayers, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -14096,7 +14881,6 @@ impl<'de> serde::Deserialize<'de> for SimulcastCodec { match value { "codec" => Ok(GeneratedField::Codec), "cid" => Ok(GeneratedField::Cid), - "enableSimulcastLayers" | "enable_simulcast_layers" => Ok(GeneratedField::EnableSimulcastLayers), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -14118,7 +14902,6 @@ impl<'de> serde::Deserialize<'de> for SimulcastCodec { { let mut codec__ = None; let mut cid__ = None; - let mut enable_simulcast_layers__ = None; while let Some(k) = map.next_key()? { match k { GeneratedField::Codec => { @@ -14133,18 +14916,11 @@ impl<'de> serde::Deserialize<'de> for SimulcastCodec { } cid__ = Some(map.next_value()?); } - GeneratedField::EnableSimulcastLayers => { - if enable_simulcast_layers__.is_some() { - return Err(serde::de::Error::duplicate_field("enableSimulcastLayers")); - } - enable_simulcast_layers__ = Some(map.next_value()?); - } } } Ok(SimulcastCodec { codec: codec__.unwrap_or_default(), cid: cid__.unwrap_or_default(), - enable_simulcast_layers: enable_simulcast_layers__.unwrap_or_default(), }) } } @@ -19389,12 +20165,18 @@ impl serde::Serialize for UserPacket { if !self.participant_sid.is_empty() { len += 1; } + if !self.participant_identity.is_empty() { + len += 1; + } if !self.payload.is_empty() { len += 1; } if !self.destination_sids.is_empty() { len += 1; } + if !self.destination_identities.is_empty() { + len += 1; + } if self.topic.is_some() { len += 1; } @@ -19402,12 +20184,18 @@ impl serde::Serialize for UserPacket { if !self.participant_sid.is_empty() { struct_ser.serialize_field("participantSid", &self.participant_sid)?; } + if !self.participant_identity.is_empty() { + struct_ser.serialize_field("participantIdentity", &self.participant_identity)?; + } if !self.payload.is_empty() { struct_ser.serialize_field("payload", pbjson::private::base64::encode(&self.payload).as_str())?; } if !self.destination_sids.is_empty() { struct_ser.serialize_field("destinationSids", &self.destination_sids)?; } + if !self.destination_identities.is_empty() { + struct_ser.serialize_field("destinationIdentities", &self.destination_identities)?; + } if let Some(v) = self.topic.as_ref() { struct_ser.serialize_field("topic", v)?; } @@ -19423,17 +20211,23 @@ impl<'de> serde::Deserialize<'de> for UserPacket { const FIELDS: &[&str] = &[ "participant_sid", "participantSid", + "participant_identity", + "participantIdentity", "payload", "destination_sids", "destinationSids", + "destination_identities", + "destinationIdentities", "topic", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { ParticipantSid, + ParticipantIdentity, Payload, DestinationSids, + DestinationIdentities, Topic, } impl<'de> serde::Deserialize<'de> for GeneratedField { @@ -19457,8 +20251,10 @@ impl<'de> serde::Deserialize<'de> for UserPacket { { match value { "participantSid" | "participant_sid" => Ok(GeneratedField::ParticipantSid), + "participantIdentity" | "participant_identity" => Ok(GeneratedField::ParticipantIdentity), "payload" => Ok(GeneratedField::Payload), "destinationSids" | "destination_sids" => Ok(GeneratedField::DestinationSids), + "destinationIdentities" | "destination_identities" => Ok(GeneratedField::DestinationIdentities), "topic" => Ok(GeneratedField::Topic), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } @@ -19480,8 +20276,10 @@ impl<'de> serde::Deserialize<'de> for UserPacket { V: serde::de::MapAccess<'de>, { let mut participant_sid__ = None; + let mut participant_identity__ = None; let mut payload__ = None; let mut destination_sids__ = None; + let mut destination_identities__ = None; let mut topic__ = None; while let Some(k) = map.next_key()? { match k { @@ -19491,6 +20289,12 @@ impl<'de> serde::Deserialize<'de> for UserPacket { } participant_sid__ = Some(map.next_value()?); } + GeneratedField::ParticipantIdentity => { + if participant_identity__.is_some() { + return Err(serde::de::Error::duplicate_field("participantIdentity")); + } + participant_identity__ = Some(map.next_value()?); + } GeneratedField::Payload => { if payload__.is_some() { return Err(serde::de::Error::duplicate_field("payload")); @@ -19505,6 +20309,12 @@ impl<'de> serde::Deserialize<'de> for UserPacket { } destination_sids__ = Some(map.next_value()?); } + GeneratedField::DestinationIdentities => { + if destination_identities__.is_some() { + return Err(serde::de::Error::duplicate_field("destinationIdentities")); + } + destination_identities__ = Some(map.next_value()?); + } GeneratedField::Topic => { if topic__.is_some() { return Err(serde::de::Error::duplicate_field("topic")); @@ -19515,8 +20325,10 @@ impl<'de> serde::Deserialize<'de> for UserPacket { } Ok(UserPacket { participant_sid: participant_sid__.unwrap_or_default(), + participant_identity: participant_identity__.unwrap_or_default(), payload: payload__.unwrap_or_default(), destination_sids: destination_sids__.unwrap_or_default(), + destination_identities: destination_identities__.unwrap_or_default(), topic: topic__, }) } diff --git a/livekit/Cargo.toml b/livekit/Cargo.toml index f3f582b2..34016461 100644 --- a/livekit/Cargo.toml +++ b/livekit/Cargo.toml @@ -20,9 +20,9 @@ __rustls-tls = ["livekit-api/__rustls-tls"] [dependencies] livekit-api = { path = "../livekit-api", version = "0.2.0", default-features = false, features = ["signal-client"] } -livekit-webrtc = { path = "../livekit-webrtc", version = "0.2.0" } +libwebrtc = { path = "../libwebrtc", version = "0.2.0" } livekit-protocol = { path = "../livekit-protocol", version = "0.2.0" } -prost = "0.11" +prost = "0.12" serde = { version = "1", features = ["derive"] } serde_json = "1.0" tokio = { version = "1", features = ["full"] } diff --git a/livekit/src/lib.rs b/livekit/src/lib.rs index 5efdb227..41a76a1f 100644 --- a/livekit/src/lib.rs +++ b/livekit/src/lib.rs @@ -17,7 +17,7 @@ mod room; mod rtc_engine; pub mod webrtc { - pub use livekit_webrtc::*; + pub use libwebrtc::*; } pub use room::*; diff --git a/livekit/src/room/e2ee/key_provider.rs b/livekit/src/room/e2ee/key_provider.rs index d6cfe256..4d9fb0d0 100644 --- a/livekit/src/room/e2ee/key_provider.rs +++ b/livekit/src/room/e2ee/key_provider.rs @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -use livekit_webrtc::native::frame_cryptor as fc; +use libwebrtc::native::frame_cryptor as fc; use crate::id::ParticipantIdentity; diff --git a/livekit/src/room/e2ee/manager.rs b/livekit/src/room/e2ee/manager.rs index ee2ece37..ac2f8a30 100644 --- a/livekit/src/room/e2ee/manager.rs +++ b/livekit/src/room/e2ee/manager.rs @@ -19,8 +19,8 @@ use crate::id::{ParticipantIdentity, TrackSid}; use crate::participant::{LocalParticipant, RemoteParticipant}; use crate::prelude::{LocalTrack, LocalTrackPublication, RemoteTrack, RemoteTrackPublication}; use crate::rtc_engine::lk_runtime::LkRuntime; -use livekit_webrtc::native::frame_cryptor::{EncryptionAlgorithm, EncryptionState, FrameCryptor}; -use livekit_webrtc::{rtp_receiver::RtpReceiver, rtp_sender::RtpSender}; +use libwebrtc::native::frame_cryptor::{EncryptionAlgorithm, EncryptionState, FrameCryptor}; +use libwebrtc::{rtp_receiver::RtpReceiver, rtp_sender::RtpSender}; use parking_lot::Mutex; use std::collections::HashMap; use std::sync::Arc; diff --git a/livekit/src/room/mod.rs b/livekit/src/room/mod.rs index 57baf5bf..6c2f6fcd 100644 --- a/livekit/src/room/mod.rs +++ b/livekit/src/room/mod.rs @@ -18,10 +18,10 @@ use crate::participant::ConnectionQuality; use crate::prelude::*; use crate::rtc_engine::EngineError; use crate::rtc_engine::{EngineEvent, EngineEvents, EngineResult, RtcEngine}; +use libwebrtc::native::frame_cryptor::EncryptionState; use livekit_api::signal_client::SignalOptions; use livekit_protocol as proto; use livekit_protocol::observer::Dispatcher; -use livekit_webrtc::native::frame_cryptor::EncryptionState; use parking_lot::RwLock; use std::collections::HashMap; use std::fmt::Debug; diff --git a/livekit/src/room/options.rs b/livekit/src/room/options.rs index 45269206..01e03401 100644 --- a/livekit/src/room/options.rs +++ b/livekit/src/room/options.rs @@ -13,8 +13,8 @@ // limitations under the License. use crate::prelude::*; +use libwebrtc::prelude::*; use livekit_protocol as proto; -use livekit_webrtc::prelude::*; #[derive(Debug, Copy, Clone, PartialEq, Eq)] pub enum VideoCodec { diff --git a/livekit/src/room/participant/local_participant.rs b/livekit/src/room/participant/local_participant.rs index e3680e5d..2a8b3902 100644 --- a/livekit/src/room/participant/local_participant.rs +++ b/livekit/src/room/participant/local_participant.rs @@ -22,8 +22,8 @@ use crate::options::TrackPublishOptions; use crate::prelude::*; use crate::rtc_engine::RtcEngine; use crate::DataPacketKind; +use libwebrtc::rtp_parameters::RtpEncodingParameters; use livekit_protocol as proto; -use livekit_webrtc::rtp_parameters::RtpEncodingParameters; use parking_lot::Mutex; use std::collections::HashMap; use std::fmt::Debug; diff --git a/livekit/src/room/participant/remote_participant.rs b/livekit/src/room/participant/remote_participant.rs index 380e155f..a46e0c28 100644 --- a/livekit/src/room/participant/remote_participant.rs +++ b/livekit/src/room/participant/remote_participant.rs @@ -17,8 +17,8 @@ use super::{ConnectionQuality, ParticipantInner}; use crate::prelude::*; use crate::rtc_engine::RtcEngine; use crate::track::TrackError; +use libwebrtc::prelude::*; use livekit_protocol as proto; -use livekit_webrtc::prelude::*; use parking_lot::Mutex; use std::collections::{HashMap, HashSet}; use std::fmt::Debug; diff --git a/livekit/src/room/track/audio_track.rs b/livekit/src/room/track/audio_track.rs index 067853cf..add58a4a 100644 --- a/livekit/src/room/track/audio_track.rs +++ b/livekit/src/room/track/audio_track.rs @@ -14,9 +14,9 @@ use super::track_dispatch; use crate::prelude::*; +use libwebrtc::prelude::*; use livekit_protocol as proto; use livekit_protocol::enum_dispatch; -use livekit_webrtc::prelude::*; #[derive(Clone, Debug)] pub enum AudioTrack { diff --git a/livekit/src/room/track/local_audio_track.rs b/livekit/src/room/track/local_audio_track.rs index 7ab43dab..26cd9068 100644 --- a/livekit/src/room/track/local_audio_track.rs +++ b/livekit/src/room/track/local_audio_track.rs @@ -16,8 +16,8 @@ use super::TrackInner; use crate::prelude::*; use crate::rtc_engine::lk_runtime::LkRuntime; use core::panic; +use libwebrtc::prelude::*; use livekit_protocol as proto; -use livekit_webrtc::prelude::*; use std::fmt::Debug; use std::sync::Arc; @@ -54,11 +54,10 @@ impl LocalAudioTrack { let rtc_track = match source.clone() { #[cfg(not(target_arch = "wasm32"))] RtcAudioSource::Native(native_source) => { - use livekit_webrtc::peer_connection_factory::native::PeerConnectionFactoryExt; - LkRuntime::instance().pc_factory().create_audio_track( - &livekit_webrtc::native::create_random_uuid(), - native_source, - ) + use libwebrtc::peer_connection_factory::native::PeerConnectionFactoryExt; + LkRuntime::instance() + .pc_factory() + .create_audio_track(&libwebrtc::native::create_random_uuid(), native_source) } _ => panic!("unsupported audio source"), }; diff --git a/livekit/src/room/track/local_track.rs b/livekit/src/room/track/local_track.rs index 1d4b33f8..8ca4f1a8 100644 --- a/livekit/src/room/track/local_track.rs +++ b/livekit/src/room/track/local_track.rs @@ -14,9 +14,9 @@ use super::track_dispatch; use crate::prelude::*; +use libwebrtc::prelude::*; use livekit_protocol as proto; use livekit_protocol::enum_dispatch; -use livekit_webrtc::prelude::*; #[derive(Clone, Debug)] pub enum LocalTrack { diff --git a/livekit/src/room/track/local_video_track.rs b/livekit/src/room/track/local_video_track.rs index efdd78c3..5245c243 100644 --- a/livekit/src/room/track/local_video_track.rs +++ b/livekit/src/room/track/local_video_track.rs @@ -15,8 +15,8 @@ use super::TrackInner; use crate::prelude::*; use crate::rtc_engine::lk_runtime::LkRuntime; +use libwebrtc::prelude::*; use livekit_protocol as proto; -use livekit_webrtc::prelude::*; use std::fmt::Debug; use std::sync::Arc; @@ -53,11 +53,10 @@ impl LocalVideoTrack { let rtc_track = match source.clone() { #[cfg(not(target_arch = "wasm32"))] RtcVideoSource::Native(native_source) => { - use livekit_webrtc::peer_connection_factory::native::PeerConnectionFactoryExt; - LkRuntime::instance().pc_factory().create_video_track( - &livekit_webrtc::native::create_random_uuid(), - native_source, - ) + use libwebrtc::peer_connection_factory::native::PeerConnectionFactoryExt; + LkRuntime::instance() + .pc_factory() + .create_video_track(&libwebrtc::native::create_random_uuid(), native_source) } _ => panic!("unsupported video source"), }; diff --git a/livekit/src/room/track/mod.rs b/livekit/src/room/track/mod.rs index f4c86847..4c1b5b50 100644 --- a/livekit/src/room/track/mod.rs +++ b/livekit/src/room/track/mod.rs @@ -13,9 +13,9 @@ // limitations under the License. use crate::prelude::*; +use libwebrtc::prelude::*; use livekit_protocol as proto; use livekit_protocol::enum_dispatch; -use livekit_webrtc::prelude::*; use parking_lot::{Mutex, RwLock}; use std::fmt::Debug; use std::sync::Arc; diff --git a/livekit/src/room/track/remote_audio_track.rs b/livekit/src/room/track/remote_audio_track.rs index 91602605..2a1119ce 100644 --- a/livekit/src/room/track/remote_audio_track.rs +++ b/livekit/src/room/track/remote_audio_track.rs @@ -14,8 +14,8 @@ use super::{remote_track, TrackInner}; use crate::prelude::*; +use libwebrtc::prelude::*; use livekit_protocol as proto; -use livekit_webrtc::prelude::*; use std::fmt::Debug; use std::sync::Arc; diff --git a/livekit/src/room/track/remote_track.rs b/livekit/src/room/track/remote_track.rs index caf4843d..c0bde179 100644 --- a/livekit/src/room/track/remote_track.rs +++ b/livekit/src/room/track/remote_track.rs @@ -15,9 +15,9 @@ use super::track_dispatch; use super::TrackInner; use crate::prelude::*; +use libwebrtc::prelude::*; use livekit_protocol as proto; use livekit_protocol::enum_dispatch; -use livekit_webrtc::prelude::*; use std::sync::Arc; #[derive(Clone, Debug)] diff --git a/livekit/src/room/track/remote_video_track.rs b/livekit/src/room/track/remote_video_track.rs index e3f56a27..e95b00dc 100644 --- a/livekit/src/room/track/remote_video_track.rs +++ b/livekit/src/room/track/remote_video_track.rs @@ -15,8 +15,8 @@ use super::remote_track; use super::TrackInner; use crate::prelude::*; +use libwebrtc::prelude::*; use livekit_protocol as proto; -use livekit_webrtc::prelude::*; use std::fmt::Debug; use std::sync::Arc; diff --git a/livekit/src/room/track/video_track.rs b/livekit/src/room/track/video_track.rs index a33048a3..2b650a8b 100644 --- a/livekit/src/room/track/video_track.rs +++ b/livekit/src/room/track/video_track.rs @@ -14,9 +14,9 @@ use super::track_dispatch; use crate::prelude::*; +use libwebrtc::prelude::*; use livekit_protocol as proto; use livekit_protocol::enum_dispatch; -use livekit_webrtc::prelude::*; #[derive(Clone, Debug)] pub enum VideoTrack { diff --git a/livekit/src/rtc_engine/lk_runtime.rs b/livekit/src/rtc_engine/lk_runtime.rs index d25d31a6..4f7cbbb3 100644 --- a/livekit/src/rtc_engine/lk_runtime.rs +++ b/livekit/src/rtc_engine/lk_runtime.rs @@ -13,7 +13,7 @@ // limitations under the License. use lazy_static::lazy_static; -use livekit_webrtc::prelude::*; +use libwebrtc::prelude::*; use parking_lot::Mutex; use std::fmt::{Debug, Formatter}; use std::sync::{Arc, Weak}; diff --git a/livekit/src/rtc_engine/mod.rs b/livekit/src/rtc_engine/mod.rs index 4ca4216b..ea7f3934 100644 --- a/livekit/src/rtc_engine/mod.rs +++ b/livekit/src/rtc_engine/mod.rs @@ -19,10 +19,10 @@ use crate::room::DisconnectReason; use crate::rtc_engine::lk_runtime::LkRuntime; use crate::rtc_engine::rtc_session::{RtcSession, SessionEvent, SessionEvents}; use crate::DataPacketKind; +use libwebrtc::prelude::*; +use libwebrtc::session_description::SdpParseError; use livekit_api::signal_client::{SignalError, SignalOptions}; use livekit_protocol as proto; -use livekit_webrtc::prelude::*; -use livekit_webrtc::session_description::SdpParseError; use parking_lot::Mutex; use std::fmt::Debug; use std::sync::atomic::{AtomicBool, Ordering}; diff --git a/livekit/src/rtc_engine/peer_transport.rs b/livekit/src/rtc_engine/peer_transport.rs index 32dbb3a0..2ba64e77 100644 --- a/livekit/src/rtc_engine/peer_transport.rs +++ b/livekit/src/rtc_engine/peer_transport.rs @@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +use libwebrtc::prelude::*; use livekit_protocol as proto; -use livekit_webrtc::prelude::*; use parking_lot::Mutex; use std::fmt::{Debug, Formatter}; use std::sync::Arc; diff --git a/livekit/src/rtc_engine/rtc_events.rs b/livekit/src/rtc_engine/rtc_events.rs index 8b8eddc3..1df2f5eb 100644 --- a/livekit/src/rtc_engine/rtc_events.rs +++ b/livekit/src/rtc_engine/rtc_events.rs @@ -14,8 +14,8 @@ use super::peer_transport::PeerTransport; use crate::rtc_engine::peer_transport::OnOfferCreated; +use libwebrtc::{self as rtc, prelude::*}; use livekit_protocol as proto; -use livekit_webrtc::{self as rtc, prelude::*}; use log::error; use tokio::sync::mpsc; diff --git a/livekit/src/rtc_engine/rtc_session.rs b/livekit/src/rtc_engine/rtc_session.rs index 41df8d8a..02ef5631 100644 --- a/livekit/src/rtc_engine/rtc_session.rs +++ b/livekit/src/rtc_engine/rtc_session.rs @@ -22,9 +22,9 @@ use crate::rtc_engine::peer_transport::PeerTransport; use crate::rtc_engine::rtc_events::{RtcEvent, RtcEvents}; use crate::track::LocalTrack; use crate::DataPacketKind; +use libwebrtc::prelude::*; use livekit_api::signal_client::{SignalClient, SignalEvent, SignalEvents, SignalOptions}; use livekit_protocol as proto; -use livekit_webrtc::prelude::*; use parking_lot::Mutex; use prost::Message; use proto::debouncer::{self, Debouncer};