Skip to content

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

Was this page helpful?