Commit Graph
100 Commits
Author SHA1 Message Date
Théo MonnomandGitHub 72bbc8cd90 Disable livekit-api on win-aarch64 & WebRTC Builds CI (#51)
* update CI

* fix path

* fix attempt

* fix attempt 2

* fix attempt 3

* fix attempt 3
2023-04-19 15:34:04 +02:00
Théo Monnom 9000d82757 update examples deps 2023-04-19 12:35:15 +02:00
Théo MonnomandGitHub 180864e953 feat: server sdk (#47)
* New webrtc build scripts (Still not integrated within the SDK)
* New livekit-api crate (Integrate the server sdk protocol of livekit)
* Moved livekit-utils to livekit-protocol
2023-04-19 12:33:39 +02:00
Théo MonnomandGitHub 8a5c16c6ef Update README.md 2023-03-19 21:59:58 +01:00
Théo MonnomandGitHub 64c0705916 feat: audio support (#45)
- Receive/Send audio frames
- LocalAudioTrack
2023-03-19 21:58:20 +01:00
Théo MonnomandGitHub cad6d36201 feat: video publishing (#42)
- Prepare webrtc abstraction ( for future wasm support )
- Added track publish support for videos
  - Added LogoTrack example to simple_room demo
- Lot of cleanup
- There are compiler warnings I'll solve on our v1 release
2023-03-18 03:25:16 +01:00
Théo MonnomandGitHub 4443eae434 Use reqwest instead of curl to download libwebrtc (#44)
* use reqwest instead of curl to download libwebrtc

curl crate fails 2/3 computers I use when not configured. Make everything simpler for users

* Update Cargo.lock
2023-03-16 02:30:12 +01:00
Théo MonnomandGitHub 609427159b license headers (#40) 2023-02-12 20:19:01 +01:00
Théo MonnomandGitHub 16ea02075f RtpTransceiver bindings & requirements for publishing tracks (#39)
- RtpSender
- RtpReceiver
- RtpTransceiver
- RtpParameters
- VideoFrameBuilder
- Interior mutability on c++ side
- Cleanup bindings ( Use #pragma once instead of include guards )
     - webrtc-sys/src/* headers are now used in only one place 
     - Avoid confusion between generated headers and our headers
- AdaptedVideoTrackSource
- Cleanup the workaround with unsupported Vec<Shared<T>>
    - Put everything inside one file
2023-02-12 19:44:04 +01:00
Théo MonnomandGitHub 4411f88b68 added useful note about webrtc-sys (#38)
* Create README.md

* Update README.md

* Update README.md

* Update README.md
2023-02-07 00:05:07 +01:00
Théo MonnomandGitHub e023b34fd1 finish proto of livekit-ffi (#36)
* ffi req

* handle req_id

* remaining room events

* fix

* Update ffi.proto

* use sid instead of info

* state -> stream_state

* "s"

* participant is optional on data received

* add ReleaseHandleRequest

* Update ffi.proto

* add DataPacketKind

* VideoSinkInfo

* append info

It looks nicer on the FFI languages

* wip

* keep it simple

* Update ffi.proto

* update server to latest proto

* to_i420

* i420_to_abgr

* to_argb

* add publications to ParticipantInfo

It'll be used when we join a Room

* cleanup + DisposeRequest

* fix compilation

* send the whole buffer info with to_i420
2023-02-06 00:57:43 +01:00
Théo MonnomandGitHub 1610f86316 feat: basic ffi server to support other languages (#34)
* wip

* wip

* wip

* wip

not a fan of the way I do handles ..

* errors and async semantic

* fix example
2023-01-25 00:09:19 +01:00
Théo MonnomandGitHub 84d2f234f5 Update README.md 2023-01-18 21:30:57 +01:00
Théo Monnom 88e6848456 Update tests.yml 2023-01-13 00:56:22 +01:00
Théo Monnom 08b0756fee add datachannels to readme 2023-01-13 00:39:04 +01:00
Théo Monnom 22c6f67226 ci: only run tests on supported platforms by gh 2023-01-13 00:37:30 +01:00
Théo Monnom c267c82a58 fix aarch64-pc-windows-msvc 2023-01-12 23:54:21 +01:00
Théo Monnom 71d29bd64e ci: add aarch64 targets 2023-01-12 23:44:48 +01:00
Théo MonnomandGitHub 986b97a413 Update build.rs (#31) 2023-01-12 22:38:46 +01:00
Théo MonnomandGitHub b96858bdba add gh repo to Cargo.toml (#33) 2023-01-12 15:16:04 +01:00
Théo Monnom 35454335ec --allow-dirty for README 2023-01-12 15:12:20 +01:00
Théo Monnom 452f74f7fb fix publish
wrong character..
2023-01-12 14:59:00 +01:00
Théo Monnom 0c90089b56 fix publish workflow 2023-01-12 14:52:26 +01:00
Théo MonnomandGitHub 8841af6ee6 v0.1.1 (#32) 2023-01-12 14:48:03 +01:00
Théo MonnomandGitHub 608681d0e2 use dispatcher for room events (#30) 2023-01-11 01:08:26 +01:00
Théo MonnomandGitHub 4c5828b9c0 added prelude & cleaned imports (#27)
* wip

* wip

* wip

* wip

* wip

* wip
2023-01-10 22:57:27 +01:00
Théo MonnomandGitHub 1168e5ae89 correctly cleanup RTCRuntime (#26) 2023-01-08 03:39:52 +01:00
Théo Monnom 35816180d9 Merge branch 'main' of https://github.com/livekit/client-sdk-native 2023-01-07 18:51:32 +01:00
Théo Monnom 8ae8110293 update readme for hw acceleration 2023-01-07 18:51:21 +01:00
Théo MonnomandGitHub d4233867eb VideoToolBox decoder/encoder for MacOS & iOS (#19)
* VideoDecoderFactory wrapper

* wip

* fix compilation

* add notes

* upgrade webrtc version
2023-01-07 18:30:11 +01:00
Théo MonnomandGitHub 579782a813 improve the demo (#24)
- Add participant names
- Listen to TrackUnsubscribed
- Show info about the room
- Disconnect btn
- Correctly close the task
2023-01-05 01:08:23 +01:00
Théo MonnomandGitHub 5309c622cb fix deadlock when closing (#25) 2023-01-05 01:05:29 +01:00
Théo Monnom 98273d1b0d add blue background when no frame has been received 2023-01-04 22:17:59 +01:00
Théo MonnomandGitHub 27475af410 fix participant updates (#23) 2023-01-04 20:14:09 +01:00
Théo MonnomandGitHub 9656c73027 allow custom webrtc builds (#21) 2023-01-03 22:26:00 +01:00
Théo MonnomandGitHub bcbce41c0f add macos sysroot (#20)
* macos sysroot

* resolve conflicts
2023-01-03 02:45:03 +01:00
Théo MonnomandGitHub dbc7932b97 windows: gdi32 dependency (#17)
* windows requires +crt-static

* add gdi32 to windows dependencies
2023-01-02 23:45:13 +01:00
Théo MonnomandGitHub 624ed37ff7 windows requires +crt-static (#16) 2023-01-02 23:27:24 +01:00
Théo MonnomandGitHub cdd3a560f8 correctly link the badge 2023-01-02 22:19:29 +01:00
Théo MonnomandGitHub e7d72165b4 Update README.md (#15)
* Update README.md

* videoframes example

* fix indents

* fix indents x2
2023-01-02 22:16:03 +01:00
Théo MonnomandGitHub 11d5359464 fi ci & windows compilation (#14)
* attempt to fix mac compilation on x86_64

* decompress zip insead of tarball on windows

* attempt to fix 1

* still cache on failure

* attempt 2
2023-01-02 21:47:50 +01:00
a07b3451a3 publish client-sdk-native (#12)
* Create README.md

* add example

* crates & examples

* fix syntax

* add LICENSE

* thirdparty LICENSE

* rearrange repo

* fix build

* egui versions

* prepare publish

* fix demo compilation

* add test ci

* Update rust.yml

* forgot runs-on

* install protoc before building

* avoid rate limit

* include submodules

* updates to readme

* cache rust builds

Co-authored-by: David Zhao <[email protected]>
Co-authored-by: David Zhao <[email protected]>
2023-01-02 20:13:48 +01:00
Théo MonnomandGitHub a927baac94 download prebuilt webrtc binaries before building libwebrtc-sys (#11) 2023-01-02 14:41:53 +01:00
Théo Monnom 6e1edcb63c remove test comments 2023-01-02 00:42:45 +01:00
Théo MonnomandGitHub 0fecba1655 fix: use the new event system on the demo (#10)
* compilable demo

* correctly close room_task

* wip

* fix demo
2023-01-02 00:40:56 +01:00
Théo MonnomandGitHub 36aa00343b Merge pull request #9 from livekit/theo/events
finish LiveKit implementation & added Rust demo
2023-01-01 22:38:54 +01:00
Théo Monnom 87dc42b09e events, observers & happy new year 🎆 2023-01-01 22:38:27 +01:00
Théo Monnom b36d721a5d format 2022-12-28 19:35:55 +01:00
Théo Monnom 8ac91cd506 connection_quality 2022-12-28 19:33:22 +01:00
Théo Monnom 7b82900080 audio_level & active_speakers 2022-12-28 17:13:50 +01:00
Théo Monnom 4135ef30cc DataReceived event 2022-12-28 02:19:40 +01:00
Théo Monnom ac725bb29a connection states and related events 2022-12-27 23:06:55 +01:00
Théo Monnom 9d05259c5a Internal SessionEvents to avoid confusion with the RoomEvents 2022-12-27 20:57:35 +01:00
Théo Monnom 5f290de593 Use channel instead of callbacks & removed participant events 2022-12-27 01:42:30 +01:00
Théo Monnom f7a746f0f6 finally using RoomSession & Merry Christmas 🎄 2022-12-26 00:15:29 +01:00
Théo Monnom ba770f7c87 wip 2022-12-24 14:27:59 +01:00
Théo Monnom d1e0f39d59 room_session wip 2022-12-24 00:23:05 +01:00
Théo Monnom 0c9c186b33 Fix wrong reconnect timing 2022-12-23 00:35:59 +01:00
Théo Monnom 921f314f00 todo comment 2022-12-23 00:04:57 +01:00
Théo Monnom b30737e251 demo: fix incorrect pixels per point on mac 2022-12-23 00:03:24 +01:00
Théo Monnom 167418ca24 finish reconnection logic + fix mac compilation 2022-12-23 00:00:50 +01:00
Théo Monnom 9c489d51f4 reconnection wip + simulate scenario + fixed cyclic types 2022-12-22 23:07:29 +01:00
Théo Monnom c1cba8dcbd wip
I still need to solve type checking cycle to be able to compile
2022-12-22 00:44:40 +01:00
Théo Monnom 2a83ec8376 remove unnecessary config 2022-12-20 23:45:40 +01:00
Théo Monnom a3408910d1 fix wrong link 2022-12-20 23:42:27 +01:00
Théo Monnom 59558739f0 remove unused imports 2022-12-20 23:25:35 +01:00
Théo Monnom e3905d56b5 deadlock comment 2022-12-20 23:16:49 +01:00
Théo Monnom 1ed925dd38 refactored RTCEngine 2022-12-20 23:05:31 +01:00
Théo Monnom 2e3c87f232 rtc_session WIP 2022-12-19 17:44:10 +01:00
Théo Monnom 7467364cd6 switch comp 2022-12-19 08:09:27 +01:00
Théo Monnom 8aa5e63624 reworked 2022-12-18 22:50:14 +01:00
Théo Monnom 86bec130bb wip x2 2022-12-16 00:04:53 +01:00
Théo Monnom 4606c0a9ec wip 2022-12-15 23:27:43 +01:00
Théo Monnom 4465afad0c reconnect WIP 2022-12-14 23:38:20 +01:00
Théo Monnom da91efd3a5 Rework the demo
Doing this quick commit to test that in my Mac
2022-12-07 01:52:36 +01:00
Théo MonnomandGitHub 57adc07363 Merge pull request #7 from livekit/theo/tracks
Initial downstream tracks + VideoRenderer example
2022-12-02 16:48:56 +01:00
Théo Monnom 686f5db969 livekit-utils crate + VideoRenderer proto 2022-12-02 16:39:42 +01:00
Théo Monnom 59e7ccbffe Successfully received video frames 2022-11-28 17:30:21 +01:00
Théo Monnom 39fa798c7f trying to receive VideoFrame, progress... 2022-11-28 15:52:37 +01:00
Théo Monnom a415748f06 Delete .media_stream.rs.rustfmt 2022-11-22 18:02:07 +01:00
Théo Monnom ae776f04d0 Initial downstream tracks 2022-11-22 17:59:55 +01:00
Théo Monnom 82ec808dee changing computer ( started tracks )
I used my Mac on the company trip
2022-11-08 10:31:09 +01:00
Théo Monnom 6497930912 implement Debug on WebRTC structs 2022-10-29 15:00:38 +02:00
Théo Monnom 3630e93054 Initial Room
Switching computer
2022-10-29 00:11:10 +02:00
Théo Monnom 2ecae706a9 refactored RTCEngine
Added comments & separated code into multiple parts.
Maybe the next step is to put PeerConnections into another file 🤔
2022-10-08 23:04:50 +02:00
Théo Monnom c1326dab93 independant SignalClient, SignalStream & events
SignalStream holds the connection to the websocket. It can be replaced at each connection
2022-10-08 23:00:56 +02:00
Théo Monnom 410bbbb5ed use FnOnce if possible on libwebrtc callbacks 2022-10-08 20:58:40 +02:00
Théo Monnom 754bc80f31 fix negotiation crash with CallFactoryInterface for media & moved RTCEngine code to EngineInternal 2022-10-03 21:59:25 +02:00
Théo Monnom d64c7e5e08 rustfmt & signal_client improvememts
- handle ping message
- recv now only returns on SignalResponse
2022-10-03 15:59:43 +02:00
Théo Monnom 2213a70142 cancellable SignalClient & tracing 2022-10-02 21:22:12 +02:00
Théo MonnomandGitHub 9361b7e256 Tiny Room prototype
Minimalist room poc
2022-09-29 21:37:21 +02:00
Théo Monnom 0d34e5a48e Started Room, publisher negotiation, add RTCRuntime dependencies across webrtc instances 2022-09-29 21:34:30 +02:00
Théo Monnom 32ac92b171 refactored rtc_engine 2022-09-27 15:21:38 +02:00
Théo MonnomandGitHub bafa65dc9b Merge pull request #3 from livekit/theo/prototype
Initial client-sdk-native
2022-09-26 20:06:13 +02:00
Théo MonnomandGitHub 2de92c0e23 Merge pull request #5 from livekit/theo/rtc_prototype
RTC Prototype
2022-09-26 12:35:21 +02:00
Théo Monnom 04273f24da Handle subscriber data channels 2022-09-25 23:57:24 +02:00
Théo Monnom 6ad2563348 subscriber prototype 2022-09-25 22:32:21 +02:00
Théo Monnom 4067a9add6 rtc_config 2022-09-25 13:54:56 +02:00
Théo Monnom e74aac70bb Added .clang-format + reformatted code 2022-09-20 22:47:47 +02:00
Théo Monnom baf1db9a04 Fix MacOS build 2022-09-20 22:19:47 +02:00