1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
Telnet Remote Control
=====================
ODR-DabMux can be configured to set up a simple telnet remote control that can
be used to modify some parameters without restarting the multiplexer. The same
functionality available through telnet is also available over a ZeroMQ REQ/REP
socket, to make automation easier.
The server only listens on localhost for security reasons. Remote access should
be done using a VPN or SSH port forwarding.
The principle is that parts of ODR-DabMux which have modifiable parameters
register themselves as remote-controllable modules, and also register
parameters. Each parameter has a value, that can be read/written using the
get/set commands.
The interface is quite simple, and supports the following commands:
> help
list
* Lists the modules that are loaded and their parameters
show MODULE
* Lists all parameters and their values from module MODULE
get MODULE PARAMETER
* Gets the value for the specified PARAMETER from module MODULE
set MODULE PARAMETER VALUE
* Sets the value for the PARAMETER ofr module MODULE
quit
* Terminate this session
Example
=======
In this example, there is one service whose unique id (set in the configuration
file) is 'srv-fb', one subchannel with uid 'sub-fb' and one component 'comp-fb'.
The command 'list' will show all exported parameters, and a small description:
> list
srv-fb
label : Label and shortlabel [label,short]
sub-fb
buffer : Size of the input buffer [aac superframes]
enable : If the input is enabled. Set to zero to empty the buffer.
comp-fb
label : Label and shortlabel [label,short]
The indication in square brackets can help you understand the format of the
values, or the units used. e.g. for AAC subchannels, the 'buffer' parameter
has values that are counted in number of AAC superframes. It is implicit that a
number is meant.
In contrast to this, the 'label' parameters of both services and components take
a "label,short-label" pair, separated by a comma.
Binary values accept the value 0 as false, and 1 as true.
Remarks concerning specific modules
===================================
ZMQ input
---------
The ZMQ input (both for MPEG and AAC+) export a 'buffer' parameter which
defines how many frames must be in the buffer *before* the input starts
streaming.
If you increase the size of the buffer, it will not fill up by itself (unless
there is a clock drift between the mux and the encoder).
In order to force the buffer to fill up, disable the input by setting 'enable'
to 0, and, once the buffer is empty, re-enable it. It will fill to the desired
value.
Labels (Components and Services)
--------------------------------
The restrictions on short-labels, namely that they can only consist of letters
appearing in the labels, and that they must be maximum 8 characters long, are
verified by the 'label' parameters.
If you try to set an invalid label/short-label combination, you will get an
error, and the label is unchanged:
example:
> set comp-fb label Programme1,prog1
comp-fb short label prog1 is not subset of label 'Programme1'
example:
> set comp-fb label Programme1,Programme
comp-fb short label Programme is too long (max 8 characters)
TODO
====
In addition to adding more configurable features to the RC, it will
be necessary to add the ability to set several parameters at once,
atomically.
That's already somewhat of an issue with the labels. (How do you set a label
that contains a comma ? Right now you cannot.)
|