| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
| <html> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>multisocketsink: GStreamer Base Plugins 1.0 Plugins Reference Manual</title> |
| <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> |
| <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual"> |
| <link rel="up" href="ch01.html" title="gst-plugins-base Elements"> |
| <link rel="prev" href="gst-plugins-base-plugins-multifdsink.html" title="multifdsink"> |
| <link rel="next" href="gst-plugins-base-plugins-oggaviparse.html" title="oggaviparse"> |
| <meta name="generator" content="GTK-Doc V1.25 (XML mode)"> |
| <link rel="stylesheet" href="style.css" type="text/css"> |
| </head> |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> |
| <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> |
| <td width="100%" align="left" class="shortcuts"> |
| <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> |
| <a href="#gst-plugins-base-plugins-multisocketsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> |
| <a href="#gst-plugins-base-plugins-multisocketsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties"> <span class="dim">|</span> |
| <a href="#gst-plugins-base-plugins-multisocketsink.properties" class="shortcut">Properties</a></span><span id="nav_signals"> <span class="dim">|</span> |
| <a href="#gst-plugins-base-plugins-multisocketsink.signals" class="shortcut">Signals</a></span> |
| </td> |
| <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> |
| <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> |
| <td><a accesskey="p" href="gst-plugins-base-plugins-multifdsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> |
| <td><a accesskey="n" href="gst-plugins-base-plugins-oggaviparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> |
| </tr></table> |
| <div class="refentry"> |
| <a name="gst-plugins-base-plugins-multisocketsink"></a><div class="titlepage"></div> |
| <div class="refnamediv"><table width="100%"><tr> |
| <td valign="top"> |
| <h2><span class="refentrytitle"><a name="gst-plugins-base-plugins-multisocketsink.top_of_page"></a>multisocketsink</span></h2> |
| <p>multisocketsink</p> |
| </td> |
| <td class="gallery_image" valign="top" align="right"></td> |
| </tr></table></div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-plugins-multisocketsink.properties"></a><h2>Properties</h2> |
| <div class="informaltable"><table class="informaltable" border="0"> |
| <colgroup> |
| <col width="150px" class="properties_type"> |
| <col width="300px" class="properties_name"> |
| <col width="200px" class="properties_flags"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> |
| <td class="property_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink--send-dispatched" title="The “send-dispatched” property">send-dispatched</a></td> |
| <td class="property_flags">Read / Write</td> |
| </tr> |
| <tr> |
| <td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td> |
| <td class="property_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink--send-messages" title="The “send-messages” property">send-messages</a></td> |
| <td class="property_flags">Read / Write</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-plugins-multisocketsink.signals"></a><h2>Signals</h2> |
| <div class="informaltable"><table class="informaltable" border="0"> |
| <colgroup> |
| <col width="150px" class="signals_return"> |
| <col width="300px" class="signals_name"> |
| <col width="200px" class="signals_flags"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="signal_type"><span class="returnvalue">void</span></td> |
| <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-add" title="The “add” signal">add</a></td> |
| <td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></td> |
| </tr> |
| <tr> |
| <td class="signal_type"><span class="returnvalue">void</span></td> |
| <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-add-full" title="The “add-full” signal">add-full</a></td> |
| <td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></td> |
| </tr> |
| <tr> |
| <td class="signal_type"><span class="returnvalue">void</span></td> |
| <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-client-added" title="The “client-added” signal">client-added</a></td> |
| <td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> |
| </tr> |
| <tr> |
| <td class="signal_type"><span class="returnvalue">void</span></td> |
| <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-client-removed" title="The “client-removed” signal">client-removed</a></td> |
| <td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> |
| </tr> |
| <tr> |
| <td class="signal_type"><span class="returnvalue">void</span></td> |
| <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-client-socket-removed" title="The “client-socket-removed” signal">client-socket-removed</a></td> |
| <td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> |
| </tr> |
| <tr> |
| <td class="signal_type"> |
| <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="returnvalue">GstStructure</span></a>*</td> |
| <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-get-stats" title="The “get-stats” signal">get-stats</a></td> |
| <td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></td> |
| </tr> |
| <tr> |
| <td class="signal_type"><span class="returnvalue">void</span></td> |
| <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-remove" title="The “remove” signal">remove</a></td> |
| <td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></td> |
| </tr> |
| <tr> |
| <td class="signal_type"><span class="returnvalue">void</span></td> |
| <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-remove-flush" title="The “remove-flush” signal">remove-flush</a></td> |
| <td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <a name="GstMultiSocketSink"></a><div class="refsect1"> |
| <a name="gst-plugins-base-plugins-multisocketsink.other"></a><h2>Types and Values</h2> |
| <div class="informaltable"><table class="informaltable" width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="name"> |
| <col class="description"> |
| </colgroup> |
| <tbody><tr> |
| <td class="datatype_keyword">struct</td> |
| <td class="function_name"><a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-struct" title="struct GstMultiSocketSink">GstMultiSocketSink</a></td> |
| </tr></tbody> |
| </table></div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-plugins-multisocketsink.object-hierarchy"></a><h2>Object Hierarchy</h2> |
| <pre class="screen"> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a> |
| <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> |
| <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a> |
| <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a> |
| <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseSink.html#GstBaseSink-struct">GstBaseSink</a> |
| <span class="lineart">╰──</span> GstMultiHandleSink |
| <span class="lineart">╰──</span> GstMultiSocketSink |
| <span class="lineart">╰──</span> <a class="link" href="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink">GstTCPServerSink</a> |
| </pre> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-plugins-multisocketsink.description"></a><h2>Description</h2> |
| <p>This plugin writes incoming data to a set of file descriptors. The |
| file descriptors can be added to multisocketsink by emitting the <a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-add" title="The “add” signal"><span class="type">“add”</span></a> signal. |
| For each descriptor added, the <a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-client-added" title="The “client-added” signal"><span class="type">“client-added”</span></a> signal will be called.</p> |
| <p>A client can also be added with the <a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-add-full" title="The “add-full” signal"><span class="type">“add-full”</span></a> signal |
| that allows for more control over what and how much data a client |
| initially receives.</p> |
| <p>Clients can be removed from multisocketsink by emitting the <a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-remove" title="The “remove” signal"><span class="type">“remove”</span></a> signal. For |
| each descriptor removed, the <a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-client-removed" title="The “client-removed” signal"><span class="type">“client-removed”</span></a> signal will be called. The |
| <a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-client-removed" title="The “client-removed” signal"><span class="type">“client-removed”</span></a> signal can also be fired when multisocketsink decides that a |
| client is not active anymore or, depending on the value of the |
| <span class="type">“recover-policy”</span> property, if the client is reading too slowly. |
| In all cases, multisocketsink will never close a file descriptor itself. |
| The user of multisocketsink is responsible for closing all file descriptors. |
| This can for example be done in response to the <span class="type">“client-fd-removed”</span> signal. |
| Note that multisocketsink still has a reference to the file descriptor when the |
| <a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-client-removed" title="The “client-removed” signal"><span class="type">“client-removed”</span></a> signal is emitted, so that "get-stats" can be performed on |
| the descriptor; it is therefore not safe to close the file descriptor in |
| the <a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-client-removed" title="The “client-removed” signal"><span class="type">“client-removed”</span></a> signal handler, and you should use the |
| <span class="type">“client-fd-removed”</span> signal to safely close the fd.</p> |
| <p>Multisocketsink internally keeps a queue of the incoming buffers and uses a |
| separate thread to send the buffers to the clients. This ensures that no |
| client write can block the pipeline and that clients can read with different |
| speeds.</p> |
| <p>When adding a client to multisocketsink, the <span class="type">“sync-method”</span> property will define |
| which buffer in the queued buffers will be sent first to the client. Clients |
| can be sent the most recent buffer (which might not be decodable by the |
| client if it is not a keyframe), the next keyframe received in |
| multisocketsink (which can take some time depending on the keyframe rate), or the |
| last received keyframe (which will cause a simple burst-on-connect). |
| Multisocketsink will always keep at least one keyframe in its internal buffers |
| when the sync-mode is set to latest-keyframe.</p> |
| <p>There are additional values for the <span class="type">“sync-method”</span> |
| property to allow finer control over burst-on-connect behaviour. By selecting |
| the 'burst' method a minimum burst size can be chosen, 'burst-keyframe' |
| additionally requires that the burst begin with a keyframe, and |
| 'burst-with-keyframe' attempts to burst beginning with a keyframe, but will |
| prefer a minimum burst size even if it requires not starting with a keyframe.</p> |
| <p>Multisocketsink can be instructed to keep at least a minimum amount of data |
| expressed in time or byte units in its internal queues with the |
| <span class="type">“time-min”</span> and <span class="type">“bytes-min”</span> properties respectively. |
| These properties are useful if the application adds clients with the |
| <a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-add-full" title="The “add-full” signal"><span class="type">“add-full”</span></a> signal to make sure that a burst connect can |
| actually be honored. </p> |
| <p>When streaming data, clients are allowed to read at a different rate than |
| the rate at which multisocketsink receives data. If the client is reading too |
| fast, no data will be send to the client until multisocketsink receives more |
| data. If the client, however, reads too slowly, data for that client will be |
| queued up in multisocketsink. Two properties control the amount of data |
| (buffers) that is queued in multisocketsink: <span class="type">“buffers-max”</span> and |
| <span class="type">“buffers-soft-max”</span>. A client that falls behind by |
| <span class="type">“buffers-max”</span> is removed from multisocketsink forcibly.</p> |
| <p>A client with a lag of at least <span class="type">“buffers-soft-max”</span> enters the recovery |
| procedure which is controlled with the <span class="type">“recover-policy”</span> property. |
| A recover policy of NONE will do nothing, RESYNC_LATEST will send the most recently |
| received buffer as the next buffer for the client, RESYNC_SOFT_LIMIT |
| positions the client to the soft limit in the buffer queue and |
| RESYNC_KEYFRAME positions the client at the most recent keyframe in the |
| buffer queue.</p> |
| <p>multisocketsink will by default synchronize on the clock before serving the |
| buffers to the clients. This behaviour can be disabled by setting the sync |
| property to FALSE. Multisocketsink will by default not do QoS and will never |
| drop late buffers.</p> |
| <div class="refsynopsisdiv"> |
| <h2>Synopsis</h2> |
| <div class="refsect2"> |
| <a name="id-1.2.22.8.12.1"></a><h3>Element Information</h3> |
| <div class="variablelist"><table border="0" class="variablelist"> |
| <colgroup> |
| <col align="left" valign="top"> |
| <col> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td><p><span class="term">plugin</span></p></td> |
| <td> |
| <a class="link" href="gst-plugins-base-plugins-plugin-tcp.html#plugin-tcp">tcp</a> |
| </td> |
| </tr> |
| <tr> |
| <td><p><span class="term">author</span></p></td> |
| <td>Thomas Vander Stichele <thomas at apestaart dot org>, Wim Taymans <wim@fluendo.com>, Sebastian Dröge <sebastian.droege@collabora.co.uk></td> |
| </tr> |
| <tr> |
| <td><p><span class="term">class</span></p></td> |
| <td>Sink/Network</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="id-1.2.22.8.12.2"></a><h3>Element Pads</h3> |
| <div class="variablelist"><table border="0" class="variablelist"> |
| <colgroup> |
| <col align="left" valign="top"> |
| <col> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td><p><span class="term">name</span></p></td> |
| <td>sink</td> |
| </tr> |
| <tr> |
| <td><p><span class="term">direction</span></p></td> |
| <td>sink</td> |
| </tr> |
| <tr> |
| <td><p><span class="term">presence</span></p></td> |
| <td>always</td> |
| </tr> |
| <tr> |
| <td><p><span class="term">details</span></p></td> |
| <td>ANY</td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-plugins-multisocketsink.functions_details"></a><h2>Functions</h2> |
| <p></p> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-plugins-multisocketsink.other_details"></a><h2>Types and Values</h2> |
| <div class="refsect2"> |
| <a name="GstMultiSocketSink-struct"></a><h3>struct GstMultiSocketSink</h3> |
| <pre class="programlisting">struct GstMultiSocketSink;</pre> |
| <p>The multisocketsink object structure.</p> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-plugins-multisocketsink.property-details"></a><h2>Property Details</h2> |
| <div class="refsect2"> |
| <a name="GstMultiSocketSink--send-dispatched"></a><h3>The <code class="literal">“send-dispatched”</code> property</h3> |
| <pre class="programlisting"> “send-dispatched” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> |
| <p>Sends a GstNetworkMessageDispatched event upstream whenever a buffer |
| is sent to a client. |
| The event is a CUSTOM event name GstNetworkMessageDispatched and |
| contains:</p> |
| <p> "object" G_TYPE_OBJECT : the object identifying the client |
| "buffer" GST_TYPE_BUFFER : the buffer sent to the client</p> |
| <p>Flags: Read / Write</p> |
| <p>Default value: FALSE</p> |
| <p class="since">Since: 1.8.0</p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstMultiSocketSink--send-messages"></a><h3>The <code class="literal">“send-messages”</code> property</h3> |
| <pre class="programlisting"> “send-messages” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre> |
| <p>Sends a GstNetworkMessage event upstream whenever a buffer |
| is received from a client. |
| The event is a CUSTOM event name GstNetworkMessage and contains:</p> |
| <p> "object" G_TYPE_OBJECT : the object identifying the client |
| "buffer" GST_TYPE_BUFFER : the buffer with data received from the |
| client</p> |
| <p>Flags: Read / Write</p> |
| <p>Default value: FALSE</p> |
| <p class="since">Since: 1.8.0</p> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-plugins-multisocketsink.signal-details"></a><h2>Signal Details</h2> |
| <div class="refsect2"> |
| <a name="GstMultiSocketSink-add"></a><h3>The <code class="literal">“add”</code> signal</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> |
| user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink, |
| <a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a> *socket, |
| <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> |
| <p>Hand the given open socket to multisocketsink to write to.</p> |
| <div class="refsect3"> |
| <a name="GstMultiSocketSink-add.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="parameters_name"> |
| <col class="parameters_description"> |
| <col width="200px" class="parameters_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="parameter_name"><p>gstmultisocketsink</p></td> |
| <td class="parameter_description"><p>the multisocketsink element to emit this signal on</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>socket</p></td> |
| <td class="parameter_description"><p>the socket to add to multisocketsink</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>user_data</p></td> |
| <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstMultiSocketSink-add-full"></a><h3>The <code class="literal">“add-full”</code> signal</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> |
| user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink, |
| <a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a> *socket, |
| <span class="type">GstMultiHandleSinkSyncMethod</span> sync, |
| <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format_min, |
| <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> value_min, |
| <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format_max, |
| <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> value_max, |
| <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> |
| <p>Hand the given open socket to multisocketsink to write to and |
| specify the burst parameters for the new connection.</p> |
| <div class="refsect3"> |
| <a name="GstMultiSocketSink-add-full.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="parameters_name"> |
| <col class="parameters_description"> |
| <col width="200px" class="parameters_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="parameter_name"><p>gstmultisocketsink</p></td> |
| <td class="parameter_description"><p>the multisocketsink element to emit this signal on</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>socket</p></td> |
| <td class="parameter_description"><p>the socket to add to multisocketsink</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>sync</p></td> |
| <td class="parameter_description"><p>the sync method to use</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>format_min</p></td> |
| <td class="parameter_description"><p>the format of <em class="parameter"><code>value_min</code></em> |
| </p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>value_min</p></td> |
| <td class="parameter_description"><p>the minimum amount of data to burst expressed in |
| <em class="parameter"><code>format_min</code></em> |
| units.</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>format_max</p></td> |
| <td class="parameter_description"><p>the format of <em class="parameter"><code>value_max</code></em> |
| </p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>value_max</p></td> |
| <td class="parameter_description"><p>the maximum amount of data to burst expressed in |
| <em class="parameter"><code>format_max</code></em> |
| units.</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>user_data</p></td> |
| <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstMultiSocketSink-client-added"></a><h3>The <code class="literal">“client-added”</code> signal</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> |
| user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink, |
| <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct"><span class="type">GObject</span></a> *socket, |
| <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> |
| <p>The given socket was added to multisocketsink. This signal will |
| be emitted from the streaming thread so application should be prepared |
| for that.</p> |
| <div class="refsect3"> |
| <a name="GstMultiSocketSink-client-added.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="parameters_name"> |
| <col class="parameters_description"> |
| <col width="200px" class="parameters_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="parameter_name"><p>gstmultisocketsink</p></td> |
| <td class="parameter_description"><p>the multisocketsink element that emitted this signal</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>socket</p></td> |
| <td class="parameter_description"><p>the socket that was added to multisocketsink</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>user_data</p></td> |
| <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstMultiSocketSink-client-removed"></a><h3>The <code class="literal">“client-removed”</code> signal</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> |
| user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink, |
| <a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a> *socket, |
| <span class="type">GstMultiHandleSinkClientStatus</span> status, |
| <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> |
| <p>The given socket is about to be removed from multisocketsink. This |
| signal will be emitted from the streaming thread so applications should |
| be prepared for that.</p> |
| <p><em class="parameter"><code>gstmultisocketsink</code></em> |
| still holds a handle to <em class="parameter"><code>socket</code></em> |
| so it is possible to call |
| the get-stats signal from this callback. For the same reason it is |
| not safe to <code class="function">close()</code> and reuse <em class="parameter"><code>socket</code></em> |
| in this callback.</p> |
| <div class="refsect3"> |
| <a name="GstMultiSocketSink-client-removed.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="parameters_name"> |
| <col class="parameters_description"> |
| <col width="200px" class="parameters_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="parameter_name"><p>gstmultisocketsink</p></td> |
| <td class="parameter_description"><p>the multisocketsink element that emitted this signal</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>socket</p></td> |
| <td class="parameter_description"><p>the socket that is to be removed from multisocketsink</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>status</p></td> |
| <td class="parameter_description"><p>the reason why the client was removed</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>user_data</p></td> |
| <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstMultiSocketSink-client-socket-removed"></a><h3>The <code class="literal">“client-socket-removed”</code> signal</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> |
| user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink, |
| <a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a> *socket, |
| <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> |
| <p>The given socket was removed from multisocketsink. This signal will |
| be emitted from the streaming thread so applications should be prepared |
| for that.</p> |
| <p>In this callback, <em class="parameter"><code>gstmultisocketsink</code></em> |
| has removed all the information |
| associated with <em class="parameter"><code>socket</code></em> |
| and it is therefore not possible to call get-stats |
| with <em class="parameter"><code>socket</code></em> |
| . It is however safe to <code class="function">close()</code> and reuse <em class="parameter"><code>fd</code></em> |
| in the callback.</p> |
| <div class="refsect3"> |
| <a name="GstMultiSocketSink-client-socket-removed.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="parameters_name"> |
| <col class="parameters_description"> |
| <col width="200px" class="parameters_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="parameter_name"><p>gstmultisocketsink</p></td> |
| <td class="parameter_description"><p>the multisocketsink element that emitted this signal</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>socket</p></td> |
| <td class="parameter_description"><p>the socket that was removed from multisocketsink</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>user_data</p></td> |
| <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstMultiSocketSink-get-stats"></a><h3>The <code class="literal">“get-stats”</code> signal</h3> |
| <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="returnvalue">GstStructure</span></a>* |
| user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink, |
| <a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a> *socket, |
| <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> |
| <p>Get statistics about <em class="parameter"><code>socket</code></em> |
| . This function returns a GstStructure.</p> |
| <div class="refsect3"> |
| <a name="GstMultiSocketSink-get-stats.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="parameters_name"> |
| <col class="parameters_description"> |
| <col width="200px" class="parameters_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="parameter_name"><p>gstmultisocketsink</p></td> |
| <td class="parameter_description"><p>the multisocketsink element to emit this signal on</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>socket</p></td> |
| <td class="parameter_description"><p>the socket to get stats of from multisocketsink</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>user_data</p></td> |
| <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <div class="refsect3"> |
| <a name="GstMultiSocketSink-get-stats.returns"></a><h4>Returns</h4> |
| <p> a GstStructure with the statistics. The structure contains |
| values that represent: total number of bytes sent, time |
| when the client was added, time when the client was |
| disconnected/removed, time the client is/was active, last activity |
| time (in epoch seconds), number of buffers dropped. |
| All times are expressed in nanoseconds (GstClockTime).</p> |
| </div> |
| <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstMultiSocketSink-remove"></a><h3>The <code class="literal">“remove”</code> signal</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> |
| user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink, |
| <a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a> *socket, |
| <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> |
| <p>Remove the given open socket from multisocketsink.</p> |
| <div class="refsect3"> |
| <a name="GstMultiSocketSink-remove.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="parameters_name"> |
| <col class="parameters_description"> |
| <col width="200px" class="parameters_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="parameter_name"><p>gstmultisocketsink</p></td> |
| <td class="parameter_description"><p>the multisocketsink element to emit this signal on</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>socket</p></td> |
| <td class="parameter_description"><p>the socket to remove from multisocketsink</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>user_data</p></td> |
| <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstMultiSocketSink-remove-flush"></a><h3>The <code class="literal">“remove-flush”</code> signal</h3> |
| <pre class="programlisting"><span class="returnvalue">void</span> |
| user_function (<a class="link" href="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink"><span class="type">GstMultiSocketSink</span></a> *gstmultisocketsink, |
| <a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a> *socket, |
| <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre> |
| <p>Remove the given open socket from multisocketsink after flushing all |
| the pending data to the socket.</p> |
| <div class="refsect3"> |
| <a name="GstMultiSocketSink-remove-flush.parameters"></a><h4>Parameters</h4> |
| <div class="informaltable"><table class="informaltable" width="100%" border="0"> |
| <colgroup> |
| <col width="150px" class="parameters_name"> |
| <col class="parameters_description"> |
| <col width="200px" class="parameters_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="parameter_name"><p>gstmultisocketsink</p></td> |
| <td class="parameter_description"><p>the multisocketsink element to emit this signal on</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>socket</p></td> |
| <td class="parameter_description"><p>the socket to remove from multisocketsink</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="parameter_name"><p>user_data</p></td> |
| <td class="parameter_description"><p>user data set when the signal handler was connected.</p></td> |
| <td class="parameter_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p> |
| </div> |
| </div> |
| <div class="refsect1"> |
| <a name="gst-plugins-base-plugins-multisocketsink.see-also"></a><h2>See Also</h2> |
| <p>tcpserversink</p> |
| </div> |
| </div> |
| <div class="footer"> |
| <hr>Generated by GTK-Doc V1.25</div> |
| </body> |
| </html> |