| <!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.78.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.24 (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_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.signals"></a><h2>Signals</h2> |
| <div class="informaltable"><table 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="https://developer.gnome.org/gobject/unstable/gobject-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="https://developer.gnome.org/gobject/unstable/gobject-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="https://developer.gnome.org/gobject/unstable/gobject-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="https://developer.gnome.org/gobject/unstable/gobject-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="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td> |
| </tr> |
| <tr> |
| <td class="signal_type"> |
| <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><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="https://developer.gnome.org/gobject/unstable/gobject-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="https://developer.gnome.org/gobject/unstable/gobject-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="https://developer.gnome.org/gobject/unstable/gobject-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 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> |
| <tr> |
| <td class="datatype_keyword">enum</td> |
| <td class="function_name"><a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy" title="enum GstRecoverPolicy">GstRecoverPolicy</a></td> |
| </tr> |
| <tr> |
| <td class="datatype_keyword">enum</td> |
| <td class="function_name"><a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod" title="enum GstSyncMethod">GstSyncMethod</a></td> |
| </tr> |
| <tr> |
| <td class="datatype_keyword">enum</td> |
| <td class="function_name"><a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstClientStatus" title="enum GstClientStatus">GstClientStatus</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="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a> |
| <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a> |
| <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a> |
| <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a> |
| <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSink.html">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.20.7.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.20.7.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> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstRecoverPolicy"></a><h3>enum GstRecoverPolicy</h3> |
| <p>Possible values for the recovery procedure to use when a client consumes |
| data too slow and has a backlag of more that soft-limit buffers.</p> |
| <div class="refsect3"> |
| <a name="id-1.2.20.9.3.4"></a><h4>Members</h4> |
| <div class="informaltable"><table width="100%" border="0"> |
| <colgroup> |
| <col width="300px" class="enum_members_name"> |
| <col class="enum_members_description"> |
| <col width="200px" class="enum_members_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-RECOVER-POLICY-NONE:CAPS"></a>GST_RECOVER_POLICY_NONE</p></td> |
| <td class="enum_member_description"> |
| <p>no recovering is done</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-RECOVER-POLICY-RESYNC-LATEST:CAPS"></a>GST_RECOVER_POLICY_RESYNC_LATEST</p></td> |
| <td class="enum_member_description"> |
| <p>client is moved to last buffer</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-RECOVER-POLICY-RESYNC-SOFT-LIMIT:CAPS"></a>GST_RECOVER_POLICY_RESYNC_SOFT_LIMIT</p></td> |
| <td class="enum_member_description"> |
| <p>client is moved to the soft limit</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-RECOVER-POLICY-RESYNC-KEYFRAME:CAPS"></a>GST_RECOVER_POLICY_RESYNC_KEYFRAME</p></td> |
| <td class="enum_member_description"> |
| <p>client is moved to latest keyframe</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstSyncMethod"></a><h3>enum GstSyncMethod</h3> |
| <p>This enum defines the selection of the first buffer that is sent |
| to a new client.</p> |
| <div class="refsect3"> |
| <a name="id-1.2.20.9.4.4"></a><h4>Members</h4> |
| <div class="informaltable"><table width="100%" border="0"> |
| <colgroup> |
| <col width="300px" class="enum_members_name"> |
| <col class="enum_members_description"> |
| <col width="200px" class="enum_members_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-SYNC-METHOD-LATEST:CAPS"></a>GST_SYNC_METHOD_LATEST</p></td> |
| <td class="enum_member_description"> |
| <p>client receives most recent buffer</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-SYNC-METHOD-NEXT-KEYFRAME:CAPS"></a>GST_SYNC_METHOD_NEXT_KEYFRAME</p></td> |
| <td class="enum_member_description"> |
| <p>client receives next keyframe</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-SYNC-METHOD-LATEST-KEYFRAME:CAPS"></a>GST_SYNC_METHOD_LATEST_KEYFRAME</p></td> |
| <td class="enum_member_description"> |
| <p>client receives latest keyframe (burst)</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-SYNC-METHOD-BURST:CAPS"></a>GST_SYNC_METHOD_BURST</p></td> |
| <td class="enum_member_description"> |
| <p>client receives specific amount of data</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-SYNC-METHOD-BURST-KEYFRAME:CAPS"></a>GST_SYNC_METHOD_BURST_KEYFRAME</p></td> |
| <td class="enum_member_description"> |
| <p>client receives specific amount of data |
| starting from latest keyframe</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-SYNC-METHOD-BURST-WITH-KEYFRAME:CAPS"></a>GST_SYNC_METHOD_BURST_WITH_KEYFRAME</p></td> |
| <td class="enum_member_description"> |
| <p>client receives specific amount of data from |
| a keyframe, or if there is not enough data after |
| the keyframe, starting before the keyframe</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </div> |
| <hr> |
| <div class="refsect2"> |
| <a name="GstClientStatus"></a><h3>enum GstClientStatus</h3> |
| <p>This specifies the reason why a client was removed from |
| multisocketsink and is received in the "client-removed" signal.</p> |
| <div class="refsect3"> |
| <a name="id-1.2.20.9.5.4"></a><h4>Members</h4> |
| <div class="informaltable"><table width="100%" border="0"> |
| <colgroup> |
| <col width="300px" class="enum_members_name"> |
| <col class="enum_members_description"> |
| <col width="200px" class="enum_members_annotations"> |
| </colgroup> |
| <tbody> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-OK:CAPS"></a>GST_CLIENT_STATUS_OK</p></td> |
| <td class="enum_member_description"> |
| <p>client is ok</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-CLOSED:CAPS"></a>GST_CLIENT_STATUS_CLOSED</p></td> |
| <td class="enum_member_description"> |
| <p>client closed the socket</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-REMOVED:CAPS"></a>GST_CLIENT_STATUS_REMOVED</p></td> |
| <td class="enum_member_description"> |
| <p>client is removed</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-SLOW:CAPS"></a>GST_CLIENT_STATUS_SLOW</p></td> |
| <td class="enum_member_description"> |
| <p>client is too slow</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-ERROR:CAPS"></a>GST_CLIENT_STATUS_ERROR</p></td> |
| <td class="enum_member_description"> |
| <p>client is in error</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-DUPLICATE:CAPS"></a>GST_CLIENT_STATUS_DUPLICATE</p></td> |
| <td class="enum_member_description"> |
| <p>same client added twice</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| <tr> |
| <td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-FLUSHING:CAPS"></a>GST_CLIENT_STATUS_FLUSHING</p></td> |
| <td class="enum_member_description"> |
| <p>client is flushing out the remaining buffers.</p> |
| </td> |
| <td class="enum_member_annotations"> </td> |
| </tr> |
| </tbody> |
| </table></div> |
| </div> |
| </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="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket, |
| <a href="https://developer.gnome.org/glib/unstable/glib-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="id-1.2.20.10.2.5"></a><h4>Parameters</h4> |
| <div class="informaltable"><table 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="https://developer.gnome.org/gobject/unstable/gobject-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="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket, |
| <span class="type">GstMultiHandleSinkSyncMethod</span> sync, |
| <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format_min, |
| <span class="type">guint64</span> value_min, |
| <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format_max, |
| <span class="type">guint64</span> value_max, |
| <a href="https://developer.gnome.org/glib/unstable/glib-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="id-1.2.20.10.3.5"></a><h4>Parameters</h4> |
| <div class="informaltable"><table 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="https://developer.gnome.org/gobject/unstable/gobject-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="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> *socket, |
| <a href="https://developer.gnome.org/glib/unstable/glib-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="id-1.2.20.10.4.5"></a><h4>Parameters</h4> |
| <div class="informaltable"><table 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="https://developer.gnome.org/gobject/unstable/gobject-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="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> socket, |
| <span class="type">GstMultiHandleSinkClientStatus</span> status, |
| <a href="https://developer.gnome.org/glib/unstable/glib-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="id-1.2.20.10.5.6"></a><h4>Parameters</h4> |
| <div class="informaltable"><table 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="https://developer.gnome.org/gobject/unstable/gobject-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="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket, |
| <a href="https://developer.gnome.org/glib/unstable/glib-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="id-1.2.20.10.6.6"></a><h4>Parameters</h4> |
| <div class="informaltable"><table 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="https://developer.gnome.org/gobject/unstable/gobject-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="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstStructure.html"><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="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket, |
| <a href="https://developer.gnome.org/glib/unstable/glib-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="id-1.2.20.10.7.5"></a><h4>Parameters</h4> |
| <div class="informaltable"><table 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="id-1.2.20.10.7.6"></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="https://developer.gnome.org/gobject/unstable/gobject-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="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket, |
| <a href="https://developer.gnome.org/glib/unstable/glib-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="id-1.2.20.10.8.5"></a><h4>Parameters</h4> |
| <div class="informaltable"><table 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="https://developer.gnome.org/gobject/unstable/gobject-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="https://developer.gnome.org/gio/unstable/GSocket.html"><span class="type">GSocket</span></a> *socket, |
| <a href="https://developer.gnome.org/glib/unstable/glib-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="id-1.2.20.10.9.5"></a><h4>Parameters</h4> |
| <div class="informaltable"><table 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="https://developer.gnome.org/gobject/unstable/gobject-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.24</div> |
| </body> |
| </html> |