namespace Gst {
[CCode (cheader_filename = "gst/rtsp-server/rtsp-client.h")]
public class RTSPClient : GLib.Object {
- public void* address;
public weak Gst.RTSPConnection connection;
- public weak Gst.RTSPMediaFactory factory;
- public weak Gst.RTSPMediaMapping mapping;
- public weak Gst.RTSPSessionPool pool;
- public weak GLib.Thread thread;
+ public weak Gst.RTSPMedia media;
+ public weak GLib.List sessions;
+ public weak GLib.List streams;
+ public weak Gst.RTSPUrl uri;
+ public weak Gst.RTSPWatch watch;
+ public uint watchid;
public bool accept (GLib.IOChannel channel);
public Gst.RTSPMediaMapping get_media_mapping ();
public Gst.RTSPSessionPool get_session_pool ();
public RTSPClient ();
public void set_media_mapping (Gst.RTSPMediaMapping mapping);
public void set_session_pool (Gst.RTSPSessionPool pool);
+ public Gst.RTSPMediaMapping media_mapping { get; set; }
+ public Gst.RTSPSessionPool session_pool { get; set; }
}
[CCode (cheader_filename = "gst/rtsp-server/rtsp-media.h")]
public class RTSPMedia : GLib.Object {
+ public int active;
+ public bool buffering;
public weak Gst.Element element;
+ public uint id;
+ public bool is_live;
+ public weak Gst.Element pipeline;
+ public bool prepared;
+ public weak Gst.RTSPTimeRange range;
+ public bool reused;
+ public weak Gst.Element rtpbin;
+ public weak GLib.TimeoutSource source;
public weak GLib.Array streams;
+ public Gst.State target_state;
public unowned Gst.RTSPMediaStream get_stream (uint idx);
+ [NoWrapper]
+ public virtual bool handle_message (Gst.Message message);
+ public bool is_prepared ();
+ public bool is_reusable ();
+ public bool is_shared ();
public uint n_streams ();
+ [CCode (has_construct_function = false)]
+ public RTSPMedia ();
+ public bool prepare ();
+ public bool seek (Gst.RTSPTimeRange range);
+ public void set_reusable (bool reusable);
+ public void set_shared (bool shared);
+ public bool set_state (Gst.State state, GLib.Array trans);
+ public bool unprepare ();
+ [NoAccessorMethod]
+ public bool reusable { get; set; }
+ [NoAccessorMethod]
+ public bool shared { get; set; }
+ public virtual signal void unprepared ();
}
[CCode (cheader_filename = "gst/rtsp-server/rtsp-media-factory.h")]
public class RTSPMediaFactory : GLib.Object {
+ public weak GLib.Mutex @lock;
+ public weak GLib.HashTable medias;
+ public weak GLib.Mutex medias_lock;
+ [NoWrapper]
+ public virtual void configure (Gst.RTSPMedia media);
public virtual Gst.RTSPMedia? @construct (Gst.RTSPUrl url);
[NoWrapper]
+ public virtual string gen_key (Gst.RTSPUrl url);
+ [NoWrapper]
public virtual Gst.Element? get_element (Gst.RTSPUrl url);
public string get_launch ();
public bool is_shared ();
public void set_launch (string launch);
public void set_shared (bool shared);
public string launch { get; set; }
+ [NoAccessorMethod]
+ public bool shared { get; set; }
}
[CCode (cheader_filename = "gst/rtsp-server/rtsp-media-mapping.h")]
public class RTSPMediaMapping : GLib.Object {
[Compact]
[CCode (cheader_filename = "gst/rtsp-server/rstp-media.h")]
public class RTSPMediaStream {
+ [CCode (array_length = false)]
+ public weak Gst.Element[] appsink;
+ [CCode (array_length = false)]
+ public weak Gst.Element[] appsrc;
public weak Gst.Caps caps;
public ulong caps_sig;
- public weak Gst.Element element;
- public uint idx;
- public weak Gst.RTSPMedia media;
public weak Gst.Element payloader;
+ public bool prepared;
+ public weak Gst.Pad recv_rtcp_sink;
+ public weak Gst.Pad send_rtcp_src;
+ public weak Gst.Pad send_rtp_sink;
+ public weak Gst.Pad send_rtp_src;
+ public weak Gst.RTSPRange server_port;
+ public weak GLib.Object session;
public weak Gst.Pad srcpad;
+ public weak GLib.List transports;
+ [CCode (array_length = false)]
+ public weak Gst.Element[] udpsink;
+ [CCode (array_length = false)]
+ public weak Gst.Element[] udpsrc;
+ public Gst.FlowReturn rtcp (Gst.Buffer buffer);
+ public Gst.FlowReturn rtp (Gst.Buffer buffer);
+ }
+ [Compact]
+ [CCode (cheader_filename = "gst/gst.h")]
+ public class RTSPMediaTrans {
+ public uint idx;
+ public weak GLib.DestroyNotify notify;
+ public weak Gst.RTSPSendFunc send_rtcp;
+ public weak Gst.RTSPSendFunc send_rtp;
+ public weak Gst.RTSPTransport transport;
+ public void* user_data;
}
[CCode (cheader_filename = "gst/rtsp-server/rtsp-server.h")]
public class RTSPServer : GLib.Object {
public weak string host;
public weak GLib.IOChannel io_channel;
public weak GLib.TimeoutSource io_watch;
- public int server_port;
public void* server_sin;
public weak Gst.PollFD server_sock;
[NoWrapper]
public void set_port (int port);
public void set_session_pool (Gst.RTSPSessionPool pool);
public int backlog { get; set; }
- [NoAccessorMethod]
- public Gst.RTSPMediaMapping mapping { owned get; set; }
- [NoAccessorMethod]
- public Gst.RTSPSessionPool pool { owned get; set; }
+ public Gst.RTSPMediaMapping media_mapping { get; set; }
public int port { get; set; }
+ public Gst.RTSPSessionPool session_pool { get; set; }
}
[CCode (cheader_filename = "gst/rtsp-server/rtsp-session.h")]
public class RTSPSession : GLib.Object {
+ public GLib.TimeVal create_time;
+ public GLib.TimeVal last_access;
public weak GLib.List medias;
- public weak string sessionid;
- public unowned Gst.RTSPSessionMedia get_media (Gst.RTSPUrl url, Gst.RTSPMediaFactory factory);
+ public unowned Gst.RTSPSessionMedia get_media (Gst.RTSPUrl uri);
+ public unowned string get_sessionid ();
+ public uint get_timeout ();
+ public bool is_expired (GLib.TimeVal now);
+ public unowned Gst.RTSPSessionMedia manage_media (Gst.RTSPUrl uri, owned Gst.RTSPMedia media);
[CCode (has_construct_function = false)]
public RTSPSession (string sessionid);
+ public int next_timeout (GLib.TimeVal now);
+ public bool release_media (Gst.RTSPSessionMedia media);
+ public void set_timeout (uint timeout);
+ public void touch ();
+ public string sessionid { get; construct; }
+ public uint timeout { get; set; }
}
[Compact]
[CCode (cheader_filename = "gst/rtsp-server/rtsp-session.h")]
public class RTSPSessionMedia {
- public weak Gst.RTSPMediaFactory factory;
- public weak Gst.Element fdsink;
public weak Gst.RTSPMedia media;
- public weak Gst.Element pipeline;
- public weak Gst.Element rtpbin;
- public weak Gst.RTSPSession session;
- public weak GLib.List streams;
+ public Gst.RTSPState state;
+ public weak GLib.Array streams;
+ public weak Gst.RTSPUrl url;
public unowned Gst.RTSPSessionStream get_stream (uint idx);
- public Gst.StateChangeReturn pause ();
- public Gst.StateChangeReturn play ();
- public Gst.StateChangeReturn stop ();
+ public bool set_state (Gst.State state);
}
[CCode (cheader_filename = "gst/rtsp-server/rtsp-session-pool.h")]
public class RTSPSessionPool : GLib.Object {
public weak GLib.Mutex @lock;
public weak GLib.HashTable sessions;
+ public uint cleanup ();
public Gst.RTSPSession create ();
[NoWrapper]
public virtual string create_session_id ();
+ public GLib.TimeoutSource create_watch ();
public Gst.RTSPSession? find (string sessionid);
+ public uint get_max_sessions ();
+ public uint get_n_sessions ();
[CCode (has_construct_function = false)]
public RTSPSessionPool ();
- public void remove (Gst.RTSPSession sess);
+ public bool remove (Gst.RTSPSession sess);
+ public void set_max_sessions (uint max);
+ public uint max_sessions { get; set; }
}
[Compact]
[CCode (cheader_filename = "gst/rtsp-server/rtsp-session.h")]
public class RTSPSessionStream {
- public weak Gst.RTSPTransport client_trans;
- public weak string destination;
- public uint idx;
- public weak Gst.RTSPSessionMedia media;
public weak Gst.RTSPMediaStream media_stream;
- public weak Gst.Pad recv_rtcp_sink;
- public weak Gst.Pad send_rtcp_src;
- public weak Gst.Pad send_rtp_sink;
- public weak Gst.Pad send_rtp_src;
- public weak Gst.RTSPTransport server_trans;
- [CCode (array_length = false)]
- public weak Gst.Element[] udpsink;
- [CCode (array_length = false)]
- public weak Gst.Element[] udpsrc;
- public Gst.RTSPTransport set_transport (string destination, Gst.RTSPTransport ct);
+ public weak Gst.RTSPMediaTrans trans;
+ public void set_callbacks (Gst.RTSPSendFunc send_rtp, Gst.RTSPSendFunc send_rtcp, GLib.DestroyNotify notify);
+ public Gst.RTSPTransport set_transport (Gst.RTSPTransport ct);
}
+ [CCode (cheader_filename = "gst/gst.h")]
+ public delegate bool RTSPSendFunc (Gst.Buffer buffer, uchar channel);
+ [CCode (cheader_filename = "gst/gst.h")]
+ public delegate bool RTSPSessionPoolFunc (Gst.RTSPSessionPool pool);
+ [CCode (cheader_filename = "gst/gst.h")]
+ public static Gst.SDPMessage rtsp_sdp_from_media (Gst.RTSPMedia media);
}
<?xml version="1.0"?>
<api version="1.0">
<namespace name="Gst">
+ <function name="rtsp_sdp_from_media" symbol="gst_rtsp_sdp_from_media">
+ <return-type type="GstSDPMessage*"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ </parameters>
+ </function>
+ <callback name="GstRTSPSendFunc">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="buffer" type="GstBuffer*"/>
+ <parameter name="channel" type="guint8"/>
+ <parameter name="user_data" type="gpointer"/>
+ </parameters>
+ </callback>
+ <callback name="GstRTSPSessionPoolFunc">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="pool" type="GstRTSPSessionPool*"/>
+ <parameter name="user_data" type="gpointer"/>
+ </parameters>
+ </callback>
<struct name="GstRTSPMediaStream">
- <field name="media" type="GstRTSPMedia*"/>
- <field name="idx" type="guint"/>
- <field name="element" type="GstElement*"/>
+ <method name="rtcp" symbol="gst_rtsp_media_stream_rtcp">
+ <return-type type="GstFlowReturn"/>
+ <parameters>
+ <parameter name="stream" type="GstRTSPMediaStream*"/>
+ <parameter name="buffer" type="GstBuffer*"/>
+ </parameters>
+ </method>
+ <method name="rtp" symbol="gst_rtsp_media_stream_rtp">
+ <return-type type="GstFlowReturn"/>
+ <parameters>
+ <parameter name="stream" type="GstRTSPMediaStream*"/>
+ <parameter name="buffer" type="GstBuffer*"/>
+ </parameters>
+ </method>
<field name="srcpad" type="GstPad*"/>
<field name="payloader" type="GstElement*"/>
+ <field name="prepared" type="gboolean"/>
+ <field name="recv_rtcp_sink" type="GstPad*"/>
+ <field name="send_rtp_sink" type="GstPad*"/>
+ <field name="send_rtp_src" type="GstPad*"/>
+ <field name="send_rtcp_src" type="GstPad*"/>
+ <field name="session" type="GObject*"/>
+ <field name="udpsrc" type="GstElement*[]"/>
+ <field name="udpsink" type="GstElement*[]"/>
+ <field name="appsrc" type="GstElement*[]"/>
+ <field name="appsink" type="GstElement*[]"/>
+ <field name="server_port" type="GstRTSPRange"/>
<field name="caps_sig" type="gulong"/>
<field name="caps" type="GstCaps*"/>
+ <field name="transports" type="GList*"/>
+ </struct>
+ <struct name="GstRTSPMediaTrans">
+ <field name="idx" type="guint"/>
+ <field name="send_rtp" type="GstRTSPSendFunc"/>
+ <field name="send_rtcp" type="GstRTSPSendFunc"/>
+ <field name="user_data" type="gpointer"/>
+ <field name="notify" type="GDestroyNotify"/>
+ <field name="transport" type="GstRTSPTransport*"/>
</struct>
<struct name="GstRTSPSessionMedia">
<method name="get_stream" symbol="gst_rtsp_session_media_get_stream">
<parameter name="idx" type="guint"/>
</parameters>
</method>
- <method name="pause" symbol="gst_rtsp_session_media_pause">
- <return-type type="GstStateChangeReturn"/>
- <parameters>
- <parameter name="media" type="GstRTSPSessionMedia*"/>
- </parameters>
- </method>
- <method name="play" symbol="gst_rtsp_session_media_play">
- <return-type type="GstStateChangeReturn"/>
- <parameters>
- <parameter name="media" type="GstRTSPSessionMedia*"/>
- </parameters>
- </method>
- <method name="stop" symbol="gst_rtsp_session_media_stop">
- <return-type type="GstStateChangeReturn"/>
+ <method name="set_state" symbol="gst_rtsp_session_media_set_state">
+ <return-type type="gboolean"/>
<parameters>
<parameter name="media" type="GstRTSPSessionMedia*"/>
+ <parameter name="state" type="GstState"/>
</parameters>
</method>
- <field name="session" type="GstRTSPSession*"/>
- <field name="factory" type="GstRTSPMediaFactory*"/>
- <field name="pipeline" type="GstElement*"/>
+ <field name="url" type="GstRTSPUrl*"/>
<field name="media" type="GstRTSPMedia*"/>
- <field name="rtpbin" type="GstElement*"/>
- <field name="fdsink" type="GstElement*"/>
- <field name="streams" type="GList*"/>
+ <field name="state" type="GstRTSPState"/>
+ <field name="streams" type="GArray*"/>
</struct>
<struct name="GstRTSPSessionStream">
+ <method name="set_callbacks" symbol="gst_rtsp_session_stream_set_callbacks">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="stream" type="GstRTSPSessionStream*"/>
+ <parameter name="send_rtp" type="GstRTSPSendFunc"/>
+ <parameter name="send_rtcp" type="GstRTSPSendFunc"/>
+ <parameter name="user_data" type="gpointer"/>
+ <parameter name="notify" type="GDestroyNotify"/>
+ </parameters>
+ </method>
<method name="set_transport" symbol="gst_rtsp_session_stream_set_transport">
<return-type type="GstRTSPTransport*"/>
<parameters>
<parameter name="stream" type="GstRTSPSessionStream*"/>
- <parameter name="destination" type="gchar*"/>
<parameter name="ct" type="GstRTSPTransport*"/>
</parameters>
</method>
- <field name="idx" type="guint"/>
- <field name="media" type="GstRTSPSessionMedia*"/>
+ <field name="trans" type="GstRTSPMediaTrans"/>
<field name="media_stream" type="GstRTSPMediaStream*"/>
- <field name="destination" type="gchar*"/>
- <field name="client_trans" type="GstRTSPTransport*"/>
- <field name="server_trans" type="GstRTSPTransport*"/>
- <field name="recv_rtcp_sink" type="GstPad*"/>
- <field name="send_rtp_sink" type="GstPad*"/>
- <field name="send_rtp_src" type="GstPad*"/>
- <field name="send_rtcp_src" type="GstPad*"/>
- <field name="udpsrc" type="GstElement*[]"/>
- <field name="udpsink" type="GstElement*[]"/>
</struct>
<object name="GstRTSPClient" parent="GObject" type-name="GstRTSPClient" get-type="gst_rtsp_client_get_type">
<method name="accept" symbol="gst_rtsp_client_accept">
<parameter name="pool" type="GstRTSPSessionPool*"/>
</parameters>
</method>
+ <property name="media-mapping" type="GstRTSPMediaMapping*" readable="1" writable="1" construct="0" construct-only="0"/>
+ <property name="session-pool" type="GstRTSPSessionPool*" readable="1" writable="1" construct="0" construct-only="0"/>
<field name="connection" type="GstRTSPConnection*"/>
- <field name="address" type="struct sockaddr_in"/>
- <field name="thread" type="GThread*"/>
- <field name="pool" type="GstRTSPSessionPool*"/>
- <field name="factory" type="GstRTSPMediaFactory*"/>
- <field name="mapping" type="GstRTSPMediaMapping*"/>
+ <field name="watch" type="GstRTSPWatch*"/>
+ <field name="watchid" type="guint"/>
+ <field name="session_pool" type="GstRTSPSessionPool*"/>
+ <field name="media_mapping" type="GstRTSPMediaMapping*"/>
+ <field name="uri" type="GstRTSPUrl*"/>
+ <field name="media" type="GstRTSPMedia*"/>
+ <field name="streams" type="GList*"/>
+ <field name="sessions" type="GList*"/>
</object>
<object name="GstRTSPMedia" parent="GObject" type-name="GstRTSPMedia" get-type="gst_rtsp_media_get_type">
<method name="get_stream" symbol="gst_rtsp_media_get_stream">
<parameter name="idx" type="guint"/>
</parameters>
</method>
+ <method name="is_prepared" symbol="gst_rtsp_media_is_prepared">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ </parameters>
+ </method>
+ <method name="is_reusable" symbol="gst_rtsp_media_is_reusable">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ </parameters>
+ </method>
+ <method name="is_shared" symbol="gst_rtsp_media_is_shared">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ </parameters>
+ </method>
<method name="n_streams" symbol="gst_rtsp_media_n_streams">
<return-type type="guint"/>
<parameters>
<parameter name="media" type="GstRTSPMedia*"/>
</parameters>
</method>
+ <constructor name="new" symbol="gst_rtsp_media_new">
+ <return-type type="GstRTSPMedia*"/>
+ </constructor>
+ <method name="prepare" symbol="gst_rtsp_media_prepare">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ </parameters>
+ </method>
+ <method name="seek" symbol="gst_rtsp_media_seek">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ <parameter name="range" type="GstRTSPTimeRange*"/>
+ </parameters>
+ </method>
+ <method name="set_reusable" symbol="gst_rtsp_media_set_reusable">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ <parameter name="reusable" type="gboolean"/>
+ </parameters>
+ </method>
+ <method name="set_shared" symbol="gst_rtsp_media_set_shared">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ <parameter name="shared" type="gboolean"/>
+ </parameters>
+ </method>
+ <method name="set_state" symbol="gst_rtsp_media_set_state">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ <parameter name="state" type="GstState"/>
+ <parameter name="trans" type="GArray*"/>
+ </parameters>
+ </method>
+ <method name="unprepare" symbol="gst_rtsp_media_unprepare">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ </parameters>
+ </method>
+ <property name="reusable" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+ <property name="shared" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+ <signal name="unprepared" when="LAST">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ </parameters>
+ </signal>
+ <vfunc name="handle_message">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ <parameter name="message" type="GstMessage*"/>
+ </parameters>
+ </vfunc>
+ <field name="shared" type="gboolean"/>
+ <field name="reusable" type="gboolean"/>
+ <field name="reused" type="gboolean"/>
<field name="element" type="GstElement*"/>
<field name="streams" type="GArray*"/>
+ <field name="prepared" type="gboolean"/>
+ <field name="active" type="gint"/>
+ <field name="pipeline" type="GstElement*"/>
+ <field name="source" type="GSource*"/>
+ <field name="id" type="guint"/>
+ <field name="is_live" type="gboolean"/>
+ <field name="buffering" type="gboolean"/>
+ <field name="target_state" type="GstState"/>
+ <field name="rtpbin" type="GstElement*"/>
+ <field name="range" type="GstRTSPTimeRange"/>
</object>
<object name="GstRTSPMediaFactory" parent="GObject" type-name="GstRTSPMediaFactory" get-type="gst_rtsp_media_factory_get_type">
<method name="construct" symbol="gst_rtsp_media_factory_construct">
</parameters>
</method>
<property name="launch" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
+ <property name="shared" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+ <vfunc name="configure">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ </parameters>
+ </vfunc>
<vfunc name="construct">
<return-type type="GstRTSPMedia*"/>
<parameters>
<parameter name="url" type="GstRTSPUrl*"/>
</parameters>
</vfunc>
+ <vfunc name="gen_key">
+ <return-type type="gchar*"/>
+ <parameters>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ <parameter name="url" type="GstRTSPUrl*"/>
+ </parameters>
+ </vfunc>
<vfunc name="get_element">
<return-type type="GstElement*"/>
<parameters>
<parameter name="url" type="GstRTSPUrl*"/>
</parameters>
</vfunc>
+ <field name="lock" type="GMutex*"/>
<field name="launch" type="gchar*"/>
+ <field name="shared" type="gboolean"/>
+ <field name="medias_lock" type="GMutex*"/>
+ <field name="medias" type="GHashTable*"/>
</object>
<object name="GstRTSPMediaMapping" parent="GObject" type-name="GstRTSPMediaMapping" get-type="gst_rtsp_media_mapping_get_type">
<method name="add_factory" symbol="gst_rtsp_media_mapping_add_factory">
</parameters>
</method>
<property name="backlog" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
- <property name="mapping" type="GstRTSPMediaMapping*" readable="1" writable="1" construct="0" construct-only="0"/>
- <property name="pool" type="GstRTSPSessionPool*" readable="1" writable="1" construct="0" construct-only="0"/>
+ <property name="media-mapping" type="GstRTSPMediaMapping*" readable="1" writable="1" construct="0" construct-only="0"/>
<property name="port" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+ <property name="session-pool" type="GstRTSPSessionPool*" readable="1" writable="1" construct="0" construct-only="0"/>
<vfunc name="accept_client">
<return-type type="GstRTSPClient*"/>
<parameters>
<parameter name="channel" type="GIOChannel*"/>
</parameters>
</vfunc>
- <field name="server_port" type="gint"/>
+ <field name="port" type="gint"/>
<field name="backlog" type="gint"/>
<field name="host" type="gchar*"/>
<field name="server_sin" type="struct sockaddr_in"/>
<field name="server_sock" type="GstPollFD"/>
<field name="io_channel" type="GIOChannel*"/>
<field name="io_watch" type="GSource*"/>
- <field name="pool" type="GstRTSPSessionPool*"/>
- <field name="mapping" type="GstRTSPMediaMapping*"/>
+ <field name="session_pool" type="GstRTSPSessionPool*"/>
+ <field name="media_mapping" type="GstRTSPMediaMapping*"/>
</object>
<object name="GstRTSPSession" parent="GObject" type-name="GstRTSPSession" get-type="gst_rtsp_session_get_type">
<method name="get_media" symbol="gst_rtsp_session_get_media">
<return-type type="GstRTSPSessionMedia*"/>
<parameters>
<parameter name="sess" type="GstRTSPSession*"/>
- <parameter name="url" type="GstRTSPUrl*"/>
- <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ <parameter name="uri" type="GstRTSPUrl*"/>
+ </parameters>
+ </method>
+ <method name="get_sessionid" symbol="gst_rtsp_session_get_sessionid">
+ <return-type type="gchar*"/>
+ <parameters>
+ <parameter name="session" type="GstRTSPSession*"/>
+ </parameters>
+ </method>
+ <method name="get_timeout" symbol="gst_rtsp_session_get_timeout">
+ <return-type type="guint"/>
+ <parameters>
+ <parameter name="session" type="GstRTSPSession*"/>
+ </parameters>
+ </method>
+ <method name="is_expired" symbol="gst_rtsp_session_is_expired">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="session" type="GstRTSPSession*"/>
+ <parameter name="now" type="GTimeVal*"/>
+ </parameters>
+ </method>
+ <method name="manage_media" symbol="gst_rtsp_session_manage_media">
+ <return-type type="GstRTSPSessionMedia*"/>
+ <parameters>
+ <parameter name="sess" type="GstRTSPSession*"/>
+ <parameter name="uri" type="GstRTSPUrl*"/>
+ <parameter name="media" type="GstRTSPMedia*"/>
</parameters>
</method>
<constructor name="new" symbol="gst_rtsp_session_new">
<parameter name="sessionid" type="gchar*"/>
</parameters>
</constructor>
+ <method name="next_timeout" symbol="gst_rtsp_session_next_timeout">
+ <return-type type="gint"/>
+ <parameters>
+ <parameter name="session" type="GstRTSPSession*"/>
+ <parameter name="now" type="GTimeVal*"/>
+ </parameters>
+ </method>
+ <method name="release_media" symbol="gst_rtsp_session_release_media">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="sess" type="GstRTSPSession*"/>
+ <parameter name="media" type="GstRTSPSessionMedia*"/>
+ </parameters>
+ </method>
+ <method name="set_timeout" symbol="gst_rtsp_session_set_timeout">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="session" type="GstRTSPSession*"/>
+ <parameter name="timeout" type="guint"/>
+ </parameters>
+ </method>
+ <method name="touch" symbol="gst_rtsp_session_touch">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="session" type="GstRTSPSession*"/>
+ </parameters>
+ </method>
+ <property name="sessionid" type="char*" readable="1" writable="1" construct="0" construct-only="1"/>
+ <property name="timeout" type="guint" readable="1" writable="1" construct="0" construct-only="0"/>
<field name="sessionid" type="gchar*"/>
+ <field name="timeout" type="guint"/>
+ <field name="create_time" type="GTimeVal"/>
+ <field name="last_access" type="GTimeVal"/>
<field name="medias" type="GList*"/>
</object>
<object name="GstRTSPSessionPool" parent="GObject" type-name="GstRTSPSessionPool" get-type="gst_rtsp_session_pool_get_type">
+ <method name="cleanup" symbol="gst_rtsp_session_pool_cleanup">
+ <return-type type="guint"/>
+ <parameters>
+ <parameter name="pool" type="GstRTSPSessionPool*"/>
+ </parameters>
+ </method>
<method name="create" symbol="gst_rtsp_session_pool_create">
<return-type type="GstRTSPSession*"/>
<parameters>
<parameter name="pool" type="GstRTSPSessionPool*"/>
</parameters>
</method>
+ <method name="create_watch" symbol="gst_rtsp_session_pool_create_watch">
+ <return-type type="GSource*"/>
+ <parameters>
+ <parameter name="pool" type="GstRTSPSessionPool*"/>
+ </parameters>
+ </method>
<method name="find" symbol="gst_rtsp_session_pool_find">
<return-type type="GstRTSPSession*"/>
<parameters>
<parameter name="sessionid" type="gchar*"/>
</parameters>
</method>
+ <method name="get_max_sessions" symbol="gst_rtsp_session_pool_get_max_sessions">
+ <return-type type="guint"/>
+ <parameters>
+ <parameter name="pool" type="GstRTSPSessionPool*"/>
+ </parameters>
+ </method>
+ <method name="get_n_sessions" symbol="gst_rtsp_session_pool_get_n_sessions">
+ <return-type type="guint"/>
+ <parameters>
+ <parameter name="pool" type="GstRTSPSessionPool*"/>
+ </parameters>
+ </method>
<constructor name="new" symbol="gst_rtsp_session_pool_new">
<return-type type="GstRTSPSessionPool*"/>
</constructor>
<method name="remove" symbol="gst_rtsp_session_pool_remove">
- <return-type type="void"/>
+ <return-type type="gboolean"/>
<parameters>
<parameter name="pool" type="GstRTSPSessionPool*"/>
<parameter name="sess" type="GstRTSPSession*"/>
</parameters>
</method>
+ <method name="set_max_sessions" symbol="gst_rtsp_session_pool_set_max_sessions">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="pool" type="GstRTSPSessionPool*"/>
+ <parameter name="max" type="guint"/>
+ </parameters>
+ </method>
+ <property name="max-sessions" type="guint" readable="1" writable="1" construct="0" construct-only="0"/>
<vfunc name="create_session_id">
<return-type type="gchar*"/>
<parameters>
<parameter name="pool" type="GstRTSPSessionPool*"/>
</parameters>
</vfunc>
+ <field name="max_sessions" type="guint"/>
<field name="lock" type="GMutex*"/>
<field name="sessions" type="GHashTable*"/>
</object>