# multiudpsink

multiudpsink is a network sink that sends UDP packets to multiple clients. It can be combined with rtp payload encoders to implement RTP streaming.

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstBaseSink
                        ╰──GstMultiUDPSink

## Factory details

Authors: – Wim Taymans

Classification: – `Sink/Network`

Rank – none

Plugin – udp

Package – GStreamer Good Plug-ins

## Pad Templates

### `sink`

    ANY

Presence – always

Direction – sink

Object type – GstPad

## Signals

### client-added

    client_added_callback (GstElement * gstmultiudpsink,
                           gchararray host,
                           gint port,
                           gpointer udata)

    def client_added_callback (gstmultiudpsink, host, port, udata):
        #python callback for the 'client-added' signal

    function client_added_callback(gstmultiudpsink: GstElement * gstmultiudpsink, host: gchararray host, port: gint port, udata: gpointer udata): {
        // javascript callback for the 'client-added' signal
    }

Signal emitted when a new client is added to the list of clients.

Parameters:

`gstmultiudpsink` –

the sink emitting the signal

`host` –

the hostname/IP address of the added client

`port` –

the port of the added client

`udata` –
No description available

Flags: Run Last

### client-removed

    client_removed_callback (GstElement * gstmultiudpsink,
                             gchararray host,
                             gint port,
                             gpointer udata)

    def client_removed_callback (gstmultiudpsink, host, port, udata):
        #python callback for the 'client-removed' signal

    function client_removed_callback(gstmultiudpsink: GstElement * gstmultiudpsink, host: gchararray host, port: gint port, udata: gpointer udata): {
        // javascript callback for the 'client-removed' signal
    }

Signal emitted when a client is removed from the list of clients.

Parameters:

`gstmultiudpsink` –

the sink emitting the signal

`host` –

the hostname/IP address of the removed client

`port` –

the port of the removed client

`udata` –
No description available

Flags: Run Last

## Action Signals

### add

    g_signal_emit_by_name (gstmultiudpsink, "add", host, port);

    ret = gstmultiudpsink.emit ("add", host, port)

    let ret = gstmultiudpsink.emit ("add", host, port);

Add a client with destination host and port to the list of clients. When the same host/port pair is added multiple times, the send-duplicates property defines if the packets are sent multiple times to the same host/port pair or not.

When a host/port pair is added multiple times, an equal amount of remove calls must be performed to actually remove the host/port pair from the list of destinations.

Parameters:

`gstmultiudpsink` (GstElement *) –

the sink on which the signal is emitted

`host` (gchararray) –

the hostname/IP address of the client to add

`port` (gint) –

the port of the client to add

Flags: Run Last / Action

### clear

    g_signal_emit_by_name (gstmultiudpsink, "clear");

    ret = gstmultiudpsink.emit ("clear")

    let ret = gstmultiudpsink.emit ("clear");

Clear the list of clients.

Parameters:

`gstmultiudpsink` (GstElement *) –

the sink on which the signal is emitted

Flags: Run Last / Action

### get-stats

    g_signal_emit_by_name (gstmultiudpsink, "get-stats", host, port, &ret);

    ret = gstmultiudpsink.emit ("get-stats", host, port)

    let ret = gstmultiudpsink.emit ("get-stats", host, port);

Get the statistics of the client with destination host and port.

Parameters:

`gstmultiudpsink` (GstElement *) –

the sink on which the signal is emitted

`host` (gchararray) –

the hostname/IP address of the client to get stats on

`port` (gint) –

the port of the client to get stats on

Returns (GstStructure *) –

a GstStructure: bytes_sent, packets_sent, connect_time (in epoch nanoseconds), disconnect_time (in epoch nanoseconds)

Flags: Run Last / Action

### remove

    g_signal_emit_by_name (gstmultiudpsink, "remove", host, port);

    ret = gstmultiudpsink.emit ("remove", host, port)

    let ret = gstmultiudpsink.emit ("remove", host, port);

Remove the client with destination host and port from the list of clients.

Parameters:

`gstmultiudpsink` (GstElement *) –

the sink on which the signal is emitted

`host` (gchararray) –

the hostname/IP address of the client to remove

`port` (gint) –

the port of the client to remove

Flags: Run Last / Action

## Properties

### auto-multicast

    “auto-multicast” gboolean

Automatically join/leave the multicast groups, FALSE means user has to do it himself

Flags : Read / Write

Default value : true

### bind-address

    “bind-address” gchararray

Address to bind the socket to

Flags : Read / Write

Default value : NULL

### bind-port

    “bind-port” gint

Port to bind the socket to

Flags : Read / Write

Default value : 0

### buffer-size

    “buffer-size” gint

Size of the kernel send buffer in bytes, 0=default

Flags : Read / Write

Default value : 0

### bytes-served

    “bytes-served” guint64

Total number of bytes sent to all clients

Flags : Read

Default value : 0

### bytes-to-serve

    “bytes-to-serve” guint64

Number of bytes received to serve to clients

Flags : Read

Default value : 0

### clients

    “clients” gchararray

A comma separated list of host:port pairs with destinations

Flags : Read / Write

### close-socket

    “close-socket” gboolean

Close socket if passed as property on state change

Flags : Read / Write

Default value : true

### force-ipv4

    “force-ipv4” gboolean

Forcing the use of an IPv4 socket (DEPRECATED, has no effect anymore)

Flags : Read / Write

Default value : false

### loop

    “loop” gboolean

Used for setting the multicast loop parameter. TRUE = enable, FALSE = disable

Flags : Read / Write

Default value : true

### multicast-iface

    “multicast-iface” gchararray

The network interface on which to join the multicast group

Flags : Read / Write

Default value : NULL

### qos-dscp

    “qos-dscp” gint

Quality of Service, differentiated services code point (-1 default)

Flags : Read / Write

Default value : -1

### send-duplicates

    “send-duplicates” gboolean

When a destination/port pair is added multiple times, send packets multiple times as well

Flags : Read / Write

Default value : true

### socket

    “socket” GSocket *

Socket to use for UDP sending. (NULL == allocate)

Flags : Read / Write

### socket-v6

    “socket-v6” GSocket *

Socket to use for UDPv6 sending. (NULL == allocate)

Flags : Read / Write

### ttl

    “ttl” gint

Used for setting the unicast TTL parameter

Flags : Read / Write

Default value : 64

### ttl-mc

    “ttl-mc” gint

Used for setting the multicast TTL parameter

Flags : Read / Write

Default value : 1

### used-socket

    “used-socket” GSocket *

Socket currently in use for UDP sending. (NULL == no socket)

Flags : Read

### used-socket-v6

    “used-socket-v6” GSocket *

Socket currently in use for UDPv6 sending. (NULL == no socket)

Flags : Read

The results of the search are