feat(protocol): freeze M4 native session RC6 contract

This commit is contained in:
sechmachine
2026-08-13 07:18:03 +07:00
parent 4693102b3c
commit 8eacc4fda9
35 changed files with 5334 additions and 473 deletions
+113 -2
View File
@@ -54,9 +54,56 @@ message CapabilityProfile {
string transport = 1;
string framing = 2;
string media = 3;
string audio = 4;
reserved 4;
string source_rate_control = 5;
repeated string client_decode = 6;
reserved 6;
repeated VideoProfile video_profiles = 7;
repeated AudioProfile audio_profiles = 8;
}
message VideoProfile {
string codec = 1;
uint32 bit_depth = 2;
string chroma_subsampling = 3;
string color_space = 4;
string transfer_function = 5;
}
message AudioProfile {
string codec = 1;
uint32 sample_rate_hz = 2;
uint32 channels = 3;
string channel_layout = 4;
uint32 packet_duration_ms = 5;
}
message DisplayMode {
uint32 resolution_width = 1;
uint32 resolution_height = 2;
uint32 fps = 3;
}
message SessionAdjustment {
string display_reason = 1;
string bitrate_reason = 2;
}
message SelectedSessionDescriptor {
VideoProfile video_profile = 1;
AudioProfile audio_profile = 2;
DisplayMode display_mode = 3;
uint64 bitrate_target_kbps = 4;
uint64 bitrate_maximum_kbps = 5;
SessionAdjustment adjustment = 6;
string media_timestamp_basis = 7;
}
message ProviderStreamPolicy {
VideoProfile video_profile = 1;
AudioProfile audio_profile = 2;
DisplayMode display_mode = 3;
uint64 bitrate_target_kbps = 4;
uint64 bitrate_maximum_kbps = 5;
}
message GatewayRegistration {
@@ -115,6 +162,7 @@ message SessionAuthority {
CapabilityProfile capabilities = 7;
string provider_profile = 8;
string provider_identity = 9;
SelectedSessionDescriptor selected_descriptor = 10;
}
message ClientSessionAuthority {
@@ -125,6 +173,7 @@ message ClientSessionAuthority {
uint64 reconnect_sequence = 5;
google.protobuf.Timestamp expires_at = 6;
CapabilityProfile capabilities = 7;
SelectedSessionDescriptor selected_descriptor = 8;
}
message ProviderSessionWork {
@@ -147,6 +196,68 @@ message ProviderSessionWork {
string client_id = 17;
ClipboardPolicy clipboard_policy = 18;
bool provider_application_termination_allowed = 19;
ProviderStreamPolicy stream_policy = 20;
}
message GatewayQualityWorkRequest {
string version = 1;
string session_id = 2;
string gateway_id = 3;
uint64 reconnect_sequence = 4;
string operation_id = 5;
uint64 revision = 6;
optional uint64 current_applied_revision = 7;
}
message GatewayQualityWork {
string version = 1;
string session_id = 2;
string gateway_id = 3;
uint64 reconnect_sequence = 4;
string operation_id = 5;
uint64 revision = 6;
google.protobuf.Timestamp lease_expires_at = 7;
SelectedSessionDescriptor selected_descriptor = 8;
optional uint64 current_applied_revision = 9;
}
message GatewayQualityAck {
string version = 1;
string session_id = 2;
string gateway_id = 3;
uint64 reconnect_sequence = 4;
string operation_id = 5;
uint64 revision = 6;
string outcome = 7;
uint64 current_applied_revision = 8;
string failure_code = 9;
}
message GatewayStopWork {
string version = 1;
string session_id = 2;
string gateway_id = 3;
uint64 reconnect_sequence = 4;
string operation_id = 5;
uint32 attempt = 6;
}
message GatewayStopWorkRequest {
string version = 1;
string session_id = 2;
string gateway_id = 3;
uint64 reconnect_sequence = 4;
string operation_id = 5;
}
message GatewayStopAck {
string version = 1;
string session_id = 2;
string gateway_id = 3;
uint64 reconnect_sequence = 4;
string operation_id = 5;
string outcome = 6;
string failure_code = 7;
}
message ClipboardPolicy {