OLD | NEW |
---|---|
(Empty) | |
1 syntax = "proto2"; | |
2 option optimize_for = LITE_RUNTIME; | |
3 package webrtc.audio_network_adaptor.config; | |
4 | |
5 message FecController { | |
6 message Threshold { | |
7 // Threshold defines a curve in the bandwidth/packet-loss domain. The | |
8 // curve is characterized by the two conjunction points: A and B. | |
9 // | |
10 // packet ^ | | |
11 // loss | A| | |
12 // | \ A: (low_bandwidth_bps, low_bandwidth_packet_loss) | |
13 // | \ B: (high_bandwidth_bps, high_bandwidth_packet_loss) | |
14 // | B\________ | |
15 // |---------------> bandwidth | |
16 optional int32 low_bandwidth_bps = 1; | |
17 optional float low_bandwidth_packet_loss = 2; | |
18 optional int32 high_bandwidth_bps = 3; | |
19 optional float high_bandwidth_packet_loss = 4; | |
kwiberg-webrtc
2016/10/01 01:41:45
Ooohh, very nice with docs. I hadn't realized this
minyue-webrtc
2016/10/02 19:48:05
The comment was not wrong, although the naming may
| |
20 } | |
21 | |
22 // |fec_enabling_threshold| defines a curve, above which FEC should be | |
23 // enabled. |fec_disabling_threshold| defines a curve, under which FEC | |
24 // should be disabled. See below | |
25 // | |
26 // packet-loss ^ | | | |
27 // | | | FEC | |
28 // | \ \ ON | |
29 // | FEC \ \_______ fec_enabling_threshold | |
30 // | OFF \_________ fec_disabling_threshold | |
31 // |-----------------> bandwidth | |
32 optional Threshold fec_enabling_threshold = 1; | |
33 optional Threshold fec_disabling_threshold = 2; | |
34 | |
35 // |time_constant_ms| is the time constant for an exponential filter, which | |
36 // is used for smoothing the packet loss fraction. | |
37 optional int32 time_constant_ms = 3; | |
38 } | |
39 | |
40 message FrameLengthController { | |
41 // Uplink packet loss fraction below which frame length can increase. | |
42 optional float fl_increasing_packet_loss_fraction = 1; | |
43 | |
44 // Uplink packet loss fraction below which frame length should decrease. | |
45 optional float fl_decreasing_packet_loss_fraction = 2; | |
46 | |
47 // Uplink bandwidth below which frame length can switch from 20ms to 60ms. | |
48 optional int32 fl_20ms_to_60ms_bandwidth_bps = 3; | |
49 | |
50 // Uplink bandwidth above which frame length should switch from 60ms to 20ms. | |
51 optional int32 fl_60ms_to_20ms_bandwidth_bps = 4; | |
52 } | |
53 | |
54 message ChannelController { | |
55 // Uplink bandwidth above which the number of encoded channels should switch | |
56 // from 1 to 2. | |
57 optional int32 channel_1_to_2_bandwidth_bps = 1; | |
58 | |
59 // Uplink bandwidth below which the number of encoded channels should switch | |
60 // from 2 to 1. | |
61 optional int32 channel_2_to_1_bandwidth_bps = 2; | |
62 } | |
63 | |
64 message DtxController { | |
65 // Uplink bandwidth below which DTX should be switched on. | |
66 optional int32 dtx_enabling_bandwidth_bps = 1; | |
67 | |
68 // Uplink bandwidth above which DTX should be switched off. | |
69 optional int32 dtx_disabling_bandwidth_bps = 2; | |
70 } | |
71 | |
72 message BitrateController {} | |
73 | |
74 message Controller { | |
75 message ScoringPoint { | |
76 // |ScoringPoint| is a subspace of network condition. It is used for | |
77 // comparing the significance of controllers. | |
78 optional int32 uplink_bandwidth_bps = 1; | |
79 optional float uplink_packet_loss_fraction = 2; | |
80 } | |
81 | |
82 // The distance from |scoring_point| to a given network condition defines | |
83 // the significance of this controller with respect that network condition. | |
84 // Shorter distance means higher significance. The significances of | |
85 // controllers determine their order in the processing pipeline. Controllers | |
86 // without |scoring_point| follow their default order in | |
87 // |ControllerManager::controllers|. | |
88 optional ScoringPoint scoring_point = 1; | |
89 | |
90 oneof controller { | |
91 FecController fec_controller = 21; | |
92 FrameLengthController frame_length_controller = 22; | |
93 ChannelController channel_controller = 23; | |
94 DtxController dtx_controller = 24; | |
95 BitrateController bitrate_controller = 25; | |
96 } | |
97 } | |
98 | |
99 message ControllerManager { | |
100 repeated Controller controllers = 1; | |
101 | |
102 // Least time since last reordering for a new reordering to be made. | |
103 optional int32 min_reordering_time_ms = 2; | |
104 | |
105 // Least squared distance from last scoring point for a new reordering to be | |
106 // made. | |
107 optional float min_reordering_squared_distance = 3; | |
108 } | |
OLD | NEW |