Skip to content

sockout

UDP/TCP output

Register name used to load filter: sockout
This filter may be automatically loaded during graph resolution.

This filter handles generic output sockets (mono-directional) in blocking mode only.
The filter can work in server mode, waiting for source connections, or in client mode, directly connecting to a server.
In server mode, the filter can be instructed to keep running at the end of the stream.
In server mode, the default behavior is to keep input packets when no more clients are connected; this can be adjusted though the kp option, however there is no realtime regulation of how fast packets are dropped.
If your sources are not real time, consider adding a real-time scheduler in the chain (cf reframer filter), or set the send rate option.

  • UDP sockets are used for destinations URLs formatted as udp://NAME
  • TCP sockets are used for destinations URLs formatted as tcp://NAME
  • UDP unix domain sockets are used for destinations URLs formatted as udpu://NAME
  • TCP unix domain sockets are used for destinations URLs formatted as tcpu://NAME

When ports are specified in the URL and the default option separators are used (see gpac -h doc), the URL must either:

  • have a trailing '/', e.g. udp://localhost:1234/[:opts]
  • use gpac escape, e.g. udp://localhost:1234[:gpac:opts]

The socket output can be configured to drop or revert packet order for test purposes.
A window size in packets is specified as the drop/revert fraction denominator, and the index of the packet to drop/revert is given as the numerator/
If the numerator is 0, a packet is randomly chosen in that window.
Example

:pckd=4/10

This drops every 4th packet of each 10 packet window.
Example
:pckr=0/100

This reverts the send order of one random packet in each 100 packet window.

Options

dst (cstr): URL of destination
sockbuf (uint, default: 65536): block size used to read file
port (uint, default: 1234): default port if not specified
ifce (cstr): default multicast interface
ext (str): file extension of pipe data
mime (str): mime type of pipe data
listen (bool, default: false): indicate the output socket works in server mode
maxc (uint, default: +I): max number of concurrent connections
ka (bool, default: false): keep socket alive if no more connections
kp (bool, default: true): keep packets in queue if no more clients
start (dbl, default: 0.0): set playback start offset. A negative value means percent of media duration with -1 equal to duration
speed (dbl, default: 1.0): set playback speed. If negative and start is 0, start is set to -1
rate (uint, default: 0): set send rate in bps, disabled by default (as fast as possible)
pckr (frac, default: 0/0): reverse packet every N
pckd (frac, default: 0/0): drop packet every N
ttl (uint, default: 0, minmax: 0-127): multicast TTL