write: Support audio formats != 16 bit little endian.
[paraslash.git] / ggo / server.m4
index 30c3b41..7f2d975 100644 (file)
@@ -9,6 +9,7 @@ section "General options"
 </qu>
 
 include(loglevel.m4)
 </qu>
 
 include(loglevel.m4)
+include(log_timing.m4)
 include(color.m4)
 include(daemon.m4)
 include(user.m4)
 include(color.m4)
 include(daemon.m4)
 include(user.m4)
@@ -104,7 +105,7 @@ option "afs_socket" s
 #~~~~~~~~~~~~~~~~~~~~
 "Command socket for afs"
 string typestr="path"
 #~~~~~~~~~~~~~~~~~~~~
 "Command socket for afs"
 string typestr="path"
-default="/var/paraslash/afs_command_socket"
+default="/var/paraslash/afs_command_socket-0.4"
 optional
 details="
        For each server command that is handled by the audio file
 optional
 details="
        For each server command that is handled by the audio file
@@ -237,22 +238,79 @@ details="
        See http_max_clients for details.
 "
 
        See http_max_clients for details.
 "
 
+option "dccp_max_slice_size" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+"Upper bound for the FEC slice size"
+int typestr = "size"
+optional
+default = "0"
+details = "
+       If this value is non-positive (the default) the dccp sender
+       uses the maximum packet size (MPS) of the connection as the
+       slice size. The MPS is a network parameter and depends on
+       the path maximum transmission unit (path MTU) of an incoming
+       connection, i.e. on the largest packet size that can be
+       transmitted without causing fragmentation.
+
+       This option allows to use a value less than the MPS in order
+       to fine-tune application performance. Values greater than
+       the MPS of an incoming connection can not be set.
+"
+
+option "dccp_data_slices_per_group" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+"The number of non-redundant slices per FEC group"
+int typestr = "num"
+optional
+default = "3"
+details = "
+       This determines the number of slices in each FEC group that are
+       necessary to decode the group. The given number must be smaller
+       than the value of the dccp_slices_per_group option below.
+
+       Note that the duration of a FEC group is proportional to the
+       product dccp_max_slice_size * dccp_data_slices_per_group.
+"
+
+option "dccp_slices_per_group" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+"The total number of slices per FEC group"
+int typestr = "num"
+optional
+default = "4"
+details = "
+       This value must be larger than the value given for above
+       dccp_data_slices_per_group above. The difference being the
+       number of redundant slices per group, i.e.  the number of
+       data packets that may be lost without causing interruptions
+       of the resulting audio stream.
+
+       Increase this value if for lossy networks.
+"
+
 ####################
 section "udp sender"
 ####################
 
 option "udp_target" -
 #~~~~~~~~~~~~~~~~~~~~
 ####################
 section "udp sender"
 ####################
 
 option "udp_target" -
 #~~~~~~~~~~~~~~~~~~~~
-"add udp target"
-string typestr="a.b.c.d:p"
+"add udp target with optional port"
+string typestr="host[:port]"
 optional
 multiple
 details="
 optional
 multiple
 details="
-       Add given host/port to the list of targets.  This option
-       can be given multiple times. Example: '224.0.1.38:1500'
-       instructs the udp sender to send to udp port 1500 on host
-       224.0.1.38 (unassigned ip in the Local Network Control Block
-       224.0.0/24). This is useful for multicast streaming.
+       Add given host/port to the list of targets. The 'host' argument
+       can be either an IPv4/v6 address or hostname (RFC 3986 syntax).
+       The 'port' argument is an optional port number. If the 'port'
+       part is absent, the 'udp_default_port' value is used.
+
+       The following examples are possible targets:
+       '10.10.1.2:8000' (host:port); '10.10.1.2' (with default port);
+       '224.0.1.38:1500' (IPv4 multicast); 'localhost:8001' (hostname
+       with port); '[::1]:8001' (IPv6 localhost); '[badc0de::1]' (IPv6
+       host with default port); '[FF00::beef]:1500' (IPv6 multicast).
+
+       This option can be given multiple times, for multiple targets.
 "
 
 option "udp_no_autostart" -
 "
 
 option "udp_no_autostart" -
@@ -271,6 +329,12 @@ int typestr="port"
 default="8000"
 optional
 
 default="8000"
 optional
 
+option "udp_mcast_iface" -
+#~~~~~~~~~~~~~~~~~~~~~~~~~~
+"outgoing udp multicast interface"
+string
+optional
+
 option "udp_header_interval" H
 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 "duration for sending header"
 option "udp_header_interval" H
 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 "duration for sending header"
@@ -292,11 +356,19 @@ option "udp_ttl" t
 #~~~~~~~~~~~~~~~~~
 "set time to live value"
 int typestr="num"
 #~~~~~~~~~~~~~~~~~
 "set time to live value"
 int typestr="num"
-default="10"
+default="-1"
 optional
 details="
 optional
 details="
-       This option instructs the udp sender to set the time to live to
-       \"num\" for the sending udp socket. Only useful for multicast
-       udp streaming.
+       This option applies exclusively to multicast UDPv4/v6 streaming.
+
+       For the sending UDPv4 socket it sets the multicast Time-To-Live
+       value to \"num\".  Traditional TTL scope values are: 0=host,
+       1=network, 32=same site, 64=same region, 128=same continent,
+       255=unrestricted. Please note however that this scoping is not
+       a good solution: RFC 2365 e.g. presents a better alternative.
+
+       When using UDPv6 multicasting, the option sets the number of
+       multicast hops (as described in RFC 3493); a value of -1
+       allows the kernel to auto-select the hop value.
 "
 </qu>
 "
 </qu>