Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(242)

Side by Side Diff: webrtc/modules/audio_coding/audio_network_adaptor/config.proto

Issue 2364403004: Creating controller manager from config string in audio network adaptor. (Closed)
Patch Set: rebasing Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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;
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698