diff --git a/components/livekit/protocol/livekit_metrics.pb.c b/components/livekit/protocol/livekit_metrics.pb.c index ccd06f7..b731135 100644 --- a/components/livekit/protocol/livekit_metrics.pb.c +++ b/components/livekit/protocol/livekit_metrics.pb.c @@ -18,6 +18,9 @@ PB_BIND(LIVEKIT_PB_METRIC_SAMPLE, livekit_pb_metric_sample_t, AUTO) PB_BIND(LIVEKIT_PB_EVENT_METRIC, livekit_pb_event_metric_t, AUTO) +PB_BIND(LIVEKIT_PB_METRICS_RECORDING_HEADER, livekit_pb_metrics_recording_header_t, AUTO) + + diff --git a/components/livekit/protocol/livekit_metrics.pb.h b/components/livekit/protocol/livekit_metrics.pb.h index 589bd93..f5e9585 100644 --- a/components/livekit/protocol/livekit_metrics.pb.h +++ b/components/livekit/protocol/livekit_metrics.pb.h @@ -45,7 +45,7 @@ typedef struct livekit_pb_metrics_batch { This is useful for storing participant identities, track names, etc. There is also a predefined list of labels that can be used to reference common metrics. They have reserved indices from 0 to (METRIC_LABEL_PREDEFINED_MAX_VALUE - 1). - Indexes pointing at str_data should start from METRIC_LABEL_PREDEFINED_MAX_VALUE, + Indexes pointing at str_data should start from METRIC_LABEL_PREDEFINED_MAX_VALUE, such that str_data[0] == index of METRIC_LABEL_PREDEFINED_MAX_VALUE. */ pb_callback_t str_data; pb_callback_t time_series; @@ -84,6 +84,12 @@ typedef struct livekit_pb_event_metric { uint32_t rid; /* index into 'str_data' */ } livekit_pb_event_metric_t; +typedef struct livekit_pb_metrics_recording_header { + pb_callback_t room_id; + bool has_enable_user_data_training; + bool enable_user_data_training; +} livekit_pb_metrics_recording_header_t; + #ifdef __cplusplus extern "C" { @@ -99,15 +105,18 @@ extern "C" { + /* Initializer values for message structs */ #define LIVEKIT_PB_METRICS_BATCH_INIT_DEFAULT {0, false, GOOGLE_PROTOBUF_TIMESTAMP_INIT_DEFAULT, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}} #define LIVEKIT_PB_TIME_SERIES_METRIC_INIT_DEFAULT {0, 0, 0, {{NULL}, NULL}, 0} #define LIVEKIT_PB_METRIC_SAMPLE_INIT_DEFAULT {0, false, GOOGLE_PROTOBUF_TIMESTAMP_INIT_DEFAULT, 0} #define LIVEKIT_PB_EVENT_METRIC_INIT_DEFAULT {0, 0, 0, 0, false, 0, false, GOOGLE_PROTOBUF_TIMESTAMP_INIT_DEFAULT, false, GOOGLE_PROTOBUF_TIMESTAMP_INIT_DEFAULT, {{NULL}, NULL}, 0} +#define LIVEKIT_PB_METRICS_RECORDING_HEADER_INIT_DEFAULT {{{NULL}, NULL}, false, 0} #define LIVEKIT_PB_METRICS_BATCH_INIT_ZERO {0, false, GOOGLE_PROTOBUF_TIMESTAMP_INIT_ZERO, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}} #define LIVEKIT_PB_TIME_SERIES_METRIC_INIT_ZERO {0, 0, 0, {{NULL}, NULL}, 0} #define LIVEKIT_PB_METRIC_SAMPLE_INIT_ZERO {0, false, GOOGLE_PROTOBUF_TIMESTAMP_INIT_ZERO, 0} #define LIVEKIT_PB_EVENT_METRIC_INIT_ZERO {0, 0, 0, 0, false, 0, false, GOOGLE_PROTOBUF_TIMESTAMP_INIT_ZERO, false, GOOGLE_PROTOBUF_TIMESTAMP_INIT_ZERO, {{NULL}, NULL}, 0} +#define LIVEKIT_PB_METRICS_RECORDING_HEADER_INIT_ZERO {{{NULL}, NULL}, false, 0} /* Field tags (for use in manual encoding/decoding) */ #define LIVEKIT_PB_METRICS_BATCH_TIMESTAMP_MS_TAG 1 @@ -132,6 +141,8 @@ extern "C" { #define LIVEKIT_PB_EVENT_METRIC_NORMALIZED_END_TIMESTAMP_TAG 7 #define LIVEKIT_PB_EVENT_METRIC_METADATA_TAG 8 #define LIVEKIT_PB_EVENT_METRIC_RID_TAG 9 +#define LIVEKIT_PB_METRICS_RECORDING_HEADER_ROOM_ID_TAG 1 +#define LIVEKIT_PB_METRICS_RECORDING_HEADER_ENABLE_USER_DATA_TRAINING_TAG 2 /* Struct field encoding specification for nanopb */ #define LIVEKIT_PB_METRICS_BATCH_FIELDLIST(X, a) \ @@ -179,21 +190,30 @@ X(a, STATIC, SINGULAR, UINT32, rid, 9) #define livekit_pb_event_metric_t_normalized_start_timestamp_MSGTYPE google_protobuf_timestamp_t #define livekit_pb_event_metric_t_normalized_end_timestamp_MSGTYPE google_protobuf_timestamp_t +#define LIVEKIT_PB_METRICS_RECORDING_HEADER_FIELDLIST(X, a) \ +X(a, CALLBACK, SINGULAR, STRING, room_id, 1) \ +X(a, STATIC, OPTIONAL, BOOL, enable_user_data_training, 2) +#define LIVEKIT_PB_METRICS_RECORDING_HEADER_CALLBACK pb_default_field_callback +#define LIVEKIT_PB_METRICS_RECORDING_HEADER_DEFAULT NULL + extern const pb_msgdesc_t livekit_pb_metrics_batch_t_msg; extern const pb_msgdesc_t livekit_pb_time_series_metric_t_msg; extern const pb_msgdesc_t livekit_pb_metric_sample_t_msg; extern const pb_msgdesc_t livekit_pb_event_metric_t_msg; +extern const pb_msgdesc_t livekit_pb_metrics_recording_header_t_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ #define LIVEKIT_PB_METRICS_BATCH_FIELDS &livekit_pb_metrics_batch_t_msg #define LIVEKIT_PB_TIME_SERIES_METRIC_FIELDS &livekit_pb_time_series_metric_t_msg #define LIVEKIT_PB_METRIC_SAMPLE_FIELDS &livekit_pb_metric_sample_t_msg #define LIVEKIT_PB_EVENT_METRIC_FIELDS &livekit_pb_event_metric_t_msg +#define LIVEKIT_PB_METRICS_RECORDING_HEADER_FIELDS &livekit_pb_metrics_recording_header_t_msg /* Maximum encoded size of messages (where known) */ /* livekit_pb_MetricsBatch_size depends on runtime parameters */ /* livekit_pb_TimeSeriesMetric_size depends on runtime parameters */ /* livekit_pb_EventMetric_size depends on runtime parameters */ +/* livekit_pb_MetricsRecordingHeader_size depends on runtime parameters */ #define LIVEKIT_LIVEKIT_METRICS_PB_H_MAX_SIZE LIVEKIT_PB_METRIC_SAMPLE_SIZE #define LIVEKIT_PB_METRIC_SAMPLE_SIZE 40 @@ -203,6 +223,7 @@ extern const pb_msgdesc_t livekit_pb_event_metric_t_msg; #define livekit_TimeSeriesMetric livekit_pb_TimeSeriesMetric #define livekit_MetricSample livekit_pb_MetricSample #define livekit_EventMetric livekit_pb_EventMetric +#define livekit_MetricsRecordingHeader livekit_pb_MetricsRecordingHeader #define _LIVEKIT_METRIC_LABEL_MIN _LIVEKIT_PB_METRIC_LABEL_MIN #define _LIVEKIT_METRIC_LABEL_MAX _LIVEKIT_PB_METRIC_LABEL_MAX #define _LIVEKIT_METRIC_LABEL_ARRAYSIZE _LIVEKIT_PB_METRIC_LABEL_ARRAYSIZE @@ -210,10 +231,12 @@ extern const pb_msgdesc_t livekit_pb_event_metric_t_msg; #define LIVEKIT_TIME_SERIES_METRIC_INIT_DEFAULT LIVEKIT_PB_TIME_SERIES_METRIC_INIT_DEFAULT #define LIVEKIT_METRIC_SAMPLE_INIT_DEFAULT LIVEKIT_PB_METRIC_SAMPLE_INIT_DEFAULT #define LIVEKIT_EVENT_METRIC_INIT_DEFAULT LIVEKIT_PB_EVENT_METRIC_INIT_DEFAULT +#define LIVEKIT_METRICS_RECORDING_HEADER_INIT_DEFAULT LIVEKIT_PB_METRICS_RECORDING_HEADER_INIT_DEFAULT #define LIVEKIT_METRICS_BATCH_INIT_ZERO LIVEKIT_PB_METRICS_BATCH_INIT_ZERO #define LIVEKIT_TIME_SERIES_METRIC_INIT_ZERO LIVEKIT_PB_TIME_SERIES_METRIC_INIT_ZERO #define LIVEKIT_METRIC_SAMPLE_INIT_ZERO LIVEKIT_PB_METRIC_SAMPLE_INIT_ZERO #define LIVEKIT_EVENT_METRIC_INIT_ZERO LIVEKIT_PB_EVENT_METRIC_INIT_ZERO +#define LIVEKIT_METRICS_RECORDING_HEADER_INIT_ZERO LIVEKIT_PB_METRICS_RECORDING_HEADER_INIT_ZERO #ifdef __cplusplus } /* extern "C" */ diff --git a/components/livekit/protocol/livekit_models.pb.c b/components/livekit/protocol/livekit_models.pb.c index b5082b2..d6fed28 100644 --- a/components/livekit/protocol/livekit_models.pb.c +++ b/components/livekit/protocol/livekit_models.pb.c @@ -9,6 +9,9 @@ PB_BIND(LIVEKIT_PB_PAGINATION, livekit_pb_pagination_t, AUTO) +PB_BIND(LIVEKIT_PB_TOKEN_PAGINATION, livekit_pb_token_pagination_t, AUTO) + + PB_BIND(LIVEKIT_PB_LIST_UPDATE, livekit_pb_list_update_t, AUTO) @@ -42,7 +45,10 @@ PB_BIND(LIVEKIT_PB_VIDEO_LAYER, livekit_pb_video_layer_t, AUTO) PB_BIND(LIVEKIT_PB_DATA_PACKET, livekit_pb_data_packet_t, AUTO) -PB_BIND(LIVEKIT_PB_ACTIVE_SPEAKER_UPDATE, livekit_pb_active_speaker_update_t, AUTO) +PB_BIND(LIVEKIT_PB_ENCRYPTED_PACKET, livekit_pb_encrypted_packet_t, AUTO) + + +PB_BIND(LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD, livekit_pb_encrypted_packet_payload_t, AUTO) PB_BIND(LIVEKIT_PB_SPEAKER_INFO, livekit_pb_speaker_info_t, AUTO) @@ -135,9 +141,17 @@ PB_BIND(LIVEKIT_PB_DATA_STREAM_CHUNK, livekit_pb_data_stream_chunk_t, AUTO) PB_BIND(LIVEKIT_PB_DATA_STREAM_TRAILER, livekit_pb_data_stream_trailer_t, AUTO) +PB_BIND(LIVEKIT_PB_FILTER_PARAMS, livekit_pb_filter_params_t, AUTO) + + PB_BIND(LIVEKIT_PB_WEBHOOK_CONFIG, livekit_pb_webhook_config_t, AUTO) +PB_BIND(LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC, livekit_pb_subscribed_audio_codec_t, AUTO) + + + + diff --git a/components/livekit/protocol/livekit_models.pb.h b/components/livekit/protocol/livekit_models.pb.h index 271fb82..d3556bc 100644 --- a/components/livekit/protocol/livekit_models.pb.h +++ b/components/livekit/protocol/livekit_models.pb.h @@ -15,7 +15,8 @@ typedef enum livekit_pb_audio_codec { LIVEKIT_PB_AUDIO_CODEC_DEFAULT_AC = 0, LIVEKIT_PB_AUDIO_CODEC_OPUS = 1, - LIVEKIT_PB_AUDIO_CODEC_AAC = 2 + LIVEKIT_PB_AUDIO_CODEC_AAC = 2, + LIVEKIT_PB_AUDIO_CODEC_AC_MP3 = 3 } livekit_pb_audio_codec_t; typedef enum livekit_pb_video_codec { @@ -155,7 +156,9 @@ typedef enum livekit_pb_participant_info_kind { /* SIP participants */ LIVEKIT_PB_PARTICIPANT_INFO_KIND_SIP = 3, /* LiveKit agents */ - LIVEKIT_PB_PARTICIPANT_INFO_KIND_AGENT = 4 + LIVEKIT_PB_PARTICIPANT_INFO_KIND_AGENT = 4, + /* Connectors participants */ + LIVEKIT_PB_PARTICIPANT_INFO_KIND_CONNECTOR = 7 /* NEXT_ID: 8 */ } livekit_pb_participant_info_kind_t; typedef enum livekit_pb_participant_info_kind_detail { @@ -169,6 +172,13 @@ typedef enum livekit_pb_encryption_type { LIVEKIT_PB_ENCRYPTION_TYPE_CUSTOM = 2 } livekit_pb_encryption_type_t; +typedef enum livekit_pb_video_layer_mode { + LIVEKIT_PB_VIDEO_LAYER_MODE_MODE_UNUSED = 0, + LIVEKIT_PB_VIDEO_LAYER_MODE_ONE_SPATIAL_LAYER_PER_STREAM = 1, + LIVEKIT_PB_VIDEO_LAYER_MODE_MULTIPLE_SPATIAL_LAYERS_PER_STREAM = 2, + LIVEKIT_PB_VIDEO_LAYER_MODE_ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR = 3 +} livekit_pb_video_layer_mode_t; + typedef enum livekit_pb_data_packet_kind { LIVEKIT_PB_DATA_PACKET_KIND_RELIABLE = 0, LIVEKIT_PB_DATA_PACKET_KIND_LOSSY = 1 @@ -193,7 +203,8 @@ typedef enum livekit_pb_client_info_sdk { LIVEKIT_PB_CLIENT_INFO_SDK_CPP = 10, LIVEKIT_PB_CLIENT_INFO_SDK_UNITY_WEB = 11, LIVEKIT_PB_CLIENT_INFO_SDK_NODE = 12, - LIVEKIT_PB_CLIENT_INFO_SDK_UNREAL = 13 + LIVEKIT_PB_CLIENT_INFO_SDK_UNREAL = 13, + LIVEKIT_PB_CLIENT_INFO_SDK_ESP32 = 14 } livekit_pb_client_info_sdk_t; /* enum for operation types (specific to TextHeader) */ @@ -210,9 +221,16 @@ typedef struct livekit_pb_pagination { int32_t limit; } livekit_pb_pagination_t; +typedef struct livekit_pb_token_pagination { + pb_callback_t token; +} livekit_pb_token_pagination_t; + /* ListUpdate is used for updated APIs where 'repeated string' field is modified. */ typedef struct livekit_pb_list_update { pb_callback_t set; /* set the field to a new list */ + pb_callback_t add; /* append items to a list, avoiding duplicates */ + pb_callback_t remove; /* delete items from a list */ + bool clear; /* sets the list to an empty list */ } livekit_pb_list_update_t; typedef struct livekit_pb_room { @@ -264,6 +282,12 @@ typedef struct livekit_pb_simulcast_codec_info { pb_callback_t mid; pb_callback_t cid; pb_callback_t layers; + livekit_pb_video_layer_mode_t video_layer_mode; + /* cid (client side id for track) could be different between + signalling (AddTrackRequest) and SDP offer. This field + will be populated only if it is different to avoid + duplication and keep the representation concise. */ + pb_callback_t sdp_cid; } livekit_pb_simulcast_codec_info_t; typedef struct livekit_pb_track_info { @@ -272,7 +296,6 @@ typedef struct livekit_pb_track_info { bool muted; /* mime type of codec */ char *mime_type; - bool stereo; pb_size_t audio_features_count; livekit_pb_audio_track_feature_t audio_features[8]; } livekit_pb_track_info_t; @@ -286,9 +309,12 @@ typedef struct livekit_pb_video_layer { uint32_t ssrc; } livekit_pb_video_layer_t; -typedef struct livekit_pb_active_speaker_update { - pb_callback_t speakers; -} livekit_pb_active_speaker_update_t; +typedef struct livekit_pb_encrypted_packet { + livekit_pb_encryption_type_t encryption_type; + pb_callback_t iv; + uint32_t key_index; + pb_callback_t encrypted_value; /* This is an encrypted EncryptedPacketPayload message representation */ +} livekit_pb_encrypted_packet_t; typedef struct livekit_pb_speaker_info { pb_callback_t sid; @@ -403,19 +429,11 @@ typedef struct livekit_pb_server_info { /* details about the client */ typedef struct livekit_pb_client_info { livekit_pb_client_info_sdk_t sdk; - pb_callback_t version; + char version[16]; int32_t protocol; - pb_callback_t os; - pb_callback_t os_version; - pb_callback_t device_model; - pb_callback_t browser; - pb_callback_t browser_version; - pb_callback_t address; - /* wifi, wired, cellular, vpn, empty if not known */ - pb_callback_t network; - /* comma separated list of additional LiveKit SDKs in use of this client, with versions - e.g. "components-js:1.2.3,track-processors-js:1.2.3" */ - pb_callback_t other_sdks; + char os[4]; + char os_version[16]; + char device_model[4]; } livekit_pb_client_info_t; /* server provided client configuration */ @@ -606,11 +624,37 @@ typedef struct livekit_pb_data_stream_trailer { char reason[16]; /* reason why the stream was closed (could contain "error" / "interrupted" / empty for expected end) */ } livekit_pb_data_stream_trailer_t; +typedef struct livekit_pb_encrypted_packet_payload { + pb_size_t which_value; + union { + livekit_pb_user_packet_t user; + livekit_pb_chat_message_t chat_message; + livekit_pb_rpc_request_t rpc_request; + livekit_pb_rpc_ack_t rpc_ack; + livekit_pb_rpc_response_t rpc_response; + livekit_pb_data_stream_header_t stream_header; + livekit_pb_data_stream_chunk_t stream_chunk; + livekit_pb_data_stream_trailer_t stream_trailer; + } value; +} livekit_pb_encrypted_packet_payload_t; + +typedef struct livekit_pb_filter_params { + pb_callback_t include_events; + pb_callback_t exclude_events; +} livekit_pb_filter_params_t; + typedef struct livekit_pb_webhook_config { pb_callback_t url; pb_callback_t signing_key; + bool has_filter_params; + livekit_pb_filter_params_t filter_params; } livekit_pb_webhook_config_t; +typedef struct livekit_pb_subscribed_audio_codec { + pb_callback_t codec; + bool enabled; +} livekit_pb_subscribed_audio_codec_t; + #ifdef __cplusplus extern "C" { @@ -618,8 +662,8 @@ extern "C" { /* Helper constants for enums */ #define _LIVEKIT_PB_AUDIO_CODEC_MIN LIVEKIT_PB_AUDIO_CODEC_DEFAULT_AC -#define _LIVEKIT_PB_AUDIO_CODEC_MAX LIVEKIT_PB_AUDIO_CODEC_AAC -#define _LIVEKIT_PB_AUDIO_CODEC_ARRAYSIZE ((livekit_pb_audio_codec_t)(LIVEKIT_PB_AUDIO_CODEC_AAC+1)) +#define _LIVEKIT_PB_AUDIO_CODEC_MAX LIVEKIT_PB_AUDIO_CODEC_AC_MP3 +#define _LIVEKIT_PB_AUDIO_CODEC_ARRAYSIZE ((livekit_pb_audio_codec_t)(LIVEKIT_PB_AUDIO_CODEC_AC_MP3+1)) #define _LIVEKIT_PB_VIDEO_CODEC_MIN LIVEKIT_PB_VIDEO_CODEC_DEFAULT_VC #define _LIVEKIT_PB_VIDEO_CODEC_MAX LIVEKIT_PB_VIDEO_CODEC_VP8 @@ -674,8 +718,8 @@ extern "C" { #define _LIVEKIT_PB_PARTICIPANT_INFO_STATE_ARRAYSIZE ((livekit_pb_participant_info_state_t)(LIVEKIT_PB_PARTICIPANT_INFO_STATE_DISCONNECTED+1)) #define _LIVEKIT_PB_PARTICIPANT_INFO_KIND_MIN LIVEKIT_PB_PARTICIPANT_INFO_KIND_STANDARD -#define _LIVEKIT_PB_PARTICIPANT_INFO_KIND_MAX LIVEKIT_PB_PARTICIPANT_INFO_KIND_AGENT -#define _LIVEKIT_PB_PARTICIPANT_INFO_KIND_ARRAYSIZE ((livekit_pb_participant_info_kind_t)(LIVEKIT_PB_PARTICIPANT_INFO_KIND_AGENT+1)) +#define _LIVEKIT_PB_PARTICIPANT_INFO_KIND_MAX LIVEKIT_PB_PARTICIPANT_INFO_KIND_CONNECTOR +#define _LIVEKIT_PB_PARTICIPANT_INFO_KIND_ARRAYSIZE ((livekit_pb_participant_info_kind_t)(LIVEKIT_PB_PARTICIPANT_INFO_KIND_CONNECTOR+1)) #define _LIVEKIT_PB_PARTICIPANT_INFO_KIND_DETAIL_MIN LIVEKIT_PB_PARTICIPANT_INFO_KIND_DETAIL_CLOUD_AGENT #define _LIVEKIT_PB_PARTICIPANT_INFO_KIND_DETAIL_MAX LIVEKIT_PB_PARTICIPANT_INFO_KIND_DETAIL_FORWARDED @@ -685,6 +729,10 @@ extern "C" { #define _LIVEKIT_PB_ENCRYPTION_TYPE_MAX LIVEKIT_PB_ENCRYPTION_TYPE_CUSTOM #define _LIVEKIT_PB_ENCRYPTION_TYPE_ARRAYSIZE ((livekit_pb_encryption_type_t)(LIVEKIT_PB_ENCRYPTION_TYPE_CUSTOM+1)) +#define _LIVEKIT_PB_VIDEO_LAYER_MODE_MIN LIVEKIT_PB_VIDEO_LAYER_MODE_MODE_UNUSED +#define _LIVEKIT_PB_VIDEO_LAYER_MODE_MAX LIVEKIT_PB_VIDEO_LAYER_MODE_ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR +#define _LIVEKIT_PB_VIDEO_LAYER_MODE_ARRAYSIZE ((livekit_pb_video_layer_mode_t)(LIVEKIT_PB_VIDEO_LAYER_MODE_ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR+1)) + #define _LIVEKIT_PB_DATA_PACKET_KIND_MIN LIVEKIT_PB_DATA_PACKET_KIND_RELIABLE #define _LIVEKIT_PB_DATA_PACKET_KIND_MAX LIVEKIT_PB_DATA_PACKET_KIND_LOSSY #define _LIVEKIT_PB_DATA_PACKET_KIND_ARRAYSIZE ((livekit_pb_data_packet_kind_t)(LIVEKIT_PB_DATA_PACKET_KIND_LOSSY+1)) @@ -694,8 +742,8 @@ extern "C" { #define _LIVEKIT_PB_SERVER_INFO_EDITION_ARRAYSIZE ((livekit_pb_server_info_edition_t)(LIVEKIT_PB_SERVER_INFO_EDITION_CLOUD+1)) #define _LIVEKIT_PB_CLIENT_INFO_SDK_MIN LIVEKIT_PB_CLIENT_INFO_SDK_UNKNOWN -#define _LIVEKIT_PB_CLIENT_INFO_SDK_MAX LIVEKIT_PB_CLIENT_INFO_SDK_UNREAL -#define _LIVEKIT_PB_CLIENT_INFO_SDK_ARRAYSIZE ((livekit_pb_client_info_sdk_t)(LIVEKIT_PB_CLIENT_INFO_SDK_UNREAL+1)) +#define _LIVEKIT_PB_CLIENT_INFO_SDK_MAX LIVEKIT_PB_CLIENT_INFO_SDK_ESP32 +#define _LIVEKIT_PB_CLIENT_INFO_SDK_ARRAYSIZE ((livekit_pb_client_info_sdk_t)(LIVEKIT_PB_CLIENT_INFO_SDK_ESP32+1)) #define _LIVEKIT_PB_DATA_STREAM_OPERATION_TYPE_MIN LIVEKIT_PB_DATA_STREAM_OPERATION_TYPE_CREATE #define _LIVEKIT_PB_DATA_STREAM_OPERATION_TYPE_MAX LIVEKIT_PB_DATA_STREAM_OPERATION_TYPE_REACTION @@ -707,10 +755,12 @@ extern "C" { + #define livekit_pb_participant_info_t_state_ENUMTYPE livekit_pb_participant_info_state_t #define livekit_pb_participant_info_t_kind_ENUMTYPE livekit_pb_participant_info_kind_t +#define livekit_pb_simulcast_codec_info_t_video_layer_mode_ENUMTYPE livekit_pb_video_layer_mode_t #define livekit_pb_track_info_t_type_ENUMTYPE livekit_pb_track_type_t #define livekit_pb_track_info_t_audio_features_ENUMTYPE livekit_pb_audio_track_feature_t @@ -718,6 +768,8 @@ extern "C" { #define livekit_pb_video_layer_t_quality_ENUMTYPE livekit_pb_video_quality_t +#define livekit_pb_encrypted_packet_t_encryption_type_ENUMTYPE livekit_pb_encryption_type_t + @@ -757,20 +809,24 @@ extern "C" { + + /* Initializer values for message structs */ #define LIVEKIT_PB_PAGINATION_INIT_DEFAULT {{{NULL}, NULL}, 0} -#define LIVEKIT_PB_LIST_UPDATE_INIT_DEFAULT {{{NULL}, NULL}} +#define LIVEKIT_PB_TOKEN_PAGINATION_INIT_DEFAULT {{{NULL}, NULL}} +#define LIVEKIT_PB_LIST_UPDATE_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0} #define LIVEKIT_PB_ROOM_INIT_DEFAULT {NULL, NULL, NULL, 0, 0} #define LIVEKIT_PB_CODEC_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}} #define LIVEKIT_PB_PLAYOUT_DELAY_INIT_DEFAULT {0, 0, 0} #define LIVEKIT_PB_PARTICIPANT_PERMISSION_INIT_DEFAULT {0, 0, 0} #define LIVEKIT_PB_PARTICIPANT_INFO_INIT_DEFAULT {"", NULL, _LIVEKIT_PB_PARTICIPANT_INFO_STATE_MIN, 0, NULL, NULL, NULL, LIVEKIT_PB_PARTICIPANT_PERMISSION_INIT_DEFAULT, _LIVEKIT_PB_PARTICIPANT_INFO_KIND_MIN} #define LIVEKIT_PB_ENCRYPTION_INIT_DEFAULT {0} -#define LIVEKIT_PB_SIMULCAST_CODEC_INFO_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}} -#define LIVEKIT_PB_TRACK_INFO_INIT_DEFAULT {NULL, _LIVEKIT_PB_TRACK_TYPE_MIN, 0, NULL, 0, 0, {_LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN}} +#define LIVEKIT_PB_SIMULCAST_CODEC_INFO_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, _LIVEKIT_PB_VIDEO_LAYER_MODE_MIN, {{NULL}, NULL}} +#define LIVEKIT_PB_TRACK_INFO_INIT_DEFAULT {NULL, _LIVEKIT_PB_TRACK_TYPE_MIN, 0, NULL, 0, {_LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN}} #define LIVEKIT_PB_VIDEO_LAYER_INIT_DEFAULT {_LIVEKIT_PB_VIDEO_QUALITY_MIN, 0, 0, 0} #define LIVEKIT_PB_DATA_PACKET_INIT_DEFAULT {0, {LIVEKIT_PB_USER_PACKET_INIT_DEFAULT}, NULL, 0, NULL, 0, ""} -#define LIVEKIT_PB_ACTIVE_SPEAKER_UPDATE_INIT_DEFAULT {{{NULL}, NULL}} +#define LIVEKIT_PB_ENCRYPTED_PACKET_INIT_DEFAULT {_LIVEKIT_PB_ENCRYPTION_TYPE_MIN, {{NULL}, NULL}, 0, {{NULL}, NULL}} +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_INIT_DEFAULT {0, {LIVEKIT_PB_USER_PACKET_INIT_DEFAULT}} #define LIVEKIT_PB_SPEAKER_INFO_INIT_DEFAULT {{{NULL}, NULL}, 0, 0} #define LIVEKIT_PB_USER_PACKET_INIT_DEFAULT {NULL, NULL} #define LIVEKIT_PB_SIP_DTMF_INIT_DEFAULT {0, ""} @@ -783,7 +839,7 @@ extern "C" { #define LIVEKIT_PB_RPC_ERROR_INIT_DEFAULT {0, NULL} #define LIVEKIT_PB_PARTICIPANT_TRACKS_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}} #define LIVEKIT_PB_SERVER_INFO_INIT_DEFAULT {_LIVEKIT_PB_SERVER_INFO_EDITION_MIN, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0} -#define LIVEKIT_PB_CLIENT_INFO_INIT_DEFAULT {_LIVEKIT_PB_CLIENT_INFO_SDK_MIN, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}} +#define LIVEKIT_PB_CLIENT_INFO_INIT_DEFAULT {_LIVEKIT_PB_CLIENT_INFO_SDK_MIN, "", 0, "", "", ""} #define LIVEKIT_PB_CLIENT_CONFIGURATION_INIT_DEFAULT {_LIVEKIT_PB_CLIENT_CONFIG_SETTING_MIN, _LIVEKIT_PB_CLIENT_CONFIG_SETTING_MIN} #define LIVEKIT_PB_VIDEO_CONFIGURATION_INIT_DEFAULT {_LIVEKIT_PB_CLIENT_CONFIG_SETTING_MIN} #define LIVEKIT_PB_DISABLED_CODECS_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}} @@ -801,20 +857,24 @@ extern "C" { #define LIVEKIT_PB_DATA_STREAM_HEADER_INIT_DEFAULT {"", 0, NULL, NULL, false, 0, 0, {LIVEKIT_PB_DATA_STREAM_TEXT_HEADER_INIT_DEFAULT}} #define LIVEKIT_PB_DATA_STREAM_CHUNK_INIT_DEFAULT {"", 0, NULL, 0} #define LIVEKIT_PB_DATA_STREAM_TRAILER_INIT_DEFAULT {"", ""} -#define LIVEKIT_PB_WEBHOOK_CONFIG_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}} +#define LIVEKIT_PB_FILTER_PARAMS_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}} +#define LIVEKIT_PB_WEBHOOK_CONFIG_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}, false, LIVEKIT_PB_FILTER_PARAMS_INIT_DEFAULT} +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_INIT_DEFAULT {{{NULL}, NULL}, 0} #define LIVEKIT_PB_PAGINATION_INIT_ZERO {{{NULL}, NULL}, 0} -#define LIVEKIT_PB_LIST_UPDATE_INIT_ZERO {{{NULL}, NULL}} +#define LIVEKIT_PB_TOKEN_PAGINATION_INIT_ZERO {{{NULL}, NULL}} +#define LIVEKIT_PB_LIST_UPDATE_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0} #define LIVEKIT_PB_ROOM_INIT_ZERO {NULL, NULL, NULL, 0, 0} #define LIVEKIT_PB_CODEC_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}} #define LIVEKIT_PB_PLAYOUT_DELAY_INIT_ZERO {0, 0, 0} #define LIVEKIT_PB_PARTICIPANT_PERMISSION_INIT_ZERO {0, 0, 0} #define LIVEKIT_PB_PARTICIPANT_INFO_INIT_ZERO {"", NULL, _LIVEKIT_PB_PARTICIPANT_INFO_STATE_MIN, 0, NULL, NULL, NULL, LIVEKIT_PB_PARTICIPANT_PERMISSION_INIT_ZERO, _LIVEKIT_PB_PARTICIPANT_INFO_KIND_MIN} #define LIVEKIT_PB_ENCRYPTION_INIT_ZERO {0} -#define LIVEKIT_PB_SIMULCAST_CODEC_INFO_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}} -#define LIVEKIT_PB_TRACK_INFO_INIT_ZERO {NULL, _LIVEKIT_PB_TRACK_TYPE_MIN, 0, NULL, 0, 0, {_LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN}} +#define LIVEKIT_PB_SIMULCAST_CODEC_INFO_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, _LIVEKIT_PB_VIDEO_LAYER_MODE_MIN, {{NULL}, NULL}} +#define LIVEKIT_PB_TRACK_INFO_INIT_ZERO {NULL, _LIVEKIT_PB_TRACK_TYPE_MIN, 0, NULL, 0, {_LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN, _LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN}} #define LIVEKIT_PB_VIDEO_LAYER_INIT_ZERO {_LIVEKIT_PB_VIDEO_QUALITY_MIN, 0, 0, 0} #define LIVEKIT_PB_DATA_PACKET_INIT_ZERO {0, {LIVEKIT_PB_USER_PACKET_INIT_ZERO}, NULL, 0, NULL, 0, ""} -#define LIVEKIT_PB_ACTIVE_SPEAKER_UPDATE_INIT_ZERO {{{NULL}, NULL}} +#define LIVEKIT_PB_ENCRYPTED_PACKET_INIT_ZERO {_LIVEKIT_PB_ENCRYPTION_TYPE_MIN, {{NULL}, NULL}, 0, {{NULL}, NULL}} +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_INIT_ZERO {0, {LIVEKIT_PB_USER_PACKET_INIT_ZERO}} #define LIVEKIT_PB_SPEAKER_INFO_INIT_ZERO {{{NULL}, NULL}, 0, 0} #define LIVEKIT_PB_USER_PACKET_INIT_ZERO {NULL, NULL} #define LIVEKIT_PB_SIP_DTMF_INIT_ZERO {0, ""} @@ -827,7 +887,7 @@ extern "C" { #define LIVEKIT_PB_RPC_ERROR_INIT_ZERO {0, NULL} #define LIVEKIT_PB_PARTICIPANT_TRACKS_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}} #define LIVEKIT_PB_SERVER_INFO_INIT_ZERO {_LIVEKIT_PB_SERVER_INFO_EDITION_MIN, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0} -#define LIVEKIT_PB_CLIENT_INFO_INIT_ZERO {_LIVEKIT_PB_CLIENT_INFO_SDK_MIN, {{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}} +#define LIVEKIT_PB_CLIENT_INFO_INIT_ZERO {_LIVEKIT_PB_CLIENT_INFO_SDK_MIN, "", 0, "", "", ""} #define LIVEKIT_PB_CLIENT_CONFIGURATION_INIT_ZERO {_LIVEKIT_PB_CLIENT_CONFIG_SETTING_MIN, _LIVEKIT_PB_CLIENT_CONFIG_SETTING_MIN} #define LIVEKIT_PB_VIDEO_CONFIGURATION_INIT_ZERO {_LIVEKIT_PB_CLIENT_CONFIG_SETTING_MIN} #define LIVEKIT_PB_DISABLED_CODECS_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}} @@ -845,12 +905,18 @@ extern "C" { #define LIVEKIT_PB_DATA_STREAM_HEADER_INIT_ZERO {"", 0, NULL, NULL, false, 0, 0, {LIVEKIT_PB_DATA_STREAM_TEXT_HEADER_INIT_ZERO}} #define LIVEKIT_PB_DATA_STREAM_CHUNK_INIT_ZERO {"", 0, NULL, 0} #define LIVEKIT_PB_DATA_STREAM_TRAILER_INIT_ZERO {"", ""} -#define LIVEKIT_PB_WEBHOOK_CONFIG_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}} +#define LIVEKIT_PB_FILTER_PARAMS_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}} +#define LIVEKIT_PB_WEBHOOK_CONFIG_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}, false, LIVEKIT_PB_FILTER_PARAMS_INIT_ZERO} +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_INIT_ZERO {{{NULL}, NULL}, 0} /* Field tags (for use in manual encoding/decoding) */ #define LIVEKIT_PB_PAGINATION_AFTER_ID_TAG 1 #define LIVEKIT_PB_PAGINATION_LIMIT_TAG 2 +#define LIVEKIT_PB_TOKEN_PAGINATION_TOKEN_TAG 1 #define LIVEKIT_PB_LIST_UPDATE_SET_TAG 1 +#define LIVEKIT_PB_LIST_UPDATE_ADD_TAG 2 +#define LIVEKIT_PB_LIST_UPDATE_REMOVE_TAG 3 +#define LIVEKIT_PB_LIST_UPDATE_CLEAR_TAG 4 #define LIVEKIT_PB_ROOM_SID_TAG 1 #define LIVEKIT_PB_ROOM_NAME_TAG 2 #define LIVEKIT_PB_ROOM_METADATA_TAG 8 @@ -876,17 +942,21 @@ extern "C" { #define LIVEKIT_PB_SIMULCAST_CODEC_INFO_MID_TAG 2 #define LIVEKIT_PB_SIMULCAST_CODEC_INFO_CID_TAG 3 #define LIVEKIT_PB_SIMULCAST_CODEC_INFO_LAYERS_TAG 4 +#define LIVEKIT_PB_SIMULCAST_CODEC_INFO_VIDEO_LAYER_MODE_TAG 5 +#define LIVEKIT_PB_SIMULCAST_CODEC_INFO_SDP_CID_TAG 6 #define LIVEKIT_PB_TRACK_INFO_SID_TAG 1 #define LIVEKIT_PB_TRACK_INFO_TYPE_TAG 2 #define LIVEKIT_PB_TRACK_INFO_MUTED_TAG 4 #define LIVEKIT_PB_TRACK_INFO_MIME_TYPE_TAG 11 -#define LIVEKIT_PB_TRACK_INFO_STEREO_TAG 14 #define LIVEKIT_PB_TRACK_INFO_AUDIO_FEATURES_TAG 19 #define LIVEKIT_PB_VIDEO_LAYER_QUALITY_TAG 1 #define LIVEKIT_PB_VIDEO_LAYER_WIDTH_TAG 2 #define LIVEKIT_PB_VIDEO_LAYER_HEIGHT_TAG 3 #define LIVEKIT_PB_VIDEO_LAYER_SSRC_TAG 5 -#define LIVEKIT_PB_ACTIVE_SPEAKER_UPDATE_SPEAKERS_TAG 1 +#define LIVEKIT_PB_ENCRYPTED_PACKET_ENCRYPTION_TYPE_TAG 1 +#define LIVEKIT_PB_ENCRYPTED_PACKET_IV_TAG 2 +#define LIVEKIT_PB_ENCRYPTED_PACKET_KEY_INDEX_TAG 3 +#define LIVEKIT_PB_ENCRYPTED_PACKET_ENCRYPTED_VALUE_TAG 4 #define LIVEKIT_PB_SPEAKER_INFO_SID_TAG 1 #define LIVEKIT_PB_SPEAKER_INFO_LEVEL_TAG 2 #define LIVEKIT_PB_SPEAKER_INFO_ACTIVE_TAG 3 @@ -943,11 +1013,6 @@ extern "C" { #define LIVEKIT_PB_CLIENT_INFO_OS_TAG 4 #define LIVEKIT_PB_CLIENT_INFO_OS_VERSION_TAG 5 #define LIVEKIT_PB_CLIENT_INFO_DEVICE_MODEL_TAG 6 -#define LIVEKIT_PB_CLIENT_INFO_BROWSER_TAG 7 -#define LIVEKIT_PB_CLIENT_INFO_BROWSER_VERSION_TAG 8 -#define LIVEKIT_PB_CLIENT_INFO_ADDRESS_TAG 9 -#define LIVEKIT_PB_CLIENT_INFO_NETWORK_TAG 10 -#define LIVEKIT_PB_CLIENT_INFO_OTHER_SDKS_TAG 11 #define LIVEKIT_PB_CLIENT_CONFIGURATION_RESUME_CONNECTION_TAG 3 #define LIVEKIT_PB_CLIENT_CONFIGURATION_FORCE_RELAY_TAG 5 #define LIVEKIT_PB_VIDEO_CONFIGURATION_HARDWARE_ENCODER_TAG 1 @@ -1058,8 +1123,21 @@ extern "C" { #define LIVEKIT_PB_DATA_STREAM_CHUNK_VERSION_TAG 4 #define LIVEKIT_PB_DATA_STREAM_TRAILER_STREAM_ID_TAG 1 #define LIVEKIT_PB_DATA_STREAM_TRAILER_REASON_TAG 2 +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_USER_TAG 1 +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_CHAT_MESSAGE_TAG 3 +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_RPC_REQUEST_TAG 4 +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_RPC_ACK_TAG 5 +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_RPC_RESPONSE_TAG 6 +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_STREAM_HEADER_TAG 7 +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_STREAM_CHUNK_TAG 8 +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_STREAM_TRAILER_TAG 9 +#define LIVEKIT_PB_FILTER_PARAMS_INCLUDE_EVENTS_TAG 1 +#define LIVEKIT_PB_FILTER_PARAMS_EXCLUDE_EVENTS_TAG 2 #define LIVEKIT_PB_WEBHOOK_CONFIG_URL_TAG 1 #define LIVEKIT_PB_WEBHOOK_CONFIG_SIGNING_KEY_TAG 2 +#define LIVEKIT_PB_WEBHOOK_CONFIG_FILTER_PARAMS_TAG 3 +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_CODEC_TAG 1 +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_ENABLED_TAG 2 /* Struct field encoding specification for nanopb */ #define LIVEKIT_PB_PAGINATION_FIELDLIST(X, a) \ @@ -1068,8 +1146,16 @@ X(a, STATIC, SINGULAR, INT32, limit, 2) #define LIVEKIT_PB_PAGINATION_CALLBACK pb_default_field_callback #define LIVEKIT_PB_PAGINATION_DEFAULT NULL +#define LIVEKIT_PB_TOKEN_PAGINATION_FIELDLIST(X, a) \ +X(a, CALLBACK, SINGULAR, STRING, token, 1) +#define LIVEKIT_PB_TOKEN_PAGINATION_CALLBACK pb_default_field_callback +#define LIVEKIT_PB_TOKEN_PAGINATION_DEFAULT NULL + #define LIVEKIT_PB_LIST_UPDATE_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, STRING, set, 1) +X(a, CALLBACK, REPEATED, STRING, set, 1) \ +X(a, CALLBACK, REPEATED, STRING, add, 2) \ +X(a, CALLBACK, REPEATED, STRING, remove, 3) \ +X(a, STATIC, SINGULAR, BOOL, clear, 4) #define LIVEKIT_PB_LIST_UPDATE_CALLBACK pb_default_field_callback #define LIVEKIT_PB_LIST_UPDATE_DEFAULT NULL @@ -1125,7 +1211,9 @@ X(a, STATIC, SINGULAR, UENUM, kind, 14) X(a, CALLBACK, SINGULAR, STRING, mime_type, 1) \ X(a, CALLBACK, SINGULAR, STRING, mid, 2) \ X(a, CALLBACK, SINGULAR, STRING, cid, 3) \ -X(a, CALLBACK, REPEATED, MESSAGE, layers, 4) +X(a, CALLBACK, REPEATED, MESSAGE, layers, 4) \ +X(a, STATIC, SINGULAR, UENUM, video_layer_mode, 5) \ +X(a, CALLBACK, SINGULAR, STRING, sdp_cid, 6) #define LIVEKIT_PB_SIMULCAST_CODEC_INFO_CALLBACK pb_default_field_callback #define LIVEKIT_PB_SIMULCAST_CODEC_INFO_DEFAULT NULL #define livekit_pb_simulcast_codec_info_t_layers_MSGTYPE livekit_pb_video_layer_t @@ -1135,7 +1223,6 @@ X(a, POINTER, SINGULAR, STRING, sid, 1) \ X(a, STATIC, SINGULAR, UENUM, type, 2) \ X(a, STATIC, SINGULAR, BOOL, muted, 4) \ X(a, POINTER, SINGULAR, STRING, mime_type, 11) \ -X(a, STATIC, SINGULAR, BOOL, stereo, 14) \ X(a, STATIC, REPEATED, UENUM, audio_features, 19) #define LIVEKIT_PB_TRACK_INFO_CALLBACK NULL #define LIVEKIT_PB_TRACK_INFO_DEFAULT NULL @@ -1164,11 +1251,33 @@ X(a, STATIC, SINGULAR, STRING, participant_sid, 17) #define livekit_pb_data_packet_t_value_rpc_ack_MSGTYPE livekit_pb_rpc_ack_t #define livekit_pb_data_packet_t_value_rpc_response_MSGTYPE livekit_pb_rpc_response_t -#define LIVEKIT_PB_ACTIVE_SPEAKER_UPDATE_FIELDLIST(X, a) \ -X(a, CALLBACK, REPEATED, MESSAGE, speakers, 1) -#define LIVEKIT_PB_ACTIVE_SPEAKER_UPDATE_CALLBACK pb_default_field_callback -#define LIVEKIT_PB_ACTIVE_SPEAKER_UPDATE_DEFAULT NULL -#define livekit_pb_active_speaker_update_t_speakers_MSGTYPE livekit_pb_speaker_info_t +#define LIVEKIT_PB_ENCRYPTED_PACKET_FIELDLIST(X, a) \ +X(a, STATIC, SINGULAR, UENUM, encryption_type, 1) \ +X(a, CALLBACK, SINGULAR, BYTES, iv, 2) \ +X(a, STATIC, SINGULAR, UINT32, key_index, 3) \ +X(a, CALLBACK, SINGULAR, BYTES, encrypted_value, 4) +#define LIVEKIT_PB_ENCRYPTED_PACKET_CALLBACK pb_default_field_callback +#define LIVEKIT_PB_ENCRYPTED_PACKET_DEFAULT NULL + +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_FIELDLIST(X, a) \ +X(a, STATIC, ONEOF, MESSAGE, (value,user,value.user), 1) \ +X(a, STATIC, ONEOF, MESSAGE, (value,chat_message,value.chat_message), 3) \ +X(a, STATIC, ONEOF, MESSAGE, (value,rpc_request,value.rpc_request), 4) \ +X(a, STATIC, ONEOF, MESSAGE, (value,rpc_ack,value.rpc_ack), 5) \ +X(a, STATIC, ONEOF, MESSAGE, (value,rpc_response,value.rpc_response), 6) \ +X(a, STATIC, ONEOF, MESSAGE, (value,stream_header,value.stream_header), 7) \ +X(a, STATIC, ONEOF, MESSAGE, (value,stream_chunk,value.stream_chunk), 8) \ +X(a, STATIC, ONEOF, MESSAGE, (value,stream_trailer,value.stream_trailer), 9) +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_CALLBACK NULL +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_DEFAULT NULL +#define livekit_pb_encrypted_packet_payload_t_value_user_MSGTYPE livekit_pb_user_packet_t +#define livekit_pb_encrypted_packet_payload_t_value_chat_message_MSGTYPE livekit_pb_chat_message_t +#define livekit_pb_encrypted_packet_payload_t_value_rpc_request_MSGTYPE livekit_pb_rpc_request_t +#define livekit_pb_encrypted_packet_payload_t_value_rpc_ack_MSGTYPE livekit_pb_rpc_ack_t +#define livekit_pb_encrypted_packet_payload_t_value_rpc_response_MSGTYPE livekit_pb_rpc_response_t +#define livekit_pb_encrypted_packet_payload_t_value_stream_header_MSGTYPE livekit_pb_data_stream_header_t +#define livekit_pb_encrypted_packet_payload_t_value_stream_chunk_MSGTYPE livekit_pb_data_stream_chunk_t +#define livekit_pb_encrypted_packet_payload_t_value_stream_trailer_MSGTYPE livekit_pb_data_stream_trailer_t #define LIVEKIT_PB_SPEAKER_INFO_FIELDLIST(X, a) \ X(a, CALLBACK, SINGULAR, STRING, sid, 1) \ @@ -1264,17 +1373,12 @@ X(a, STATIC, SINGULAR, INT32, agent_protocol, 7) #define LIVEKIT_PB_CLIENT_INFO_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, sdk, 1) \ -X(a, CALLBACK, SINGULAR, STRING, version, 2) \ +X(a, STATIC, SINGULAR, STRING, version, 2) \ X(a, STATIC, SINGULAR, INT32, protocol, 3) \ -X(a, CALLBACK, SINGULAR, STRING, os, 4) \ -X(a, CALLBACK, SINGULAR, STRING, os_version, 5) \ -X(a, CALLBACK, SINGULAR, STRING, device_model, 6) \ -X(a, CALLBACK, SINGULAR, STRING, browser, 7) \ -X(a, CALLBACK, SINGULAR, STRING, browser_version, 8) \ -X(a, CALLBACK, SINGULAR, STRING, address, 9) \ -X(a, CALLBACK, SINGULAR, STRING, network, 10) \ -X(a, CALLBACK, SINGULAR, STRING, other_sdks, 11) -#define LIVEKIT_PB_CLIENT_INFO_CALLBACK pb_default_field_callback +X(a, STATIC, SINGULAR, STRING, os, 4) \ +X(a, STATIC, SINGULAR, STRING, os_version, 5) \ +X(a, STATIC, SINGULAR, STRING, device_model, 6) +#define LIVEKIT_PB_CLIENT_INFO_CALLBACK NULL #define LIVEKIT_PB_CLIENT_INFO_DEFAULT NULL #define LIVEKIT_PB_CLIENT_CONFIGURATION_FIELDLIST(X, a) \ @@ -1476,13 +1580,28 @@ X(a, STATIC, SINGULAR, STRING, reason, 2) #define LIVEKIT_PB_DATA_STREAM_TRAILER_CALLBACK NULL #define LIVEKIT_PB_DATA_STREAM_TRAILER_DEFAULT NULL +#define LIVEKIT_PB_FILTER_PARAMS_FIELDLIST(X, a) \ +X(a, CALLBACK, REPEATED, STRING, include_events, 1) \ +X(a, CALLBACK, REPEATED, STRING, exclude_events, 2) +#define LIVEKIT_PB_FILTER_PARAMS_CALLBACK pb_default_field_callback +#define LIVEKIT_PB_FILTER_PARAMS_DEFAULT NULL + #define LIVEKIT_PB_WEBHOOK_CONFIG_FIELDLIST(X, a) \ X(a, CALLBACK, SINGULAR, STRING, url, 1) \ -X(a, CALLBACK, SINGULAR, STRING, signing_key, 2) +X(a, CALLBACK, SINGULAR, STRING, signing_key, 2) \ +X(a, STATIC, OPTIONAL, MESSAGE, filter_params, 3) #define LIVEKIT_PB_WEBHOOK_CONFIG_CALLBACK pb_default_field_callback #define LIVEKIT_PB_WEBHOOK_CONFIG_DEFAULT NULL +#define livekit_pb_webhook_config_t_filter_params_MSGTYPE livekit_pb_filter_params_t + +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_FIELDLIST(X, a) \ +X(a, CALLBACK, SINGULAR, STRING, codec, 1) \ +X(a, STATIC, SINGULAR, BOOL, enabled, 2) +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_CALLBACK pb_default_field_callback +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_DEFAULT NULL extern const pb_msgdesc_t livekit_pb_pagination_t_msg; +extern const pb_msgdesc_t livekit_pb_token_pagination_t_msg; extern const pb_msgdesc_t livekit_pb_list_update_t_msg; extern const pb_msgdesc_t livekit_pb_room_t_msg; extern const pb_msgdesc_t livekit_pb_codec_t_msg; @@ -1494,7 +1613,8 @@ extern const pb_msgdesc_t livekit_pb_simulcast_codec_info_t_msg; extern const pb_msgdesc_t livekit_pb_track_info_t_msg; extern const pb_msgdesc_t livekit_pb_video_layer_t_msg; extern const pb_msgdesc_t livekit_pb_data_packet_t_msg; -extern const pb_msgdesc_t livekit_pb_active_speaker_update_t_msg; +extern const pb_msgdesc_t livekit_pb_encrypted_packet_t_msg; +extern const pb_msgdesc_t livekit_pb_encrypted_packet_payload_t_msg; extern const pb_msgdesc_t livekit_pb_speaker_info_t_msg; extern const pb_msgdesc_t livekit_pb_user_packet_t_msg; extern const pb_msgdesc_t livekit_pb_sip_dtmf_t_msg; @@ -1525,10 +1645,13 @@ extern const pb_msgdesc_t livekit_pb_data_stream_byte_header_t_msg; extern const pb_msgdesc_t livekit_pb_data_stream_header_t_msg; extern const pb_msgdesc_t livekit_pb_data_stream_chunk_t_msg; extern const pb_msgdesc_t livekit_pb_data_stream_trailer_t_msg; +extern const pb_msgdesc_t livekit_pb_filter_params_t_msg; extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; +extern const pb_msgdesc_t livekit_pb_subscribed_audio_codec_t_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ #define LIVEKIT_PB_PAGINATION_FIELDS &livekit_pb_pagination_t_msg +#define LIVEKIT_PB_TOKEN_PAGINATION_FIELDS &livekit_pb_token_pagination_t_msg #define LIVEKIT_PB_LIST_UPDATE_FIELDS &livekit_pb_list_update_t_msg #define LIVEKIT_PB_ROOM_FIELDS &livekit_pb_room_t_msg #define LIVEKIT_PB_CODEC_FIELDS &livekit_pb_codec_t_msg @@ -1540,7 +1663,8 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; #define LIVEKIT_PB_TRACK_INFO_FIELDS &livekit_pb_track_info_t_msg #define LIVEKIT_PB_VIDEO_LAYER_FIELDS &livekit_pb_video_layer_t_msg #define LIVEKIT_PB_DATA_PACKET_FIELDS &livekit_pb_data_packet_t_msg -#define LIVEKIT_PB_ACTIVE_SPEAKER_UPDATE_FIELDS &livekit_pb_active_speaker_update_t_msg +#define LIVEKIT_PB_ENCRYPTED_PACKET_FIELDS &livekit_pb_encrypted_packet_t_msg +#define LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_FIELDS &livekit_pb_encrypted_packet_payload_t_msg #define LIVEKIT_PB_SPEAKER_INFO_FIELDS &livekit_pb_speaker_info_t_msg #define LIVEKIT_PB_USER_PACKET_FIELDS &livekit_pb_user_packet_t_msg #define LIVEKIT_PB_SIP_DTMF_FIELDS &livekit_pb_sip_dtmf_t_msg @@ -1571,10 +1695,13 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; #define LIVEKIT_PB_DATA_STREAM_HEADER_FIELDS &livekit_pb_data_stream_header_t_msg #define LIVEKIT_PB_DATA_STREAM_CHUNK_FIELDS &livekit_pb_data_stream_chunk_t_msg #define LIVEKIT_PB_DATA_STREAM_TRAILER_FIELDS &livekit_pb_data_stream_trailer_t_msg +#define LIVEKIT_PB_FILTER_PARAMS_FIELDS &livekit_pb_filter_params_t_msg #define LIVEKIT_PB_WEBHOOK_CONFIG_FIELDS &livekit_pb_webhook_config_t_msg +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_FIELDS &livekit_pb_subscribed_audio_codec_t_msg /* Maximum encoded size of messages (where known) */ /* livekit_pb_Pagination_size depends on runtime parameters */ +/* livekit_pb_TokenPagination_size depends on runtime parameters */ /* livekit_pb_ListUpdate_size depends on runtime parameters */ /* livekit_pb_Room_size depends on runtime parameters */ /* livekit_pb_Codec_size depends on runtime parameters */ @@ -1582,7 +1709,8 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; /* livekit_pb_SimulcastCodecInfo_size depends on runtime parameters */ /* livekit_pb_TrackInfo_size depends on runtime parameters */ /* livekit_pb_DataPacket_size depends on runtime parameters */ -/* livekit_pb_ActiveSpeakerUpdate_size depends on runtime parameters */ +/* livekit_pb_EncryptedPacket_size depends on runtime parameters */ +/* livekit_pb_EncryptedPacketPayload_size depends on runtime parameters */ /* livekit_pb_SpeakerInfo_size depends on runtime parameters */ /* livekit_pb_UserPacket_size depends on runtime parameters */ /* livekit_pb_Transcription_size depends on runtime parameters */ @@ -1593,7 +1721,6 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; /* livekit_pb_RpcError_size depends on runtime parameters */ /* livekit_pb_ParticipantTracks_size depends on runtime parameters */ /* livekit_pb_ServerInfo_size depends on runtime parameters */ -/* livekit_pb_ClientInfo_size depends on runtime parameters */ /* livekit_pb_DisabledCodecs_size depends on runtime parameters */ /* livekit_pb_RTPStats_size depends on runtime parameters */ /* livekit_pb_RTPForwarderState_size depends on runtime parameters */ @@ -1601,9 +1728,12 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; /* livekit_pb_DataStream_ByteHeader_size depends on runtime parameters */ /* livekit_pb_DataStream_Header_size depends on runtime parameters */ /* livekit_pb_DataStream_Chunk_size depends on runtime parameters */ +/* livekit_pb_FilterParams_size depends on runtime parameters */ /* livekit_pb_WebhookConfig_size depends on runtime parameters */ +/* livekit_pb_SubscribedAudioCodec_size depends on runtime parameters */ #define LIVEKIT_LIVEKIT_MODELS_PB_H_MAX_SIZE LIVEKIT_PB_RTP_DRIFT_SIZE #define LIVEKIT_PB_CLIENT_CONFIGURATION_SIZE 4 +#define LIVEKIT_PB_CLIENT_INFO_SIZE 57 #define LIVEKIT_PB_DATA_STREAM_SIZE 0 #define LIVEKIT_PB_DATA_STREAM_TRAILER_SIZE 55 #define LIVEKIT_PB_ENCRYPTION_SIZE 0 @@ -1635,6 +1765,7 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; #define livekit_SubscriptionError livekit_pb_SubscriptionError #define livekit_AudioTrackFeature livekit_pb_AudioTrackFeature #define livekit_Pagination livekit_pb_Pagination +#define livekit_TokenPagination livekit_pb_TokenPagination #define livekit_ListUpdate livekit_pb_ListUpdate #define livekit_Room livekit_pb_Room #define livekit_Codec livekit_pb_Codec @@ -1650,8 +1781,11 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; #define livekit_SimulcastCodecInfo livekit_pb_SimulcastCodecInfo #define livekit_TrackInfo livekit_pb_TrackInfo #define livekit_VideoLayer livekit_pb_VideoLayer +#define livekit_VideoLayer_Mode livekit_pb_VideoLayer_Mode #define livekit_DataPacket livekit_pb_DataPacket #define livekit_DataPacket_Kind livekit_pb_DataPacket_Kind +#define livekit_EncryptedPacket livekit_pb_EncryptedPacket +#define livekit_EncryptedPacketPayload livekit_pb_EncryptedPacketPayload #define livekit_ActiveSpeakerUpdate livekit_pb_ActiveSpeakerUpdate #define livekit_SpeakerInfo livekit_pb_SpeakerInfo #define livekit_UserPacket livekit_pb_UserPacket @@ -1688,7 +1822,9 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; #define livekit_DataStream_Chunk livekit_pb_DataStream_Chunk #define livekit_DataStream_Trailer livekit_pb_DataStream_Trailer #define livekit_DataStream_Trailer_AttributesEntry livekit_pb_DataStream_Trailer_AttributesEntry +#define livekit_FilterParams livekit_pb_FilterParams #define livekit_WebhookConfig livekit_pb_WebhookConfig +#define livekit_SubscribedAudioCodec livekit_pb_SubscribedAudioCodec #define _LIVEKIT_AUDIO_CODEC_MIN _LIVEKIT_PB_AUDIO_CODEC_MIN #define _LIVEKIT_AUDIO_CODEC_MAX _LIVEKIT_PB_AUDIO_CODEC_MAX #define _LIVEKIT_AUDIO_CODEC_ARRAYSIZE _LIVEKIT_PB_AUDIO_CODEC_ARRAYSIZE @@ -1740,6 +1876,9 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; #define _LIVEKIT_ENCRYPTION_TYPE_MIN _LIVEKIT_PB_ENCRYPTION_TYPE_MIN #define _LIVEKIT_ENCRYPTION_TYPE_MAX _LIVEKIT_PB_ENCRYPTION_TYPE_MAX #define _LIVEKIT_ENCRYPTION_TYPE_ARRAYSIZE _LIVEKIT_PB_ENCRYPTION_TYPE_ARRAYSIZE +#define _LIVEKIT_VIDEO_LAYER_MODE_MIN _LIVEKIT_PB_VIDEO_LAYER_MODE_MIN +#define _LIVEKIT_VIDEO_LAYER_MODE_MAX _LIVEKIT_PB_VIDEO_LAYER_MODE_MAX +#define _LIVEKIT_VIDEO_LAYER_MODE_ARRAYSIZE _LIVEKIT_PB_VIDEO_LAYER_MODE_ARRAYSIZE #define _LIVEKIT_DATA_PACKET_KIND_MIN _LIVEKIT_PB_DATA_PACKET_KIND_MIN #define _LIVEKIT_DATA_PACKET_KIND_MAX _LIVEKIT_PB_DATA_PACKET_KIND_MAX #define _LIVEKIT_DATA_PACKET_KIND_ARRAYSIZE _LIVEKIT_PB_DATA_PACKET_KIND_ARRAYSIZE @@ -1753,6 +1892,7 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; #define _LIVEKIT_DATA_STREAM_OPERATION_TYPE_MAX _LIVEKIT_PB_DATA_STREAM_OPERATION_TYPE_MAX #define _LIVEKIT_DATA_STREAM_OPERATION_TYPE_ARRAYSIZE _LIVEKIT_PB_DATA_STREAM_OPERATION_TYPE_ARRAYSIZE #define LIVEKIT_PAGINATION_INIT_DEFAULT LIVEKIT_PB_PAGINATION_INIT_DEFAULT +#define LIVEKIT_TOKEN_PAGINATION_INIT_DEFAULT LIVEKIT_PB_TOKEN_PAGINATION_INIT_DEFAULT #define LIVEKIT_LIST_UPDATE_INIT_DEFAULT LIVEKIT_PB_LIST_UPDATE_INIT_DEFAULT #define LIVEKIT_ROOM_INIT_DEFAULT LIVEKIT_PB_ROOM_INIT_DEFAULT #define LIVEKIT_CODEC_INIT_DEFAULT LIVEKIT_PB_CODEC_INIT_DEFAULT @@ -1764,7 +1904,8 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; #define LIVEKIT_TRACK_INFO_INIT_DEFAULT LIVEKIT_PB_TRACK_INFO_INIT_DEFAULT #define LIVEKIT_VIDEO_LAYER_INIT_DEFAULT LIVEKIT_PB_VIDEO_LAYER_INIT_DEFAULT #define LIVEKIT_DATA_PACKET_INIT_DEFAULT LIVEKIT_PB_DATA_PACKET_INIT_DEFAULT -#define LIVEKIT_ACTIVE_SPEAKER_UPDATE_INIT_DEFAULT LIVEKIT_PB_ACTIVE_SPEAKER_UPDATE_INIT_DEFAULT +#define LIVEKIT_ENCRYPTED_PACKET_INIT_DEFAULT LIVEKIT_PB_ENCRYPTED_PACKET_INIT_DEFAULT +#define LIVEKIT_ENCRYPTED_PACKET_PAYLOAD_INIT_DEFAULT LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_INIT_DEFAULT #define LIVEKIT_SPEAKER_INFO_INIT_DEFAULT LIVEKIT_PB_SPEAKER_INFO_INIT_DEFAULT #define LIVEKIT_USER_PACKET_INIT_DEFAULT LIVEKIT_PB_USER_PACKET_INIT_DEFAULT #define LIVEKIT_SIP_DTMF_INIT_DEFAULT LIVEKIT_PB_SIP_DTMF_INIT_DEFAULT @@ -1795,8 +1936,11 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; #define LIVEKIT_DATA_STREAM_HEADER_INIT_DEFAULT LIVEKIT_PB_DATA_STREAM_HEADER_INIT_DEFAULT #define LIVEKIT_DATA_STREAM_CHUNK_INIT_DEFAULT LIVEKIT_PB_DATA_STREAM_CHUNK_INIT_DEFAULT #define LIVEKIT_DATA_STREAM_TRAILER_INIT_DEFAULT LIVEKIT_PB_DATA_STREAM_TRAILER_INIT_DEFAULT +#define LIVEKIT_FILTER_PARAMS_INIT_DEFAULT LIVEKIT_PB_FILTER_PARAMS_INIT_DEFAULT #define LIVEKIT_WEBHOOK_CONFIG_INIT_DEFAULT LIVEKIT_PB_WEBHOOK_CONFIG_INIT_DEFAULT +#define LIVEKIT_SUBSCRIBED_AUDIO_CODEC_INIT_DEFAULT LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_INIT_DEFAULT #define LIVEKIT_PAGINATION_INIT_ZERO LIVEKIT_PB_PAGINATION_INIT_ZERO +#define LIVEKIT_TOKEN_PAGINATION_INIT_ZERO LIVEKIT_PB_TOKEN_PAGINATION_INIT_ZERO #define LIVEKIT_LIST_UPDATE_INIT_ZERO LIVEKIT_PB_LIST_UPDATE_INIT_ZERO #define LIVEKIT_ROOM_INIT_ZERO LIVEKIT_PB_ROOM_INIT_ZERO #define LIVEKIT_CODEC_INIT_ZERO LIVEKIT_PB_CODEC_INIT_ZERO @@ -1808,7 +1952,8 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; #define LIVEKIT_TRACK_INFO_INIT_ZERO LIVEKIT_PB_TRACK_INFO_INIT_ZERO #define LIVEKIT_VIDEO_LAYER_INIT_ZERO LIVEKIT_PB_VIDEO_LAYER_INIT_ZERO #define LIVEKIT_DATA_PACKET_INIT_ZERO LIVEKIT_PB_DATA_PACKET_INIT_ZERO -#define LIVEKIT_ACTIVE_SPEAKER_UPDATE_INIT_ZERO LIVEKIT_PB_ACTIVE_SPEAKER_UPDATE_INIT_ZERO +#define LIVEKIT_ENCRYPTED_PACKET_INIT_ZERO LIVEKIT_PB_ENCRYPTED_PACKET_INIT_ZERO +#define LIVEKIT_ENCRYPTED_PACKET_PAYLOAD_INIT_ZERO LIVEKIT_PB_ENCRYPTED_PACKET_PAYLOAD_INIT_ZERO #define LIVEKIT_SPEAKER_INFO_INIT_ZERO LIVEKIT_PB_SPEAKER_INFO_INIT_ZERO #define LIVEKIT_USER_PACKET_INIT_ZERO LIVEKIT_PB_USER_PACKET_INIT_ZERO #define LIVEKIT_SIP_DTMF_INIT_ZERO LIVEKIT_PB_SIP_DTMF_INIT_ZERO @@ -1839,7 +1984,9 @@ extern const pb_msgdesc_t livekit_pb_webhook_config_t_msg; #define LIVEKIT_DATA_STREAM_HEADER_INIT_ZERO LIVEKIT_PB_DATA_STREAM_HEADER_INIT_ZERO #define LIVEKIT_DATA_STREAM_CHUNK_INIT_ZERO LIVEKIT_PB_DATA_STREAM_CHUNK_INIT_ZERO #define LIVEKIT_DATA_STREAM_TRAILER_INIT_ZERO LIVEKIT_PB_DATA_STREAM_TRAILER_INIT_ZERO +#define LIVEKIT_FILTER_PARAMS_INIT_ZERO LIVEKIT_PB_FILTER_PARAMS_INIT_ZERO #define LIVEKIT_WEBHOOK_CONFIG_INIT_ZERO LIVEKIT_PB_WEBHOOK_CONFIG_INIT_ZERO +#define LIVEKIT_SUBSCRIBED_AUDIO_CODEC_INIT_ZERO LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_INIT_ZERO #ifdef __cplusplus } /* extern "C" */ diff --git a/components/livekit/protocol/livekit_rtc.pb.c b/components/livekit/protocol/livekit_rtc.pb.c index c7a0af4..17557f5 100644 --- a/components/livekit/protocol/livekit_rtc.pb.c +++ b/components/livekit/protocol/livekit_rtc.pb.c @@ -93,6 +93,9 @@ PB_BIND(LIVEKIT_PB_SUBSCRIBED_CODEC, livekit_pb_subscribed_codec_t, AUTO) PB_BIND(LIVEKIT_PB_SUBSCRIBED_QUALITY_UPDATE, livekit_pb_subscribed_quality_update_t, AUTO) +PB_BIND(LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_UPDATE, livekit_pb_subscribed_audio_codec_update_t, AUTO) + + PB_BIND(LIVEKIT_PB_TRACK_PERMISSION, livekit_pb_track_permission_t, AUTO) @@ -138,6 +141,20 @@ PB_BIND(LIVEKIT_PB_REQUEST_RESPONSE, livekit_pb_request_response_t, AUTO) PB_BIND(LIVEKIT_PB_TRACK_SUBSCRIBED, livekit_pb_track_subscribed_t, AUTO) +PB_BIND(LIVEKIT_PB_CONNECTION_SETTINGS, livekit_pb_connection_settings_t, AUTO) + + +PB_BIND(LIVEKIT_PB_JOIN_REQUEST, livekit_pb_join_request_t, AUTO) + + +PB_BIND(LIVEKIT_PB_WRAPPED_JOIN_REQUEST, livekit_pb_wrapped_join_request_t, AUTO) + + +PB_BIND(LIVEKIT_PB_MEDIA_SECTIONS_REQUIREMENT, livekit_pb_media_sections_requirement_t, AUTO) + + + + diff --git a/components/livekit/protocol/livekit_rtc.pb.h b/components/livekit/protocol/livekit_rtc.pb.h index a2fc087..de374b5 100644 --- a/components/livekit/protocol/livekit_rtc.pb.h +++ b/components/livekit/protocol/livekit_rtc.pb.h @@ -38,13 +38,23 @@ typedef enum livekit_pb_request_response_reason { LIVEKIT_PB_REQUEST_RESPONSE_REASON_OK = 0, LIVEKIT_PB_REQUEST_RESPONSE_REASON_NOT_FOUND = 1, LIVEKIT_PB_REQUEST_RESPONSE_REASON_NOT_ALLOWED = 2, - LIVEKIT_PB_REQUEST_RESPONSE_REASON_LIMIT_EXCEEDED = 3 + LIVEKIT_PB_REQUEST_RESPONSE_REASON_LIMIT_EXCEEDED = 3, + LIVEKIT_PB_REQUEST_RESPONSE_REASON_QUEUED = 4, + LIVEKIT_PB_REQUEST_RESPONSE_REASON_UNSUPPORTED_TYPE = 5, + LIVEKIT_PB_REQUEST_RESPONSE_REASON_UNCLASSIFIED_ERROR = 6 } livekit_pb_request_response_reason_t; +typedef enum livekit_pb_wrapped_join_request_compression { + LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_NONE = 0, + LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_GZIP = 1 +} livekit_pb_wrapped_join_request_compression_t; + /* Struct definitions */ typedef struct livekit_pb_simulcast_codec { pb_callback_t codec; pb_callback_t cid; + pb_callback_t layers; + livekit_pb_video_layer_mode_t video_layer_mode; } livekit_pb_simulcast_codec_t; typedef struct livekit_pb_add_track_request { @@ -52,7 +62,6 @@ typedef struct livekit_pb_add_track_request { char cid[3]; char name[16]; livekit_pb_track_type_t type; - /* to be deprecated in favor of layers */ uint32_t width; uint32_t height; /* true to add track and initialize to muted */ @@ -229,6 +238,11 @@ typedef struct livekit_pb_subscribed_quality_update { pb_callback_t subscribed_codecs; } livekit_pb_subscribed_quality_update_t; +typedef struct livekit_pb_subscribed_audio_codec_update { + pb_callback_t track_sid; + pb_callback_t subscribed_audio_codecs; +} livekit_pb_subscribed_audio_codec_update_t; + typedef struct livekit_pb_track_permission { /* permission could be granted either by participant sid or identity */ pb_callback_t participant_sid; @@ -260,14 +274,18 @@ typedef struct livekit_pb_room_moved_response { } livekit_pb_room_moved_response_t; typedef struct livekit_pb_sync_state { - /* last subscribe answer before reconnecting */ + /* last subscribe/publish answer before reconnecting + subscribe answer if using dual peer connection + publish answer if using single peer connection */ bool has_answer; livekit_pb_session_description_t answer; bool has_subscription; livekit_pb_update_subscription_t subscription; pb_callback_t publish_tracks; pb_callback_t data_channels; - /* last received server side offer before reconnecting */ + /* last received server side offer/sent client side offer before reconnecting + received server side offer if using dual peer connection + sent client side offer if using single peer connection */ bool has_offer; livekit_pb_session_description_t offer; pb_callback_t track_sids_disabled; @@ -319,9 +337,9 @@ typedef struct livekit_pb_ping { typedef struct livekit_pb_signal_request { pb_size_t which_message; union { - /* initial join exchange, for publisher */ + /* participant offer for publisher */ livekit_pb_session_description_t offer; - /* participant answering publisher offer */ + /* participant answering subscriber offer */ livekit_pb_session_description_t answer; livekit_pb_trickle_request_t trickle; livekit_pb_add_track_request_t add_track; @@ -401,12 +419,49 @@ typedef struct livekit_pb_request_response { uint32_t request_id; livekit_pb_request_response_reason_t reason; pb_callback_t message; + pb_size_t which_request; + union { + livekit_pb_trickle_request_t trickle; + livekit_pb_add_track_request_t add_track; + livekit_pb_mute_track_request_t mute; + livekit_pb_update_participant_metadata_t update_metadata; + livekit_pb_update_local_audio_track_t update_audio_track; + livekit_pb_update_local_video_track_t update_video_track; + } request; } livekit_pb_request_response_t; typedef struct livekit_pb_track_subscribed { char dummy_field; } livekit_pb_track_subscribed_t; +typedef struct livekit_pb_connection_settings { + bool auto_subscribe; + bool adaptive_stream; + bool has_subscriber_allow_pause; + bool subscriber_allow_pause; + bool disable_ice_lite; +} livekit_pb_connection_settings_t; + +typedef struct livekit_pb_join_request { + bool has_client_info; + livekit_pb_client_info_t client_info; + bool has_connection_settings; + livekit_pb_connection_settings_t connection_settings; + pb_callback_t add_track_requests; + bool has_publisher_offer; + livekit_pb_session_description_t publisher_offer; +} livekit_pb_join_request_t; + +typedef struct livekit_pb_wrapped_join_request { + livekit_pb_wrapped_join_request_compression_t compression; + pb_callback_t join_request; /* marshalled JoinRequest + potentially compressed */ +} livekit_pb_wrapped_join_request_t; + +typedef struct livekit_pb_media_sections_requirement { + uint32_t num_audios; + uint32_t num_videos; +} livekit_pb_media_sections_requirement_t; + #ifdef __cplusplus extern "C" { @@ -430,11 +485,16 @@ extern "C" { #define _LIVEKIT_PB_LEAVE_REQUEST_ACTION_ARRAYSIZE ((livekit_pb_leave_request_action_t)(LIVEKIT_PB_LEAVE_REQUEST_ACTION_RECONNECT+1)) #define _LIVEKIT_PB_REQUEST_RESPONSE_REASON_MIN LIVEKIT_PB_REQUEST_RESPONSE_REASON_OK -#define _LIVEKIT_PB_REQUEST_RESPONSE_REASON_MAX LIVEKIT_PB_REQUEST_RESPONSE_REASON_LIMIT_EXCEEDED -#define _LIVEKIT_PB_REQUEST_RESPONSE_REASON_ARRAYSIZE ((livekit_pb_request_response_reason_t)(LIVEKIT_PB_REQUEST_RESPONSE_REASON_LIMIT_EXCEEDED+1)) +#define _LIVEKIT_PB_REQUEST_RESPONSE_REASON_MAX LIVEKIT_PB_REQUEST_RESPONSE_REASON_UNCLASSIFIED_ERROR +#define _LIVEKIT_PB_REQUEST_RESPONSE_REASON_ARRAYSIZE ((livekit_pb_request_response_reason_t)(LIVEKIT_PB_REQUEST_RESPONSE_REASON_UNCLASSIFIED_ERROR+1)) + +#define _LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_MIN LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_NONE +#define _LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_MAX LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_GZIP +#define _LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_ARRAYSIZE ((livekit_pb_wrapped_join_request_compression_t)(LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_GZIP+1)) +#define livekit_pb_simulcast_codec_t_video_layer_mode_ENUMTYPE livekit_pb_video_layer_mode_t #define livekit_pb_add_track_request_t_type_ENUMTYPE livekit_pb_track_type_t #define livekit_pb_add_track_request_t_source_ENUMTYPE livekit_pb_track_source_t @@ -480,6 +540,7 @@ extern "C" { + #define livekit_pb_data_channel_info_t_target_ENUMTYPE livekit_pb_signal_target_t #define livekit_pb_simulate_scenario_t_scenario_switch_candidate_protocol_ENUMTYPE livekit_pb_candidate_protocol_t @@ -494,10 +555,15 @@ extern "C" { + +#define livekit_pb_wrapped_join_request_t_compression_ENUMTYPE livekit_pb_wrapped_join_request_compression_t + + + /* Initializer values for message structs */ #define LIVEKIT_PB_SIGNAL_REQUEST_INIT_DEFAULT {0, {LIVEKIT_PB_SESSION_DESCRIPTION_INIT_DEFAULT}} #define LIVEKIT_PB_SIGNAL_RESPONSE_INIT_DEFAULT {0, {LIVEKIT_PB_JOIN_RESPONSE_INIT_DEFAULT}} -#define LIVEKIT_PB_SIMULCAST_CODEC_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}} +#define LIVEKIT_PB_SIMULCAST_CODEC_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, _LIVEKIT_PB_VIDEO_LAYER_MODE_MIN} #define LIVEKIT_PB_ADD_TRACK_REQUEST_INIT_DEFAULT {"", "", _LIVEKIT_PB_TRACK_TYPE_MIN, 0, 0, 0, _LIVEKIT_PB_TRACK_SOURCE_MIN, 0, {LIVEKIT_PB_VIDEO_LAYER_INIT_DEFAULT}, _LIVEKIT_PB_BACKUP_CODEC_POLICY_MIN, 0, {_LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN}} #define LIVEKIT_PB_TRICKLE_REQUEST_INIT_DEFAULT {NULL, _LIVEKIT_PB_SIGNAL_TARGET_MIN, 0} #define LIVEKIT_PB_MUTE_TRACK_REQUEST_INIT_DEFAULT {{{NULL}, NULL}, 0} @@ -524,6 +590,7 @@ extern "C" { #define LIVEKIT_PB_SUBSCRIBED_QUALITY_INIT_DEFAULT {_LIVEKIT_PB_VIDEO_QUALITY_MIN, 0} #define LIVEKIT_PB_SUBSCRIBED_CODEC_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}} #define LIVEKIT_PB_SUBSCRIBED_QUALITY_UPDATE_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}} +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_UPDATE_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}} #define LIVEKIT_PB_TRACK_PERMISSION_INIT_DEFAULT {{{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}} #define LIVEKIT_PB_SUBSCRIPTION_PERMISSION_INIT_DEFAULT {0, {{NULL}, NULL}} #define LIVEKIT_PB_SUBSCRIPTION_PERMISSION_UPDATE_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}, 0} @@ -537,11 +604,15 @@ extern "C" { #define LIVEKIT_PB_REGION_SETTINGS_INIT_DEFAULT {{{NULL}, NULL}} #define LIVEKIT_PB_REGION_INFO_INIT_DEFAULT {{{NULL}, NULL}, {{NULL}, NULL}, 0} #define LIVEKIT_PB_SUBSCRIPTION_RESPONSE_INIT_DEFAULT {{{NULL}, NULL}, _LIVEKIT_PB_SUBSCRIPTION_ERROR_MIN} -#define LIVEKIT_PB_REQUEST_RESPONSE_INIT_DEFAULT {0, _LIVEKIT_PB_REQUEST_RESPONSE_REASON_MIN, {{NULL}, NULL}} +#define LIVEKIT_PB_REQUEST_RESPONSE_INIT_DEFAULT {0, _LIVEKIT_PB_REQUEST_RESPONSE_REASON_MIN, {{NULL}, NULL}, 0, {LIVEKIT_PB_TRICKLE_REQUEST_INIT_DEFAULT}} #define LIVEKIT_PB_TRACK_SUBSCRIBED_INIT_DEFAULT {0} +#define LIVEKIT_PB_CONNECTION_SETTINGS_INIT_DEFAULT {0, 0, false, 0, 0} +#define LIVEKIT_PB_JOIN_REQUEST_INIT_DEFAULT {false, LIVEKIT_PB_CLIENT_INFO_INIT_DEFAULT, false, LIVEKIT_PB_CONNECTION_SETTINGS_INIT_DEFAULT, {{NULL}, NULL}, false, LIVEKIT_PB_SESSION_DESCRIPTION_INIT_DEFAULT} +#define LIVEKIT_PB_WRAPPED_JOIN_REQUEST_INIT_DEFAULT {_LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_MIN, {{NULL}, NULL}} +#define LIVEKIT_PB_MEDIA_SECTIONS_REQUIREMENT_INIT_DEFAULT {0, 0} #define LIVEKIT_PB_SIGNAL_REQUEST_INIT_ZERO {0, {LIVEKIT_PB_SESSION_DESCRIPTION_INIT_ZERO}} #define LIVEKIT_PB_SIGNAL_RESPONSE_INIT_ZERO {0, {LIVEKIT_PB_JOIN_RESPONSE_INIT_ZERO}} -#define LIVEKIT_PB_SIMULCAST_CODEC_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}} +#define LIVEKIT_PB_SIMULCAST_CODEC_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, _LIVEKIT_PB_VIDEO_LAYER_MODE_MIN} #define LIVEKIT_PB_ADD_TRACK_REQUEST_INIT_ZERO {"", "", _LIVEKIT_PB_TRACK_TYPE_MIN, 0, 0, 0, _LIVEKIT_PB_TRACK_SOURCE_MIN, 0, {LIVEKIT_PB_VIDEO_LAYER_INIT_ZERO}, _LIVEKIT_PB_BACKUP_CODEC_POLICY_MIN, 0, {_LIVEKIT_PB_AUDIO_TRACK_FEATURE_MIN}} #define LIVEKIT_PB_TRICKLE_REQUEST_INIT_ZERO {NULL, _LIVEKIT_PB_SIGNAL_TARGET_MIN, 0} #define LIVEKIT_PB_MUTE_TRACK_REQUEST_INIT_ZERO {{{NULL}, NULL}, 0} @@ -568,6 +639,7 @@ extern "C" { #define LIVEKIT_PB_SUBSCRIBED_QUALITY_INIT_ZERO {_LIVEKIT_PB_VIDEO_QUALITY_MIN, 0} #define LIVEKIT_PB_SUBSCRIBED_CODEC_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}} #define LIVEKIT_PB_SUBSCRIBED_QUALITY_UPDATE_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}} +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_UPDATE_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}} #define LIVEKIT_PB_TRACK_PERMISSION_INIT_ZERO {{{NULL}, NULL}, 0, {{NULL}, NULL}, {{NULL}, NULL}} #define LIVEKIT_PB_SUBSCRIPTION_PERMISSION_INIT_ZERO {0, {{NULL}, NULL}} #define LIVEKIT_PB_SUBSCRIPTION_PERMISSION_UPDATE_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}, 0} @@ -581,12 +653,18 @@ extern "C" { #define LIVEKIT_PB_REGION_SETTINGS_INIT_ZERO {{{NULL}, NULL}} #define LIVEKIT_PB_REGION_INFO_INIT_ZERO {{{NULL}, NULL}, {{NULL}, NULL}, 0} #define LIVEKIT_PB_SUBSCRIPTION_RESPONSE_INIT_ZERO {{{NULL}, NULL}, _LIVEKIT_PB_SUBSCRIPTION_ERROR_MIN} -#define LIVEKIT_PB_REQUEST_RESPONSE_INIT_ZERO {0, _LIVEKIT_PB_REQUEST_RESPONSE_REASON_MIN, {{NULL}, NULL}} +#define LIVEKIT_PB_REQUEST_RESPONSE_INIT_ZERO {0, _LIVEKIT_PB_REQUEST_RESPONSE_REASON_MIN, {{NULL}, NULL}, 0, {LIVEKIT_PB_TRICKLE_REQUEST_INIT_ZERO}} #define LIVEKIT_PB_TRACK_SUBSCRIBED_INIT_ZERO {0} +#define LIVEKIT_PB_CONNECTION_SETTINGS_INIT_ZERO {0, 0, false, 0, 0} +#define LIVEKIT_PB_JOIN_REQUEST_INIT_ZERO {false, LIVEKIT_PB_CLIENT_INFO_INIT_ZERO, false, LIVEKIT_PB_CONNECTION_SETTINGS_INIT_ZERO, {{NULL}, NULL}, false, LIVEKIT_PB_SESSION_DESCRIPTION_INIT_ZERO} +#define LIVEKIT_PB_WRAPPED_JOIN_REQUEST_INIT_ZERO {_LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_MIN, {{NULL}, NULL}} +#define LIVEKIT_PB_MEDIA_SECTIONS_REQUIREMENT_INIT_ZERO {0, 0} /* Field tags (for use in manual encoding/decoding) */ #define LIVEKIT_PB_SIMULCAST_CODEC_CODEC_TAG 1 #define LIVEKIT_PB_SIMULCAST_CODEC_CID_TAG 2 +#define LIVEKIT_PB_SIMULCAST_CODEC_LAYERS_TAG 4 +#define LIVEKIT_PB_SIMULCAST_CODEC_VIDEO_LAYER_MODE_TAG 5 #define LIVEKIT_PB_ADD_TRACK_REQUEST_CID_TAG 1 #define LIVEKIT_PB_ADD_TRACK_REQUEST_NAME_TAG 2 #define LIVEKIT_PB_ADD_TRACK_REQUEST_TYPE_TAG 3 @@ -660,6 +738,8 @@ extern "C" { #define LIVEKIT_PB_SUBSCRIBED_CODEC_QUALITIES_TAG 2 #define LIVEKIT_PB_SUBSCRIBED_QUALITY_UPDATE_TRACK_SID_TAG 1 #define LIVEKIT_PB_SUBSCRIBED_QUALITY_UPDATE_SUBSCRIBED_CODECS_TAG 3 +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_UPDATE_TRACK_SID_TAG 1 +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_UPDATE_SUBSCRIBED_AUDIO_CODECS_TAG 2 #define LIVEKIT_PB_TRACK_PERMISSION_PARTICIPANT_SID_TAG 1 #define LIVEKIT_PB_TRACK_PERMISSION_ALL_TRACKS_TAG 2 #define LIVEKIT_PB_TRACK_PERMISSION_TRACK_SIDS_TAG 3 @@ -732,6 +812,24 @@ extern "C" { #define LIVEKIT_PB_REQUEST_RESPONSE_REQUEST_ID_TAG 1 #define LIVEKIT_PB_REQUEST_RESPONSE_REASON_TAG 2 #define LIVEKIT_PB_REQUEST_RESPONSE_MESSAGE_TAG 3 +#define LIVEKIT_PB_REQUEST_RESPONSE_TRICKLE_TAG 4 +#define LIVEKIT_PB_REQUEST_RESPONSE_ADD_TRACK_TAG 5 +#define LIVEKIT_PB_REQUEST_RESPONSE_MUTE_TAG 6 +#define LIVEKIT_PB_REQUEST_RESPONSE_UPDATE_METADATA_TAG 7 +#define LIVEKIT_PB_REQUEST_RESPONSE_UPDATE_AUDIO_TRACK_TAG 8 +#define LIVEKIT_PB_REQUEST_RESPONSE_UPDATE_VIDEO_TRACK_TAG 9 +#define LIVEKIT_PB_CONNECTION_SETTINGS_AUTO_SUBSCRIBE_TAG 1 +#define LIVEKIT_PB_CONNECTION_SETTINGS_ADAPTIVE_STREAM_TAG 2 +#define LIVEKIT_PB_CONNECTION_SETTINGS_SUBSCRIBER_ALLOW_PAUSE_TAG 3 +#define LIVEKIT_PB_CONNECTION_SETTINGS_DISABLE_ICE_LITE_TAG 4 +#define LIVEKIT_PB_JOIN_REQUEST_CLIENT_INFO_TAG 1 +#define LIVEKIT_PB_JOIN_REQUEST_CONNECTION_SETTINGS_TAG 2 +#define LIVEKIT_PB_JOIN_REQUEST_ADD_TRACK_REQUESTS_TAG 5 +#define LIVEKIT_PB_JOIN_REQUEST_PUBLISHER_OFFER_TAG 6 +#define LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_TAG 1 +#define LIVEKIT_PB_WRAPPED_JOIN_REQUEST_JOIN_REQUEST_TAG 2 +#define LIVEKIT_PB_MEDIA_SECTIONS_REQUIREMENT_NUM_AUDIOS_TAG 1 +#define LIVEKIT_PB_MEDIA_SECTIONS_REQUIREMENT_NUM_VIDEOS_TAG 2 /* Struct field encoding specification for nanopb */ #define LIVEKIT_PB_SIGNAL_REQUEST_FIELDLIST(X, a) \ @@ -792,9 +890,12 @@ X(a, STATIC, ONEOF, MESSAGE, (message,pong_resp,message.pong_resp), 20) #define LIVEKIT_PB_SIMULCAST_CODEC_FIELDLIST(X, a) \ X(a, CALLBACK, SINGULAR, STRING, codec, 1) \ -X(a, CALLBACK, SINGULAR, STRING, cid, 2) +X(a, CALLBACK, SINGULAR, STRING, cid, 2) \ +X(a, CALLBACK, REPEATED, MESSAGE, layers, 4) \ +X(a, STATIC, SINGULAR, UENUM, video_layer_mode, 5) #define LIVEKIT_PB_SIMULCAST_CODEC_CALLBACK pb_default_field_callback #define LIVEKIT_PB_SIMULCAST_CODEC_DEFAULT NULL +#define livekit_pb_simulcast_codec_t_layers_MSGTYPE livekit_pb_video_layer_t #define LIVEKIT_PB_ADD_TRACK_REQUEST_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, STRING, cid, 1) \ @@ -991,6 +1092,13 @@ X(a, CALLBACK, REPEATED, MESSAGE, subscribed_codecs, 3) #define LIVEKIT_PB_SUBSCRIBED_QUALITY_UPDATE_DEFAULT NULL #define livekit_pb_subscribed_quality_update_t_subscribed_codecs_MSGTYPE livekit_pb_subscribed_codec_t +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_UPDATE_FIELDLIST(X, a) \ +X(a, CALLBACK, SINGULAR, STRING, track_sid, 1) \ +X(a, CALLBACK, REPEATED, MESSAGE, subscribed_audio_codecs, 2) +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_UPDATE_CALLBACK pb_default_field_callback +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_UPDATE_DEFAULT NULL +#define livekit_pb_subscribed_audio_codec_update_t_subscribed_audio_codecs_MSGTYPE livekit_pb_subscribed_audio_codec_t + #define LIVEKIT_PB_TRACK_PERMISSION_FIELDLIST(X, a) \ X(a, CALLBACK, SINGULAR, STRING, participant_sid, 1) \ X(a, STATIC, SINGULAR, BOOL, all_tracks, 2) \ @@ -1101,15 +1209,59 @@ X(a, STATIC, SINGULAR, UENUM, err, 2) #define LIVEKIT_PB_REQUEST_RESPONSE_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UINT32, request_id, 1) \ X(a, STATIC, SINGULAR, UENUM, reason, 2) \ -X(a, CALLBACK, SINGULAR, STRING, message, 3) +X(a, CALLBACK, SINGULAR, STRING, message, 3) \ +X(a, STATIC, ONEOF, MESSAGE, (request,trickle,request.trickle), 4) \ +X(a, STATIC, ONEOF, MESSAGE, (request,add_track,request.add_track), 5) \ +X(a, STATIC, ONEOF, MESSAGE, (request,mute,request.mute), 6) \ +X(a, STATIC, ONEOF, MESSAGE, (request,update_metadata,request.update_metadata), 7) \ +X(a, STATIC, ONEOF, MESSAGE, (request,update_audio_track,request.update_audio_track), 8) \ +X(a, STATIC, ONEOF, MESSAGE, (request,update_video_track,request.update_video_track), 9) #define LIVEKIT_PB_REQUEST_RESPONSE_CALLBACK pb_default_field_callback #define LIVEKIT_PB_REQUEST_RESPONSE_DEFAULT NULL +#define livekit_pb_request_response_t_request_trickle_MSGTYPE livekit_pb_trickle_request_t +#define livekit_pb_request_response_t_request_add_track_MSGTYPE livekit_pb_add_track_request_t +#define livekit_pb_request_response_t_request_mute_MSGTYPE livekit_pb_mute_track_request_t +#define livekit_pb_request_response_t_request_update_metadata_MSGTYPE livekit_pb_update_participant_metadata_t +#define livekit_pb_request_response_t_request_update_audio_track_MSGTYPE livekit_pb_update_local_audio_track_t +#define livekit_pb_request_response_t_request_update_video_track_MSGTYPE livekit_pb_update_local_video_track_t #define LIVEKIT_PB_TRACK_SUBSCRIBED_FIELDLIST(X, a) \ #define LIVEKIT_PB_TRACK_SUBSCRIBED_CALLBACK NULL #define LIVEKIT_PB_TRACK_SUBSCRIBED_DEFAULT NULL +#define LIVEKIT_PB_CONNECTION_SETTINGS_FIELDLIST(X, a) \ +X(a, STATIC, SINGULAR, BOOL, auto_subscribe, 1) \ +X(a, STATIC, SINGULAR, BOOL, adaptive_stream, 2) \ +X(a, STATIC, OPTIONAL, BOOL, subscriber_allow_pause, 3) \ +X(a, STATIC, SINGULAR, BOOL, disable_ice_lite, 4) +#define LIVEKIT_PB_CONNECTION_SETTINGS_CALLBACK NULL +#define LIVEKIT_PB_CONNECTION_SETTINGS_DEFAULT NULL + +#define LIVEKIT_PB_JOIN_REQUEST_FIELDLIST(X, a) \ +X(a, STATIC, OPTIONAL, MESSAGE, client_info, 1) \ +X(a, STATIC, OPTIONAL, MESSAGE, connection_settings, 2) \ +X(a, CALLBACK, REPEATED, MESSAGE, add_track_requests, 5) \ +X(a, STATIC, OPTIONAL, MESSAGE, publisher_offer, 6) +#define LIVEKIT_PB_JOIN_REQUEST_CALLBACK pb_default_field_callback +#define LIVEKIT_PB_JOIN_REQUEST_DEFAULT NULL +#define livekit_pb_join_request_t_client_info_MSGTYPE livekit_pb_client_info_t +#define livekit_pb_join_request_t_connection_settings_MSGTYPE livekit_pb_connection_settings_t +#define livekit_pb_join_request_t_add_track_requests_MSGTYPE livekit_pb_add_track_request_t +#define livekit_pb_join_request_t_publisher_offer_MSGTYPE livekit_pb_session_description_t + +#define LIVEKIT_PB_WRAPPED_JOIN_REQUEST_FIELDLIST(X, a) \ +X(a, STATIC, SINGULAR, UENUM, compression, 1) \ +X(a, CALLBACK, SINGULAR, BYTES, join_request, 2) +#define LIVEKIT_PB_WRAPPED_JOIN_REQUEST_CALLBACK pb_default_field_callback +#define LIVEKIT_PB_WRAPPED_JOIN_REQUEST_DEFAULT NULL + +#define LIVEKIT_PB_MEDIA_SECTIONS_REQUIREMENT_FIELDLIST(X, a) \ +X(a, STATIC, SINGULAR, UINT32, num_audios, 1) \ +X(a, STATIC, SINGULAR, UINT32, num_videos, 2) +#define LIVEKIT_PB_MEDIA_SECTIONS_REQUIREMENT_CALLBACK NULL +#define LIVEKIT_PB_MEDIA_SECTIONS_REQUIREMENT_DEFAULT NULL + extern const pb_msgdesc_t livekit_pb_signal_request_t_msg; extern const pb_msgdesc_t livekit_pb_signal_response_t_msg; extern const pb_msgdesc_t livekit_pb_simulcast_codec_t_msg; @@ -1139,6 +1291,7 @@ extern const pb_msgdesc_t livekit_pb_stream_state_update_t_msg; extern const pb_msgdesc_t livekit_pb_subscribed_quality_t_msg; extern const pb_msgdesc_t livekit_pb_subscribed_codec_t_msg; extern const pb_msgdesc_t livekit_pb_subscribed_quality_update_t_msg; +extern const pb_msgdesc_t livekit_pb_subscribed_audio_codec_update_t_msg; extern const pb_msgdesc_t livekit_pb_track_permission_t_msg; extern const pb_msgdesc_t livekit_pb_subscription_permission_t_msg; extern const pb_msgdesc_t livekit_pb_subscription_permission_update_t_msg; @@ -1154,6 +1307,10 @@ extern const pb_msgdesc_t livekit_pb_region_info_t_msg; extern const pb_msgdesc_t livekit_pb_subscription_response_t_msg; extern const pb_msgdesc_t livekit_pb_request_response_t_msg; extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; +extern const pb_msgdesc_t livekit_pb_connection_settings_t_msg; +extern const pb_msgdesc_t livekit_pb_join_request_t_msg; +extern const pb_msgdesc_t livekit_pb_wrapped_join_request_t_msg; +extern const pb_msgdesc_t livekit_pb_media_sections_requirement_t_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ #define LIVEKIT_PB_SIGNAL_REQUEST_FIELDS &livekit_pb_signal_request_t_msg @@ -1185,6 +1342,7 @@ extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; #define LIVEKIT_PB_SUBSCRIBED_QUALITY_FIELDS &livekit_pb_subscribed_quality_t_msg #define LIVEKIT_PB_SUBSCRIBED_CODEC_FIELDS &livekit_pb_subscribed_codec_t_msg #define LIVEKIT_PB_SUBSCRIBED_QUALITY_UPDATE_FIELDS &livekit_pb_subscribed_quality_update_t_msg +#define LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_UPDATE_FIELDS &livekit_pb_subscribed_audio_codec_update_t_msg #define LIVEKIT_PB_TRACK_PERMISSION_FIELDS &livekit_pb_track_permission_t_msg #define LIVEKIT_PB_SUBSCRIPTION_PERMISSION_FIELDS &livekit_pb_subscription_permission_t_msg #define LIVEKIT_PB_SUBSCRIPTION_PERMISSION_UPDATE_FIELDS &livekit_pb_subscription_permission_update_t_msg @@ -1200,6 +1358,10 @@ extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; #define LIVEKIT_PB_SUBSCRIPTION_RESPONSE_FIELDS &livekit_pb_subscription_response_t_msg #define LIVEKIT_PB_REQUEST_RESPONSE_FIELDS &livekit_pb_request_response_t_msg #define LIVEKIT_PB_TRACK_SUBSCRIBED_FIELDS &livekit_pb_track_subscribed_t_msg +#define LIVEKIT_PB_CONNECTION_SETTINGS_FIELDS &livekit_pb_connection_settings_t_msg +#define LIVEKIT_PB_JOIN_REQUEST_FIELDS &livekit_pb_join_request_t_msg +#define LIVEKIT_PB_WRAPPED_JOIN_REQUEST_FIELDS &livekit_pb_wrapped_join_request_t_msg +#define LIVEKIT_PB_MEDIA_SECTIONS_REQUIREMENT_FIELDS &livekit_pb_media_sections_requirement_t_msg /* Maximum encoded size of messages (where known) */ /* livekit_pb_SignalRequest_size depends on runtime parameters */ @@ -1226,6 +1388,7 @@ extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; /* livekit_pb_StreamStateUpdate_size depends on runtime parameters */ /* livekit_pb_SubscribedCodec_size depends on runtime parameters */ /* livekit_pb_SubscribedQualityUpdate_size depends on runtime parameters */ +/* livekit_pb_SubscribedAudioCodecUpdate_size depends on runtime parameters */ /* livekit_pb_TrackPermission_size depends on runtime parameters */ /* livekit_pb_SubscriptionPermission_size depends on runtime parameters */ /* livekit_pb_SubscriptionPermissionUpdate_size depends on runtime parameters */ @@ -1237,9 +1400,13 @@ extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; /* livekit_pb_RegionInfo_size depends on runtime parameters */ /* livekit_pb_SubscriptionResponse_size depends on runtime parameters */ /* livekit_pb_RequestResponse_size depends on runtime parameters */ +/* livekit_pb_JoinRequest_size depends on runtime parameters */ +/* livekit_pb_WrappedJoinRequest_size depends on runtime parameters */ #define LIVEKIT_LIVEKIT_RTC_PB_H_MAX_SIZE LIVEKIT_PB_ADD_TRACK_REQUEST_SIZE #define LIVEKIT_PB_ADD_TRACK_REQUEST_SIZE 69 +#define LIVEKIT_PB_CONNECTION_SETTINGS_SIZE 8 #define LIVEKIT_PB_LEAVE_REQUEST_SIZE 4 +#define LIVEKIT_PB_MEDIA_SECTIONS_REQUIREMENT_SIZE 12 #define LIVEKIT_PB_PING_SIZE 22 #define LIVEKIT_PB_PONG_SIZE 22 #define LIVEKIT_PB_SIMULATE_SCENARIO_SIZE 11 @@ -1265,6 +1432,7 @@ extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; #define livekit_TrackPublishedResponse livekit_pb_TrackPublishedResponse #define livekit_TrackUnpublishedResponse livekit_pb_TrackUnpublishedResponse #define livekit_SessionDescription livekit_pb_SessionDescription +#define livekit_SessionDescription_MidToTrackIdEntry livekit_pb_SessionDescription_MidToTrackIdEntry #define livekit_ParticipantUpdate livekit_pb_ParticipantUpdate #define livekit_UpdateSubscription livekit_pb_UpdateSubscription #define livekit_UpdateTrackSettings livekit_pb_UpdateTrackSettings @@ -1285,6 +1453,7 @@ extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; #define livekit_SubscribedQuality livekit_pb_SubscribedQuality #define livekit_SubscribedCodec livekit_pb_SubscribedCodec #define livekit_SubscribedQualityUpdate livekit_pb_SubscribedQualityUpdate +#define livekit_SubscribedAudioCodecUpdate livekit_pb_SubscribedAudioCodecUpdate #define livekit_TrackPermission livekit_pb_TrackPermission #define livekit_SubscriptionPermission livekit_pb_SubscriptionPermission #define livekit_SubscriptionPermissionUpdate livekit_pb_SubscriptionPermissionUpdate @@ -1301,6 +1470,12 @@ extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; #define livekit_RequestResponse livekit_pb_RequestResponse #define livekit_RequestResponse_Reason livekit_pb_RequestResponse_Reason #define livekit_TrackSubscribed livekit_pb_TrackSubscribed +#define livekit_ConnectionSettings livekit_pb_ConnectionSettings +#define livekit_JoinRequest livekit_pb_JoinRequest +#define livekit_JoinRequest_ParticipantAttributesEntry livekit_pb_JoinRequest_ParticipantAttributesEntry +#define livekit_WrappedJoinRequest livekit_pb_WrappedJoinRequest +#define livekit_WrappedJoinRequest_Compression livekit_pb_WrappedJoinRequest_Compression +#define livekit_MediaSectionsRequirement livekit_pb_MediaSectionsRequirement #define _LIVEKIT_SIGNAL_TARGET_MIN _LIVEKIT_PB_SIGNAL_TARGET_MIN #define _LIVEKIT_SIGNAL_TARGET_MAX _LIVEKIT_PB_SIGNAL_TARGET_MAX #define _LIVEKIT_SIGNAL_TARGET_ARRAYSIZE _LIVEKIT_PB_SIGNAL_TARGET_ARRAYSIZE @@ -1316,6 +1491,9 @@ extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; #define _LIVEKIT_REQUEST_RESPONSE_REASON_MIN _LIVEKIT_PB_REQUEST_RESPONSE_REASON_MIN #define _LIVEKIT_REQUEST_RESPONSE_REASON_MAX _LIVEKIT_PB_REQUEST_RESPONSE_REASON_MAX #define _LIVEKIT_REQUEST_RESPONSE_REASON_ARRAYSIZE _LIVEKIT_PB_REQUEST_RESPONSE_REASON_ARRAYSIZE +#define _LIVEKIT_WRAPPED_JOIN_REQUEST_COMPRESSION_MIN _LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_MIN +#define _LIVEKIT_WRAPPED_JOIN_REQUEST_COMPRESSION_MAX _LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_MAX +#define _LIVEKIT_WRAPPED_JOIN_REQUEST_COMPRESSION_ARRAYSIZE _LIVEKIT_PB_WRAPPED_JOIN_REQUEST_COMPRESSION_ARRAYSIZE #define LIVEKIT_SIGNAL_REQUEST_INIT_DEFAULT LIVEKIT_PB_SIGNAL_REQUEST_INIT_DEFAULT #define LIVEKIT_SIGNAL_RESPONSE_INIT_DEFAULT LIVEKIT_PB_SIGNAL_RESPONSE_INIT_DEFAULT #define LIVEKIT_SIMULCAST_CODEC_INIT_DEFAULT LIVEKIT_PB_SIMULCAST_CODEC_INIT_DEFAULT @@ -1345,6 +1523,7 @@ extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; #define LIVEKIT_SUBSCRIBED_QUALITY_INIT_DEFAULT LIVEKIT_PB_SUBSCRIBED_QUALITY_INIT_DEFAULT #define LIVEKIT_SUBSCRIBED_CODEC_INIT_DEFAULT LIVEKIT_PB_SUBSCRIBED_CODEC_INIT_DEFAULT #define LIVEKIT_SUBSCRIBED_QUALITY_UPDATE_INIT_DEFAULT LIVEKIT_PB_SUBSCRIBED_QUALITY_UPDATE_INIT_DEFAULT +#define LIVEKIT_SUBSCRIBED_AUDIO_CODEC_UPDATE_INIT_DEFAULT LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_UPDATE_INIT_DEFAULT #define LIVEKIT_TRACK_PERMISSION_INIT_DEFAULT LIVEKIT_PB_TRACK_PERMISSION_INIT_DEFAULT #define LIVEKIT_SUBSCRIPTION_PERMISSION_INIT_DEFAULT LIVEKIT_PB_SUBSCRIPTION_PERMISSION_INIT_DEFAULT #define LIVEKIT_SUBSCRIPTION_PERMISSION_UPDATE_INIT_DEFAULT LIVEKIT_PB_SUBSCRIPTION_PERMISSION_UPDATE_INIT_DEFAULT @@ -1360,6 +1539,10 @@ extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; #define LIVEKIT_SUBSCRIPTION_RESPONSE_INIT_DEFAULT LIVEKIT_PB_SUBSCRIPTION_RESPONSE_INIT_DEFAULT #define LIVEKIT_REQUEST_RESPONSE_INIT_DEFAULT LIVEKIT_PB_REQUEST_RESPONSE_INIT_DEFAULT #define LIVEKIT_TRACK_SUBSCRIBED_INIT_DEFAULT LIVEKIT_PB_TRACK_SUBSCRIBED_INIT_DEFAULT +#define LIVEKIT_CONNECTION_SETTINGS_INIT_DEFAULT LIVEKIT_PB_CONNECTION_SETTINGS_INIT_DEFAULT +#define LIVEKIT_JOIN_REQUEST_INIT_DEFAULT LIVEKIT_PB_JOIN_REQUEST_INIT_DEFAULT +#define LIVEKIT_WRAPPED_JOIN_REQUEST_INIT_DEFAULT LIVEKIT_PB_WRAPPED_JOIN_REQUEST_INIT_DEFAULT +#define LIVEKIT_MEDIA_SECTIONS_REQUIREMENT_INIT_DEFAULT LIVEKIT_PB_MEDIA_SECTIONS_REQUIREMENT_INIT_DEFAULT #define LIVEKIT_SIGNAL_REQUEST_INIT_ZERO LIVEKIT_PB_SIGNAL_REQUEST_INIT_ZERO #define LIVEKIT_SIGNAL_RESPONSE_INIT_ZERO LIVEKIT_PB_SIGNAL_RESPONSE_INIT_ZERO #define LIVEKIT_SIMULCAST_CODEC_INIT_ZERO LIVEKIT_PB_SIMULCAST_CODEC_INIT_ZERO @@ -1389,6 +1572,7 @@ extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; #define LIVEKIT_SUBSCRIBED_QUALITY_INIT_ZERO LIVEKIT_PB_SUBSCRIBED_QUALITY_INIT_ZERO #define LIVEKIT_SUBSCRIBED_CODEC_INIT_ZERO LIVEKIT_PB_SUBSCRIBED_CODEC_INIT_ZERO #define LIVEKIT_SUBSCRIBED_QUALITY_UPDATE_INIT_ZERO LIVEKIT_PB_SUBSCRIBED_QUALITY_UPDATE_INIT_ZERO +#define LIVEKIT_SUBSCRIBED_AUDIO_CODEC_UPDATE_INIT_ZERO LIVEKIT_PB_SUBSCRIBED_AUDIO_CODEC_UPDATE_INIT_ZERO #define LIVEKIT_TRACK_PERMISSION_INIT_ZERO LIVEKIT_PB_TRACK_PERMISSION_INIT_ZERO #define LIVEKIT_SUBSCRIPTION_PERMISSION_INIT_ZERO LIVEKIT_PB_SUBSCRIPTION_PERMISSION_INIT_ZERO #define LIVEKIT_SUBSCRIPTION_PERMISSION_UPDATE_INIT_ZERO LIVEKIT_PB_SUBSCRIPTION_PERMISSION_UPDATE_INIT_ZERO @@ -1404,6 +1588,10 @@ extern const pb_msgdesc_t livekit_pb_track_subscribed_t_msg; #define LIVEKIT_SUBSCRIPTION_RESPONSE_INIT_ZERO LIVEKIT_PB_SUBSCRIPTION_RESPONSE_INIT_ZERO #define LIVEKIT_REQUEST_RESPONSE_INIT_ZERO LIVEKIT_PB_REQUEST_RESPONSE_INIT_ZERO #define LIVEKIT_TRACK_SUBSCRIBED_INIT_ZERO LIVEKIT_PB_TRACK_SUBSCRIBED_INIT_ZERO +#define LIVEKIT_CONNECTION_SETTINGS_INIT_ZERO LIVEKIT_PB_CONNECTION_SETTINGS_INIT_ZERO +#define LIVEKIT_JOIN_REQUEST_INIT_ZERO LIVEKIT_PB_JOIN_REQUEST_INIT_ZERO +#define LIVEKIT_WRAPPED_JOIN_REQUEST_INIT_ZERO LIVEKIT_PB_WRAPPED_JOIN_REQUEST_INIT_ZERO +#define LIVEKIT_MEDIA_SECTIONS_REQUIREMENT_INIT_ZERO LIVEKIT_PB_MEDIA_SECTIONS_REQUIREMENT_INIT_ZERO #ifdef __cplusplus } /* extern "C" */ diff --git a/components/livekit/protocol/protobufs/livekit_metrics.proto b/components/livekit/protocol/protobufs/livekit_metrics.proto index 5a3daa0..ba64e99 100644 --- a/components/livekit/protocol/protobufs/livekit_metrics.proto +++ b/components/livekit/protocol/protobufs/livekit_metrics.proto @@ -53,7 +53,7 @@ message MetricsBatch { // This is useful for storing participant identities, track names, etc. // There is also a predefined list of labels that can be used to reference common metrics. // They have reserved indices from 0 to (METRIC_LABEL_PREDEFINED_MAX_VALUE - 1). - // Indexes pointing at str_data should start from METRIC_LABEL_PREDEFINED_MAX_VALUE, + // Indexes pointing at str_data should start from METRIC_LABEL_PREDEFINED_MAX_VALUE, // such that str_data[0] == index of METRIC_LABEL_PREDEFINED_MAX_VALUE. repeated string str_data = 3; repeated TimeSeriesMetric time_series = 4; @@ -87,3 +87,8 @@ message EventMetric { string metadata = 8; uint32 rid = 9; // index into 'str_data' } + +message MetricsRecordingHeader { + string room_id = 1; + optional bool enable_user_data_training = 2; +} diff --git a/components/livekit/protocol/protobufs/livekit_models.options b/components/livekit/protocol/protobufs/livekit_models.options index ef779b6..e1cf526 100644 --- a/components/livekit/protocol/protobufs/livekit_models.options +++ b/components/livekit/protocol/protobufs/livekit_models.options @@ -24,7 +24,8 @@ livekit_pb.ParticipantPermission.can_update_metadata type:FT_IGNORE livekit_pb.ParticipantPermission.can_subscribe_metrics type:FT_IGNORE livekit_pb.VideoLayer.bitrate type:FT_IGNORE -# livekit_pb.VideoLayer.ssrc type:FT_IGNORE +livekit_pb.VideoLayer.spatial_layer type:FT_IGNORE +livekit_pb.VideoLayer.rid type:FT_IGNORE livekit_pb.DataPacket.metrics type:FT_IGNORE livekit_pb.DataPacket.transcription type:FT_IGNORE @@ -33,6 +34,7 @@ livekit_pb.DataPacket.chat_message type:FT_IGNORE livekit_pb.DataPacket.stream_header type:FT_IGNORE livekit_pb.DataPacket.stream_chunk type:FT_IGNORE livekit_pb.DataPacket.stream_trailer type:FT_IGNORE +livekit_pb.DataPacket.encrypted_packet type:FT_IGNORE livekit_pb.DataPacket.participant_identity type:FT_POINTER livekit_pb.DataPacket.destination_identities type:FT_POINTER livekit_pb.DataPacket.participant_sid max_length:15 @@ -101,4 +103,14 @@ livekit_pb.Room.creation_time_ms type:FT_IGNORE livekit_pb.Room.turn_password type:FT_IGNORE livekit_pb.Room.enabled_codecs type:FT_IGNORE livekit_pb.Room.metadata type:FT_POINTER -livekit_pb.Room.version type:FT_IGNORE \ No newline at end of file +livekit_pb.Room.version type:FT_IGNORE + +livekit_pb.ClientInfo.version max_length:15 +livekit_pb.ClientInfo.os max_length:3 +livekit_pb.ClientInfo.os_version max_length:15 +livekit_pb.ClientInfo.device_model max_length:3 +livekit_pb.ClientInfo.browser type:FT_IGNORE +livekit_pb.ClientInfo.browser_version type:FT_IGNORE +livekit_pb.ClientInfo.address type:FT_IGNORE +livekit_pb.ClientInfo.network type:FT_IGNORE +livekit_pb.ClientInfo.other_sdks type:FT_IGNORE \ No newline at end of file diff --git a/components/livekit/protocol/protobufs/livekit_models.proto b/components/livekit/protocol/protobufs/livekit_models.proto index f78895b..a2523d2 100644 --- a/components/livekit/protocol/protobufs/livekit_models.proto +++ b/components/livekit/protocol/protobufs/livekit_models.proto @@ -28,9 +28,16 @@ message Pagination { int32 limit = 2; } +message TokenPagination { + string token = 1; +} + // ListUpdate is used for updated APIs where 'repeated string' field is modified. message ListUpdate { repeated string set = 1; // set the field to a new list + repeated string add = 2; // append items to a list, avoiding duplicates + repeated string remove = 3; // delete items from a list + bool clear = 4; // sets the list to an empty list } message Room { @@ -61,6 +68,7 @@ enum AudioCodec { DEFAULT_AC = 0; OPUS = 1; AAC = 2; + AC_MP3 = 3; } enum VideoCodec { @@ -140,8 +148,9 @@ message ParticipantInfo { SIP = 3; // LiveKit agents AGENT = 4; - - // NEXT_ID: 7 + // Connectors participants + CONNECTOR = 7; + // NEXT_ID: 8 } enum KindDetail { CLOUD_AGENT = 0; @@ -198,6 +207,12 @@ message SimulcastCodecInfo { string mid = 2; string cid = 3; repeated VideoLayer layers = 4; + VideoLayer.Mode video_layer_mode = 5; + // cid (client side id for track) could be different between + // signalling (AddTrackRequest) and SDP offer. This field + // will be populated only if it is different to avoid + // duplication and keep the representation concise. + string sdp_cid = 6; } message TrackInfo { @@ -211,17 +226,17 @@ message TrackInfo { // original height of video (unset for audio) uint32 height = 6; // true if track is simulcasted - bool simulcast = 7; + bool simulcast = 7 [deprecated = true]; // see `video_layer_mode` in `codecs` // true if DTX (Discontinuous Transmission) is disabled for audio - bool disable_dtx = 8; + bool disable_dtx = 8 [deprecated=true]; // deprecated in favor of `audio_features` // source of media TrackSource source = 9; - repeated VideoLayer layers = 10; + repeated VideoLayer layers = 10 [deprecated=true]; // see `codecs` for layers of individual codec // mime type of codec string mime_type = 11; string mid = 12; repeated SimulcastCodecInfo codecs = 13; - bool stereo = 14; + bool stereo = 14 [deprecated=true]; // deprecated in favor of `audio_features` // true if RED (Redundant Encoding) is disabled for audio bool disable_red = 15; Encryption.Type encryption = 16; @@ -240,6 +255,13 @@ enum VideoQuality { // provide information about available spatial layers message VideoLayer { + enum Mode { + MODE_UNUSED = 0; + ONE_SPATIAL_LAYER_PER_STREAM = 1; + MULTIPLE_SPATIAL_LAYERS_PER_STREAM = 2; + ONE_SPATIAL_LAYER_PER_STREAM_INCOMPLETE_RTCP_SR = 3; + } + // for tracks with a single layer, this should be HIGH VideoQuality quality = 1; uint32 width = 2; @@ -247,6 +269,8 @@ message VideoLayer { // target bitrate in bit per second (bps), server will measure actual uint32 bitrate = 4; uint32 ssrc = 5; + int32 spatial_layer = 6; + string rid = 7; } // new DataPacket API @@ -273,16 +297,41 @@ message DataPacket { DataStream.Header stream_header = 13; DataStream.Chunk stream_chunk = 14; DataStream.Trailer stream_trailer = 15; + EncryptedPacket encrypted_packet = 18; } // sequence number of reliable packet uint32 sequence = 16; // sid of the user that sent the message string participant_sid = 17; - // NEXT_ID: 18 + // NEXT_ID: 19 +} + +message EncryptedPacket { + Encryption.Type encryption_type = 1; + bytes iv = 2; + uint32 key_index = 3; + bytes encrypted_value = 4; // This is an encrypted EncryptedPacketPayload message representation } +message EncryptedPacketPayload { + oneof value { + UserPacket user = 1; + ChatMessage chat_message = 3; + RpcRequest rpc_request = 4; + RpcAck rpc_ack = 5; + RpcResponse rpc_response = 6; + DataStream.Header stream_header = 7; + DataStream.Chunk stream_chunk = 8; + DataStream.Trailer stream_trailer = 9; + + // NEXT_ID: 10 + } +} + + message ActiveSpeakerUpdate { + option deprecated = true; repeated SpeakerInfo speakers = 1; } @@ -306,7 +355,7 @@ message UserPacket { repeated string destination_identities = 6 [deprecated=true]; // topic under which the message was published optional string topic = 4; - // Unique ID to indentify the message + // Unique ID to identify the message optional string id = 8; // start and end time allow relating the message to specific media time optional uint64 start_time = 9; @@ -421,6 +470,7 @@ message ClientInfo { UNITY_WEB = 11; NODE = 12; UNREAL = 13; + ESP32 = 14; } SDK sdk = 1; @@ -683,7 +733,7 @@ message DataStream { string topic = 3; string mime_type = 4; optional uint64 total_length = 5; // only populated for finite streams, if it's a stream of unknown size this stays empty - Encryption.Type encryption_type = 7; // defaults to NONE + Encryption.Type encryption_type = 7 [deprecated=true]; // this is set on the DataPacket map attributes = 8; // user defined attributes map that can carry additional info // oneof to choose between specific header types @@ -698,7 +748,7 @@ message DataStream { uint64 chunk_index = 2; bytes content = 3; // content as binary (bytes) int32 version = 4; // a version indicating that this chunk_index has been retroactively modified and the original one needs to be replaced - optional bytes iv = 5; // optional, initialization vector for AES-GCM encryption + optional bytes iv = 5 [deprecated=true]; // this is set on the DataPacket } message Trailer { @@ -708,7 +758,18 @@ message DataStream { } } +message FilterParams { + repeated string include_events = 1; + repeated string exclude_events = 2; +} + message WebhookConfig { string url = 1; string signing_key = 2; + FilterParams filter_params = 3; +} + +message SubscribedAudioCodec { + string codec = 1; + bool enabled = 2; } diff --git a/components/livekit/protocol/protobufs/livekit_rtc.options b/components/livekit/protocol/protobufs/livekit_rtc.options index 68048b3..7f53ad5 100644 --- a/components/livekit/protocol/protobufs/livekit_rtc.options +++ b/components/livekit/protocol/protobufs/livekit_rtc.options @@ -18,6 +18,7 @@ livekit_pb.ICEServer.credential type:FT_POINTER livekit_pb.SessionDescription.type max_length:8 livekit_pb.SessionDescription.sdp type:FT_POINTER +livekit_pb.SessionDescription.mid_to_track_id type:FT_IGNORE livekit_pb.TrickleRequest.candidateInit type:FT_POINTER @@ -55,4 +56,13 @@ livekit_pb.SignalResponse.track_unpublished type:FT_IGNORE livekit_pb.SignalResponse.reconnect type:FT_IGNORE livekit_pb.SignalResponse.subscription_response type:FT_IGNORE livekit_pb.SignalResponse.request_response type:FT_IGNORE -livekit_pb.SignalResponse.room_moved type:FT_IGNORE \ No newline at end of file +livekit_pb.SignalResponse.room_moved type:FT_IGNORE +livekit_pb.SignalResponse.media_sections_requirement type:FT_IGNORE +livekit_pb.SignalResponse.subscribed_audio_codec_update type:FT_IGNORE + +livekit_pb.JoinRequest.metadata type:FT_IGNORE +livekit_pb.JoinRequest.participant_attributes type:FT_IGNORE +livekit_pb.JoinRequest.reconnect type:FT_IGNORE +livekit_pb.JoinRequest.reconnect_reason type:FT_IGNORE +livekit_pb.JoinRequest.participant_sid type:FT_IGNORE +livekit_pb.JoinRequest.sync_state type:FT_IGNORE \ No newline at end of file diff --git a/components/livekit/protocol/protobufs/livekit_rtc.proto b/components/livekit/protocol/protobufs/livekit_rtc.proto index 0ade62b..b60d902 100644 --- a/components/livekit/protocol/protobufs/livekit_rtc.proto +++ b/components/livekit/protocol/protobufs/livekit_rtc.proto @@ -23,9 +23,9 @@ import "livekit_models.proto"; message SignalRequest { oneof message { - // initial join exchange, for publisher + // participant offer for publisher SessionDescription offer = 1; - // participant answering publisher offer + // participant answering subscriber offer SessionDescription answer = 2; TrickleRequest trickle = 3; AddTrackRequest add_track = 4; @@ -107,6 +107,10 @@ message SignalResponse { TrackSubscribed track_subscribed = 23; // notify to the participant when they have been moved to a new room RoomMovedResponse room_moved = 24; + // notify number of required media sections to satisfy subscribed tracks + MediaSectionsRequirement media_sections_requirement = 25; + // when audio subscription changes, used to enable simulcasting of audio codecs based on subscriptions + SubscribedAudioCodecUpdate subscribed_audio_codec_update = 26; } } @@ -118,8 +122,10 @@ enum SignalTarget { message SimulcastCodec { string codec = 1; string cid = 2; + repeated VideoLayer layers = 4; + VideoLayer.Mode video_layer_mode = 5; - // NEXT-ID: 4 + // NEXT-ID: 6 } message AddTrackRequest { @@ -127,7 +133,6 @@ message AddTrackRequest { string cid = 1; string name = 2; TrackType type = 3; - // to be deprecated in favor of layers uint32 width = 4; uint32 height = 5; // true to add track and initialize to muted @@ -213,6 +218,7 @@ message SessionDescription { string type = 1; // "answer" | "offer" | "pranswer" | "rollback" string sdp = 2; uint32 id = 3; + map mid_to_track_id = 4; } message ParticipantUpdate { @@ -347,6 +353,11 @@ message SubscribedQualityUpdate { repeated SubscribedCodec subscribed_codecs = 3; } +message SubscribedAudioCodecUpdate { + string track_sid = 1; + repeated SubscribedAudioCodec subscribed_audio_codecs = 2; +} + message TrackPermission { // permission could be granted either by participant sid or identity string participant_sid = 1; @@ -376,12 +387,16 @@ message RoomMovedResponse { } message SyncState { - // last subscribe answer before reconnecting + // last subscribe/publish answer before reconnecting + // subscribe answer if using dual peer connection + // publish answer if using single peer connection SessionDescription answer = 1; UpdateSubscription subscription = 2; repeated TrackPublishedResponse publish_tracks = 3; repeated DataChannelInfo data_channels = 4; - // last received server side offer before reconnecting + // last received server side offer/sent client side offer before reconnecting + // received server side offer if using dual peer connection + // sent client side offer if using single peer connection SessionDescription offer = 5; repeated string track_sids_disabled = 6; repeated DataChannelReceiveState datachannel_receive_states = 7; @@ -461,13 +476,66 @@ message RequestResponse { NOT_FOUND = 1; NOT_ALLOWED = 2; LIMIT_EXCEEDED = 3; + QUEUED = 4; + UNSUPPORTED_TYPE= 5; + UNCLASSIFIED_ERROR = 6; } uint32 request_id = 1; Reason reason = 2; string message = 3; + oneof request { + TrickleRequest trickle = 4; + AddTrackRequest add_track = 5; + MuteTrackRequest mute = 6; + UpdateParticipantMetadata update_metadata = 7; + UpdateLocalAudioTrack update_audio_track = 8; + UpdateLocalVideoTrack update_video_track = 9; + } } message TrackSubscribed { string track_sid = 1; } + +message ConnectionSettings { + bool auto_subscribe = 1; + bool adaptive_stream = 2; + optional bool subscriber_allow_pause = 3; + bool disable_ice_lite = 4; +} + +message JoinRequest { + ClientInfo client_info = 1; + ConnectionSettings connection_settings = 2; + + string metadata = 3; // if not empty, will overwrite `metadata` in token + + // will set keys provided via this + // will overwrite if the same key is in the token + // will not delete keys from token if there is a key collision and this sets that key to empty value + map participant_attributes = 4; + + repeated AddTrackRequest add_track_requests = 5; + SessionDescription publisher_offer = 6; + + bool reconnect = 7; + ReconnectReason reconnect_reason = 8; + string participant_sid = 9; + SyncState sync_state = 10; +} + +message WrappedJoinRequest { + enum Compression { + NONE = 0; + GZIP = 1; + } + + Compression compression = 1; + bytes join_request = 2; // marshalled JoinRequest + potentially compressed +} + +message MediaSectionsRequirement { + uint32 num_audios = 1; + uint32 num_videos = 2; +} diff --git a/components/livekit/protocol/update/version.ini b/components/livekit/protocol/update/version.ini index 2a644cd..d5828e8 100644 --- a/components/livekit/protocol/update/version.ini +++ b/components/livekit/protocol/update/version.ini @@ -1,3 +1,3 @@ # See https://github.com/livekit/protocol/releases [download] -version = 1.39.2 \ No newline at end of file +version = 1.42.2 \ No newline at end of file