Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
c275024
Create minimal example
ladvoc Aug 7, 2025
244b355
Wip
ladvoc Aug 8, 2025
40eab0a
Connect signal
ladvoc Aug 8, 2025
e3e741a
Signal refactor
ladvoc Aug 8, 2025
16df9d3
Connect primary peer
ladvoc Aug 8, 2025
c7da5a4
Remove dead code
ladvoc Aug 12, 2025
2c7e496
Use event queue approach
ladvoc Aug 12, 2025
46b1403
Introduce timer
ladvoc Aug 12, 2025
7586145
Proper cleanup
ladvoc Aug 13, 2025
eafe3f1
Implement reconnecting state
ladvoc Aug 13, 2025
bc90f79
Remove disconnecting state
ladvoc Aug 13, 2025
cd12ec3
Reintroduce all features
ladvoc Aug 14, 2025
894b199
Add additional transitions
ladvoc Aug 14, 2025
3e90462
Docs and organization
ladvoc Aug 14, 2025
eef3f49
Remove any state handler
ladvoc Aug 14, 2025
85d8e94
Change event memory model
ladvoc Aug 14, 2025
043efde
Store local participant ID
ladvoc Aug 14, 2025
5f88fb6
Consolidate event detail cases
ladvoc Aug 14, 2025
7a1a309
Cleanup session state
ladvoc Aug 14, 2025
1832a9c
Engine refactor
ladvoc Aug 20, 2025
a2eae8f
Simplify state machine memory model
ladvoc Aug 20, 2025
0f71911
Helper methods for data packets
ladvoc Aug 20, 2025
2a7a1eb
Allow engine to take ownership of data packet
ladvoc Aug 20, 2025
fcca62b
Process data packets via state machine
ladvoc Aug 20, 2025
8b2b1db
Notify of engine state change
ladvoc Aug 20, 2025
d47510a
Add documentation
ladvoc Aug 20, 2025
8569b41
Allow handlers to take ownership of events
ladvoc Aug 20, 2025
5d64e93
Exponential backoff
ladvoc Aug 20, 2025
da8e6af
Create helper to enqueue events
ladvoc Aug 20, 2025
eb9a979
Zero initialize protobuf structs
ladvoc Aug 20, 2025
22f5722
Ignore non-binary messages silently
ladvoc Aug 20, 2025
4f13b19
Make engine state internal
ladvoc Aug 20, 2025
df1ff7f
Document
ladvoc Aug 20, 2025
0bd3c70
Handle and expose failure reason
ladvoc Aug 21, 2025
517b3e5
Extract into helpers
ladvoc Aug 21, 2025
b2c9d2f
Unify peer state change handling
ladvoc Aug 21, 2025
197d7ad
Free event if cannot enqueue
ladvoc Aug 21, 2025
985b89c
URL build options struct
ladvoc Aug 22, 2025
6a9cbee
Map disconnect reason to failure reason
ladvoc Aug 22, 2025
3292e8b
Send leave on user-initiated close
ladvoc Aug 22, 2025
f100bf6
Separate session state
ladvoc Aug 22, 2025
be76862
Reenable track subscription
ladvoc Aug 22, 2025
67bb2e9
Decode tag on fail
ladvoc Aug 22, 2025
9e1c539
Ignore proto messages
ladvoc Aug 22, 2025
da04294
Add markers
ladvoc Aug 22, 2025
fc14eb0
Fix state reporting bug
ladvoc Aug 22, 2025
e5322d3
Improve signal state handling
ladvoc Aug 22, 2025
37385e2
Remove unneeded includes
ladvoc Aug 22, 2025
488bb0f
Retry on peer disconnect in addition to fail
ladvoc Aug 22, 2025
72f459e
Remove unneeded config
ladvoc Aug 22, 2025
5ea28d5
Refactor signal client
ladvoc Aug 23, 2025
aefc951
Cleanup signal client init
ladvoc Aug 23, 2025
c49b364
Cleanup engine init
ladvoc Aug 23, 2025
f585816
Use protocol helper for encoding requests
ladvoc Aug 25, 2025
a595f09
Use protocol helpers for encoding data packets
ladvoc Aug 25, 2025
c996bad
Inline remaining protocol helpers
ladvoc Aug 25, 2025
b062bdd
Use consistent naming convention
ladvoc Aug 25, 2025
7137330
Make nanopb encode/decode includes private
ladvoc Aug 25, 2025
7865715
Simplify internal API
ladvoc Aug 25, 2025
b34f9aa
Send data packets
ladvoc Aug 25, 2025
efd71e9
Zero only
ladvoc Aug 26, 2025
c63c7c5
Remove state guards for sub audio
ladvoc Aug 26, 2025
2153875
Handle room and participant update in connecting state
ladvoc Aug 26, 2025
0f774a1
Cleanup previous connection in backoff
ladvoc Aug 26, 2025
5d2dac5
Handle ICE servers
ladvoc Aug 26, 2025
04f5919
Use SAFE_FREE macro
ladvoc Aug 26, 2025
5927628
Remove dead code
ladvoc Aug 27, 2025
891f727
Do not handle data packets in FSM
ladvoc Aug 27, 2025
af98bb4
Add basic connection time benchmarking
ladvoc Aug 27, 2025
bf5a343
Queue peer SDP messages
ladvoc Aug 27, 2025
7457ae2
Clean up
ladvoc Aug 27, 2025
bc81a93
Increase timer stack depth
ladvoc Aug 27, 2025
7ee5894
Fix typo
ladvoc Aug 27, 2025
35de2ca
Document how to get failure reason
ladvoc Aug 27, 2025
9cf876d
Data packet optimization
ladvoc Aug 27, 2025
a5332fa
Signal response optimization
ladvoc Aug 27, 2025
5d23758
Fix incorrect field type
ladvoc Aug 27, 2025
69e63af
Fix voice agent example agent join
ladvoc Aug 27, 2025
62d7a2c
Demonstrate getting failure reason in all examples
ladvoc Aug 27, 2025
aa8abd6
Consistent sdkconfig defaults between examples
ladvoc Aug 27, 2025
e060f64
Bump version
ladvoc Aug 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion components/livekit/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ idf_component_register(
PRIV_REQUIRES
esp_codec_dev
esp_netif
esp_timer
esp_websocket_client
esp_webrtc
json
Expand Down
24 changes: 24 additions & 0 deletions components/livekit/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
menu "LiveKit"
config LK_MAX_RETRIES
int "Maximum connection retries"
range 0 100
default 7
config LK_MAX_ICE_SERVERS
int "Maximum number of ICE servers"
default 3
config LK_BENCHMARK
bool "Benchmark connection time"
default n
config LK_ENGINE_QUEUE_SIZE
int "Number of engine events to queue"
default 32
config LK_PUB_INTERVAL_MS
int "How often to capture and send AV frames"
default 20
config LK_PUB_AUDIO_TRACK_NAME
string "Name of the published audio track"
default "Audio"
config LK_PUB_VIDEO_TRACK_NAME
string "Name of the published video track"
default "Video"
endmenu
12 changes: 6 additions & 6 deletions components/livekit/core/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
extern "C" {
#endif

/// State of an engine component or the engine itself.
/// State of a connection.
typedef enum {
CONNECTION_STATE_DISCONNECTED = 0, /*!< Disconnected */
CONNECTION_STATE_CONNECTING = 1, /*!< Establishing connection */
CONNECTION_STATE_CONNECTED = 2, /*!< Connected */
CONNECTION_STATE_RECONNECTING = 3, /*!< Connection was previously established, but was lost */
CONNECTION_STATE_FAILED = 4 /*!< Connection failed */
CONNECTION_STATE_DISCONNECTED = 0, /// Disconnected
CONNECTION_STATE_CONNECTING = 1, /// Establishing connection
CONNECTION_STATE_CONNECTED = 2, /// Connected
CONNECTION_STATE_RECONNECTING = 3, /// Connection was previously established, but was lost
CONNECTION_STATE_FAILED = 4 /// Connection failed
} connection_state_t;

typedef struct {
Expand Down
Loading
Loading