Skip to content

Commit e6f2164

Browse files
authored
Use proto2 syntax for FFI (#470)
1 parent 0e4b983 commit e6f2164

18 files changed

+1574
-1454
lines changed

livekit-ffi/protocol/audio_frame.proto

Lines changed: 68 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
syntax = "proto3";
15+
syntax = "proto2";
1616

1717
package livekit.proto;
1818
option csharp_namespace = "LiveKit.Proto";
@@ -23,106 +23,109 @@ import "track.proto";
2323
// Create a new AudioStream
2424
// AudioStream is used to receive audio frames from a track
2525
message NewAudioStreamRequest {
26-
uint64 track_handle = 1;
27-
AudioStreamType type = 2;
28-
uint32 sample_rate = 3;
29-
uint32 num_channels = 4;
26+
required uint64 track_handle = 1;
27+
required AudioStreamType type = 2;
28+
required uint32 sample_rate = 3;
29+
required uint32 num_channels = 4;
3030
}
31-
message NewAudioStreamResponse { OwnedAudioStream stream = 1; }
31+
message NewAudioStreamResponse { required OwnedAudioStream stream = 1; }
3232

3333
message AudioStreamFromParticipantRequest {
34-
uint64 participant_handle = 1;
35-
AudioStreamType type = 2;
34+
required uint64 participant_handle = 1;
35+
required AudioStreamType type = 2;
3636
optional TrackSource track_source = 3;
37-
uint32 sample_rate = 5;
38-
uint32 num_channels = 6;
37+
required uint32 sample_rate = 5;
38+
required uint32 num_channels = 6;
3939
}
4040

41-
message AudioStreamFromParticipantResponse { OwnedAudioStream stream = 1; }
41+
message AudioStreamFromParticipantResponse { required OwnedAudioStream stream = 1; }
4242

4343
// Create a new AudioSource
4444
message NewAudioSourceRequest {
45-
AudioSourceType type = 1;
45+
required AudioSourceType type = 1;
4646
optional AudioSourceOptions options = 2;
47-
uint32 sample_rate = 3;
48-
uint32 num_channels = 4;
49-
uint32 queue_size_ms = 5;
47+
required uint32 sample_rate = 3;
48+
required uint32 num_channels = 4;
49+
required uint32 queue_size_ms = 5;
5050
}
51-
message NewAudioSourceResponse { OwnedAudioSource source = 1; }
51+
message NewAudioSourceResponse { required OwnedAudioSource source = 1; }
5252

5353
// Push a frame to an AudioSource
5454
// The data provided must be available as long as the client receive the callback.
5555
message CaptureAudioFrameRequest {
56-
uint64 source_handle = 1;
57-
AudioFrameBufferInfo buffer = 2;
56+
required uint64 source_handle = 1;
57+
required AudioFrameBufferInfo buffer = 2;
5858
}
5959
message CaptureAudioFrameResponse {
60-
uint64 async_id = 1;
60+
required uint64 async_id = 1;
6161
}
6262
message CaptureAudioFrameCallback {
63-
uint64 async_id = 1;
63+
required uint64 async_id = 1;
6464
optional string error = 2;
6565
}
6666

6767
message ClearAudioBufferRequest {
68-
uint64 source_handle = 1;
68+
required uint64 source_handle = 1;
6969
}
7070
message ClearAudioBufferResponse {}
7171

7272
// Create a new AudioResampler
7373
message NewAudioResamplerRequest {}
7474
message NewAudioResamplerResponse {
75-
OwnedAudioResampler resampler = 1;
75+
required OwnedAudioResampler resampler = 1;
7676
}
7777

7878
// Remix and resample an audio frame
7979
message RemixAndResampleRequest {
80-
uint64 resampler_handle = 1;
81-
AudioFrameBufferInfo buffer = 2;
82-
uint32 num_channels = 3;
83-
uint32 sample_rate = 4;
80+
required uint64 resampler_handle = 1;
81+
required AudioFrameBufferInfo buffer = 2;
82+
required uint32 num_channels = 3;
83+
required uint32 sample_rate = 4;
8484
}
8585

8686
message RemixAndResampleResponse {
87-
OwnedAudioFrameBuffer buffer = 1;
87+
required OwnedAudioFrameBuffer buffer = 1;
8888
}
8989

9090

9191
// New resampler using SoX (much better quality)
9292

9393
message NewSoxResamplerRequest {
94-
double input_rate = 1;
95-
double output_rate = 2;
96-
uint32 num_channels = 3;
97-
SoxResamplerDataType input_data_type = 4;
98-
SoxResamplerDataType output_data_type = 5;
99-
SoxQualityRecipe quality_recipe = 6;
100-
uint32 flags = 7;
94+
required double input_rate = 1;
95+
required double output_rate = 2;
96+
required uint32 num_channels = 3;
97+
required SoxResamplerDataType input_data_type = 4;
98+
required SoxResamplerDataType output_data_type = 5;
99+
required SoxQualityRecipe quality_recipe = 6;
100+
required uint32 flags = 7;
101101
}
102102
message NewSoxResamplerResponse {
103-
OwnedSoxResampler resampler = 1;
104-
optional string error = 2;
103+
oneof message {
104+
OwnedSoxResampler resampler = 1;
105+
string error = 2;
106+
}
107+
105108
}
106109

107110
message PushSoxResamplerRequest {
108-
uint64 resampler_handle = 1;
109-
uint64 data_ptr = 2; // *const i16
110-
uint32 size = 3; // in bytes
111+
required uint64 resampler_handle = 1;
112+
required uint64 data_ptr = 2; // *const i16
113+
required uint32 size = 3; // in bytes
111114
}
112115

113116
message PushSoxResamplerResponse {
114-
uint64 output_ptr = 1; // *const i16 (could be null)
115-
uint32 size = 2; // in bytes
117+
required uint64 output_ptr = 1; // *const i16 (could be null)
118+
required uint32 size = 2; // in bytes
116119
optional string error = 3;
117120
}
118121

119122
message FlushSoxResamplerRequest {
120-
uint64 resampler_handle = 1;
123+
required uint64 resampler_handle = 1;
121124
}
122125

123126
message FlushSoxResamplerResponse {
124-
uint64 output_ptr = 1; // *const i16 (could be null)
125-
uint32 size = 2; // in bytes
127+
required uint64 output_ptr = 1; // *const i16 (could be null)
128+
required uint32 size = 2; // in bytes
126129
optional string error = 3;
127130
}
128131

@@ -156,15 +159,15 @@ enum SoxFlagBits {
156159
//
157160

158161
message AudioFrameBufferInfo {
159-
uint64 data_ptr = 1; // *const i16
160-
uint32 num_channels = 2;
161-
uint32 sample_rate = 3;
162-
uint32 samples_per_channel = 4;
162+
required uint64 data_ptr = 1; // *const i16
163+
required uint32 num_channels = 2;
164+
required uint32 sample_rate = 3;
165+
required uint32 samples_per_channel = 4;
163166
}
164167

165168
message OwnedAudioFrameBuffer {
166-
FfiOwnedHandle handle = 1;
167-
AudioFrameBufferInfo info = 2;
169+
required FfiOwnedHandle handle = 1;
170+
required AudioFrameBufferInfo info = 2;
168171
}
169172

170173
//
@@ -177,24 +180,24 @@ enum AudioStreamType {
177180
}
178181

179182
message AudioStreamInfo {
180-
AudioStreamType type = 1;
183+
required AudioStreamType type = 1;
181184
}
182185

183186
message OwnedAudioStream {
184-
FfiOwnedHandle handle = 1;
185-
AudioStreamInfo info = 2;
187+
required FfiOwnedHandle handle = 1;
188+
required AudioStreamInfo info = 2;
186189
}
187190

188191
message AudioStreamEvent {
189-
uint64 stream_handle = 1;
192+
required uint64 stream_handle = 1;
190193
oneof message {
191194
AudioFrameReceived frame_received = 2;
192195
AudioStreamEOS eos = 3;
193196
}
194197
}
195198

196199
message AudioFrameReceived {
197-
OwnedAudioFrameBuffer frame = 1;
200+
required OwnedAudioFrameBuffer frame = 1;
198201
}
199202

200203
message AudioStreamEOS {}
@@ -204,22 +207,22 @@ message AudioStreamEOS {}
204207
//
205208

206209
message AudioSourceOptions {
207-
bool echo_cancellation = 1;
208-
bool noise_suppression = 2;
209-
bool auto_gain_control = 3;
210+
required bool echo_cancellation = 1;
211+
required bool noise_suppression = 2;
212+
required bool auto_gain_control = 3;
210213
}
211214

212215
enum AudioSourceType {
213216
AUDIO_SOURCE_NATIVE = 0;
214217
}
215218

216219
message AudioSourceInfo {
217-
AudioSourceType type = 2;
220+
required AudioSourceType type = 2;
218221
}
219222

220223
message OwnedAudioSource {
221-
FfiOwnedHandle handle = 1;
222-
AudioSourceInfo info = 2;
224+
required FfiOwnedHandle handle = 1;
225+
required AudioSourceInfo info = 2;
223226
}
224227

225228
//
@@ -229,8 +232,8 @@ message OwnedAudioSource {
229232
message AudioResamplerInfo { }
230233

231234
message OwnedAudioResampler {
232-
FfiOwnedHandle handle = 1;
233-
AudioResamplerInfo info = 2;
235+
required FfiOwnedHandle handle = 1;
236+
required AudioResamplerInfo info = 2;
234237
}
235238

236239

@@ -243,6 +246,6 @@ message OwnedAudioResampler {
243246
message SoxResamplerInfo {}
244247

245248
message OwnedSoxResampler {
246-
FfiOwnedHandle handle = 1;
247-
SoxResamplerInfo info = 2;
249+
required FfiOwnedHandle handle = 1;
250+
required SoxResamplerInfo info = 2;
248251
}

livekit-ffi/protocol/e2ee.proto

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
syntax = "proto3";
15+
syntax = "proto2";
1616

1717
package livekit.proto;
1818
option csharp_namespace = "LiveKit.Proto";
@@ -26,23 +26,23 @@ enum EncryptionType {
2626
}
2727

2828
message FrameCryptor {
29-
string participant_identity = 1;
30-
string track_sid = 2;
31-
int32 key_index = 3;
32-
bool enabled = 4;
29+
required string participant_identity = 1;
30+
required string track_sid = 2;
31+
required int32 key_index = 3;
32+
required bool enabled = 4;
3333
}
3434

3535
message KeyProviderOptions {
3636
// Only specify if you want to use a shared_key
3737
optional bytes shared_key = 1;
38-
int32 ratchet_window_size = 2;
39-
bytes ratchet_salt = 3;
40-
int32 failure_tolerance = 4; // -1 = no tolerence
38+
required int32 ratchet_window_size = 2;
39+
required bytes ratchet_salt = 3;
40+
required int32 failure_tolerance = 4; // -1 = no tolerance
4141
}
4242

4343
message E2eeOptions {
44-
EncryptionType encryption_type = 1;
45-
KeyProviderOptions key_provider_options = 2;
44+
required EncryptionType encryption_type = 1;
45+
required KeyProviderOptions key_provider_options = 2;
4646
}
4747

4848
enum EncryptionState {
@@ -56,7 +56,7 @@ enum EncryptionState {
5656
}
5757

5858
message E2eeManagerSetEnabledRequest {
59-
bool enabled = 1;
59+
required bool enabled = 1;
6060
}
6161
message E2eeManagerSetEnabledResponse {}
6262

@@ -66,64 +66,64 @@ message E2eeManagerGetFrameCryptorsResponse {
6666
}
6767

6868
message FrameCryptorSetEnabledRequest {
69-
string participant_identity = 1;
70-
string track_sid = 2;
71-
bool enabled = 3;
69+
required string participant_identity = 1;
70+
required string track_sid = 2;
71+
required bool enabled = 3;
7272
}
73-
message FrameCryptorSetEnabledResponse { }
73+
message FrameCryptorSetEnabledResponse {}
7474

7575
message FrameCryptorSetKeyIndexRequest {
76-
string participant_identity = 1;
77-
string track_sid = 2;
78-
int32 key_index = 3;
76+
required string participant_identity = 1;
77+
required string track_sid = 2;
78+
required int32 key_index = 3;
7979
}
80-
message FrameCryptorSetKeyIndexResponse { }
80+
message FrameCryptorSetKeyIndexResponse {}
8181

8282
message SetSharedKeyRequest {
83-
bytes shared_key = 1;
84-
int32 key_index = 2;
83+
required bytes shared_key = 1;
84+
required int32 key_index = 2;
8585
}
86-
message SetSharedKeyResponse { }
86+
message SetSharedKeyResponse {}
8787

8888
message RatchetSharedKeyRequest {
89-
int32 key_index = 1;
89+
required int32 key_index = 1;
9090
}
9191
message RatchetSharedKeyResponse {
9292
optional bytes new_key = 1;
9393
}
9494

9595
message GetSharedKeyRequest {
96-
int32 key_index = 1;
96+
required int32 key_index = 1;
9797
}
9898
message GetSharedKeyResponse {
9999
optional bytes key = 1;
100100
}
101101

102102
message SetKeyRequest {
103-
string participant_identity = 1;
104-
bytes key = 2;
105-
int32 key_index = 3;
103+
required string participant_identity = 1;
104+
required bytes key = 2;
105+
required int32 key_index = 3;
106106
}
107107
message SetKeyResponse {}
108108

109109
message RatchetKeyRequest {
110-
string participant_identity = 1;
111-
int32 key_index = 2;
110+
required string participant_identity = 1;
111+
required int32 key_index = 2;
112112
}
113113
message RatchetKeyResponse {
114114
optional bytes new_key = 1;
115115
}
116116

117117
message GetKeyRequest {
118-
string participant_identity = 1;
119-
int32 key_index = 2;
118+
required string participant_identity = 1;
119+
required int32 key_index = 2;
120120
}
121121
message GetKeyResponse {
122122
optional bytes key = 1;
123123
}
124124

125125
message E2eeRequest {
126-
uint64 room_handle = 1;
126+
required uint64 room_handle = 1;
127127
oneof message {
128128
E2eeManagerSetEnabledRequest manager_set_enabled = 2;
129129
E2eeManagerGetFrameCryptorsRequest manager_get_frame_cryptors = 3;

0 commit comments

Comments
 (0)