Add adaptive packet loss handling
Build and test / test (macos-latest) (push) Canceled after 0s
Build and test / test (ubuntu-24.04) (push) Canceled after 0s
Build and test / test (windows-latest) (push) Canceled after 0s
Build and test / apple-client (push) Canceled after 0s

This commit is contained in:
2026-09-22 16:54:49 +02:00
parent 7c4708c3de
commit 7b0c003ad4
35 changed files with 518 additions and 60 deletions
+13
View File
@@ -47,6 +47,7 @@ message Envelope {
SubscribeVoiceRequest subscribe_voice = 45;
UnsubscribeVoiceRequest unsubscribe_voice = 46;
VoiceSubscriptionResult voice_subscription_result = 47;
PacketLossUpdate packet_loss_update = 48;
// Text (50-59)
TextMessage text_message = 50;
@@ -77,6 +78,12 @@ enum ChannelMode { MODE_MONO = 0; MODE_STEREO = 1; }
enum StreamKind { STREAM_MIC = 0; STREAM_SCREEN_AUDIO = 1; STREAM_AUX_DEVICE = 2; }
enum TextScope { TEXT_CHANNEL = 0; TEXT_PRIVATE = 1; TEXT_SERVER = 2; }
enum OpusApplication { OPUS_VOIP = 0; OPUS_AUDIO = 1; OPUS_LOWDELAY = 2; }
enum PacketLossMode {
PACKET_LOSS_MANUAL = 0;
PACKET_LOSS_AUTO_FAST = 1;
PACKET_LOSS_AUTO_BALANCED = 2;
PACKET_LOSS_AUTO_STABLE = 3;
}
// Common types
message AudioConfig {
@@ -91,6 +98,7 @@ message AudioConfig {
bool dtx = 9;
uint32 complexity = 10; // 0..10
bool dred = 11; // Deep REDundancy (Opus 1.6)
PacketLossMode packet_loss_mode = 12;
}
message StreamInfo {
@@ -223,6 +231,11 @@ message UdpBinding { bytes udp_token = 1; bool ack = 2; }
message SubscribeVoiceRequest {}
message UnsubscribeVoiceRequest {}
message VoiceSubscriptionResult { bool ok = 1; string error = 2; bool subscribed = 3; }
message PacketLossUpdate {
uint32 channel_id = 1;
uint32 measured_percent = 2;
uint32 applied_percent = 3;
}
// Text
message TextMessage {