multiudpsink

multiudpsink — Send data over the network via UDP

Synopsis

struct              GstMultiUDPSink;

Object Hierarchy

  GObject
   +----GInitiallyUnowned
         +----GstObject
               +----GstElement
                     +----GstBaseSink
                           +----GstMultiUDPSink
                                 +----GstUDPSink

Properties

  "bytes-served"             guint64               : Read
  "bytes-to-serve"           guint64               : Read
  "clients"                  gchar*                : Read / Write
  "closefd"                  gboolean              : Read / Write
  "sock"                     gint                  : Read
  "sockfd"                   gint                  : Read / Write
  "auto-multicast"           gboolean              : Read / Write
  "loop"                     gboolean              : Read / Write
  "qos-dscp"                 gint                  : Read / Write
  "ttl"                      gint                  : Read / Write
  "ttl-mc"                   gint                  : Read / Write
  "send-duplicates"          gboolean              : Read / Write
  "buffer-size"              gint                  : Read / Write
  "close-socket"             gboolean              : Read / Write
  "socket"                   GSocket*              : Read / Write
  "used-socket"              GSocket*              : Read
  "force-ipv4"               gboolean              : Read / Write
  "multicast-iface"          gchar*                : Read / Write
  "bind-address"             gchar*                : Read / Write
  "bind-port"                gint                  : Read / Write
  "socket-v6"                GSocket*              : Read / Write
  "used-socket-v6"           GSocket*              : Read

Signals

  "add"                                            : Action
  "clear"                                          : Action
  "client-added"                                   : Run Last
  "client-removed"                                 : Run Last
  "get-stats"                                      : Action
  "remove"                                         : Action

Description

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

Synopsis

Element Information

plugin

udp

author

Wim Taymans <wim.taymans@gmail.com>

class

Sink/Network

Element Pads

name

sink

direction

sink

presence

always

details

ANY

Details

struct GstMultiUDPSink

struct GstMultiUDPSink;

Property Details

The "bytes-served" property

  "bytes-served"             guint64               : Read

Total number of bytes sent to all clients.

Default value: 0


The "bytes-to-serve" property

  "bytes-to-serve"           guint64               : Read

Number of bytes received to serve to clients.

Default value: 0


The "clients" property

  "clients"                  gchar*                : Read / Write

A comma separated list of host:port pairs with destinations.

Default value: NULL


The "closefd" property

  "closefd"                  gboolean              : Read / Write

Close sockfd if passed as property on state change.

Default value: TRUE


The "sock" property

  "sock"                     gint                  : Read

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

Allowed values: >= G_MAXULONG

Default value: -1


The "sockfd" property

  "sockfd"                   gint                  : Read / Write

Socket to use for UDP sending. (-1 == allocate).

Allowed values: >= G_MAXULONG

Default value: -1


The "auto-multicast" property

  "auto-multicast"           gboolean              : Read / Write

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

Default value: TRUE


The "loop" property

  "loop"                     gboolean              : Read / Write

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

Default value: TRUE


The "qos-dscp" property

  "qos-dscp"                 gint                  : Read / Write

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

Allowed values: [G_MAXULONG,63]

Default value: -1


The "ttl" property

  "ttl"                      gint                  : Read / Write

Used for setting the unicast TTL parameter.

Allowed values: [0,255]

Default value: 64


The "ttl-mc" property

  "ttl-mc"                   gint                  : Read / Write

Used for setting the multicast TTL parameter.

Allowed values: [0,255]

Default value: 1


The "send-duplicates" property

  "send-duplicates"          gboolean              : Read / Write

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

Default value: TRUE


The "buffer-size" property

  "buffer-size"              gint                  : Read / Write

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

Allowed values: >= 0

Default value: 0


The "close-socket" property

  "close-socket"             gboolean              : Read / Write

Close socket if passed as property on state change.

Default value: TRUE


The "socket" property

  "socket"                   GSocket*              : Read / Write

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


The "used-socket" property

  "used-socket"              GSocket*              : Read

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


The "force-ipv4" property

  "force-ipv4"               gboolean              : Read / Write

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

Default value: FALSE


The "multicast-iface" property

  "multicast-iface"          gchar*                : Read / Write

The network interface on which to join the multicast group.

Default value: NULL


The "bind-address" property

  "bind-address"             gchar*                : Read / Write

Address to bind the socket to.

Default value: NULL


The "bind-port" property

  "bind-port"                gint                  : Read / Write

Port to bind the socket to.

Allowed values: [0,65535]

Default value: 0


The "socket-v6" property

  "socket-v6"                GSocket*              : Read / Write

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


The "used-socket-v6" property

  "used-socket-v6"           GSocket*              : Read

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

Signal Details

The "add" signal

void                user_function                      (GstMultiUDPSink *gstmultiudpsink,
                                                        gchar           *host,
                                                        gint             port,
                                                        gpointer         user_data)            : Action

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.

gstmultiudpsink :

the sink on which the signal is emitted

host :

the hostname/IP address of the client to add

port :

the port of the client to add

user_data :

user data set when the signal handler was connected.

The "clear" signal

void                user_function                      (GstMultiUDPSink *gstmultiudpsink,
                                                        gpointer         user_data)            : Action

Clear the list of clients.

gstmultiudpsink :

the sink on which the signal is emitted

user_data :

user data set when the signal handler was connected.

The "client-added" signal

void                user_function                      (GstMultiUDPSink *gstmultiudpsink,
                                                        gchar           *host,
                                                        gint             port,
                                                        gpointer         user_data)            : Run Last

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

gstmultiudpsink :

the sink emitting the signal

host :

the hostname/IP address of the added client

port :

the port of the added client

user_data :

user data set when the signal handler was connected.

The "client-removed" signal

void                user_function                      (GstMultiUDPSink *gstmultiudpsink,
                                                        gchar           *host,
                                                        gint             port,
                                                        gpointer         user_data)            : Run Last

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

gstmultiudpsink :

the sink emitting the signal

host :

the hostname/IP address of the removed client

port :

the port of the removed client

user_data :

user data set when the signal handler was connected.

The "get-stats" signal

GstStructure*       user_function                      (GstMultiUDPSink *gstmultiudpsink,
                                                        gchar           *host,
                                                        gint             port,
                                                        gpointer         user_data)            : Action

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

gstmultiudpsink :

the sink on which the signal is emitted

host :

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

port :

the port of the client to get stats on

user_data :

user data set when the signal handler was connected.

Returns :

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

The "remove" signal

void                user_function                      (GstMultiUDPSink *gstmultiudpsink,
                                                        gchar           *host,
                                                        gint             port,
                                                        gpointer         user_data)            : Action

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

gstmultiudpsink :

the sink on which the signal is emitted

host :

the hostname/IP address of the client to remove

port :

the port of the client to remove

user_data :

user data set when the signal handler was connected.

See Also

udpsink, multifdsink