Updated vala bindings
authorSebastian Pölsterl <sebp@k-d-w.org>
Fri, 17 Apr 2009 19:13:07 +0000 (21:13 +0200)
committerWim Taymans <wim@metal.(none)>
Mon, 20 Apr 2009 22:14:36 +0000 (00:14 +0200)
bindings/vala/gst-rtsp-server-0.10.vapi
bindings/vala/packages/gst-rtsp-server-0.10.gi
bindings/vala/packages/gst-rtsp-server-0.10.metadata

index af5804c..fd4bc9a 100644 (file)
@@ -4,12 +4,13 @@
 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 ();
@@ -17,18 +18,56 @@ namespace Gst {
                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 ();
@@ -37,6 +76,8 @@ namespace Gst {
                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 {
@@ -52,20 +93,44 @@ namespace Gst {
        [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]
@@ -85,64 +150,69 @@ namespace Gst {
                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);
 }
index b71ad35..8a89bf0 100644 (file)
@@ -1,14 +1,66 @@
 <?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>
index bf7ed85..ba417e5 100644 (file)
@@ -13,16 +13,20 @@ gst_rtsp_client_get_media_mapping transfer_ownership="1"
 gst_rtsp_client_get_session_pool transfer_ownership="1"
 gst_rtsp_media_factory_get_launch transfer_ownership="1"
 gst_rtsp_media_factory_construct transfer_ownership="1" nullable="1"
+gst_rtsp_media_factory_gen_key transfer_ownership="1"
 gst_rtsp_media_factory_get_element transfer_ownership="1" nullable="1"
 gst_rtsp_media_mapping_find_factory transfer_ownership="1" nullable="1"
 gst_rtsp_media_mapping_find_media transfer_ownership="1" nullable="1"
+gst_rtsp_sdp_from_media transfer_ownership="1"
 gst_rtsp_server_accept_client transfer_ownership="1" nullable="1"
 gst_rtsp_server_create_watch transfer_ownership="1" nullable="1"
 gst_rtsp_server_get_io_channel transfer_ownership="1" nullable="1"
 gst_rtsp_server_get_media_mapping transfer_ownership="1"
 gst_rtsp_server_get_session_pool transfer_ownership="1"
 gst_rtsp_server_attach.context nullable="1"
+gst_rtsp_session_manage_media.media takes_ownership="1"
 gst_rtsp_session_pool_create transfer_ownership="1"
 gst_rtsp_session_pool_create_session_id transfer_ownership="1"
+gst_rtsp_session_pool_create_watch transfer_ownership="1"
 gst_rtsp_session_pool_find transfer_ownership="1" nullable="1"
 gst_rtsp_session_stream_set_transport transfer_ownership="1"