12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- syntax = "proto3";
- package callsignaling;
- option java_package = "ch.threema.protobuf.callsignaling";
- // Root signaling message
- message Envelope {
- // Random amount of padding, ignored by the receiver
- bytes padding = 1;
- oneof content {
- VideoQualityProfile video_quality_profile = 2;
- CaptureState capture_state_change = 3;
- }
- }
- // Generic 2D resolution
- message Resolution {
- uint32 width = 1;
- uint32 height = 2;
- }
- // The app switched to a new video quality profile
- //
- // In order to be forwards-compatible, the raw configuration of the profile
- // (bitrate, resolution, etc) should also be included in this message. This
- // way, if an unknown enum value is received, the receiver can simply use the
- // raw values instead.
- message VideoQualityProfile {
- // The quality profile
- enum QualityProfile {
- // Very high quality, used only when explicitly selected by the user
- MAX = 0;
- // High quality, used by default in non-metered networks
- HIGH = 1;
- // Low quality, optimize for bandwidth, used by default in metered networks
- LOW = 2;
- }
- QualityProfile profile = 1;
- // The max bitrate in kbps
- uint32 max_bitrate_kbps = 2;
- // The max resolution (in landscape orientation)
- Resolution max_resolution = 3;
- // The max framerate
- uint32 max_fps = 4;
- }
- // Signal changes in the capturing state (e.g. video camera enabled or disabled)
- message CaptureState {
- // The capture state of a capturing device
- enum Mode {
- // Off, not sending any data
- OFF = 0;
- // On, sending data
- ON = 1;
- }
- Mode state = 1;
- // The capture device type
- enum CaptureDevice {
- // Capturing from a camera
- CAMERA = 0;
- // Capturing from screen sharing
- SCREEN_SHARING = 1;
- // Capturing from a microphone
- MICROPHONE = 2;
- }
- CaptureDevice device = 2;
- }
|