public class RTSPClient : GLib.Object {
public void* address;
public weak Gst.RTSPConnection connection;
- public weak Gst.RTSPMedia media;
+ public weak Gst.RTSPMediaFactory factory;
+ public weak Gst.RTSPMediaMapping mapping;
public weak Gst.RTSPSessionPool pool;
public weak GLib.Thread thread;
- public bool accept (GLib.IOChannel source);
- public weak Gst.RTSPSessionPool get_session_pool ();
+ public bool accept (GLib.IOChannel channel);
+ public Gst.RTSPMediaMapping get_media_mapping ();
+ public Gst.RTSPSessionPool get_session_pool ();
[CCode (has_construct_function = false)]
- public RTSPClient (Gst.RTSPServer server);
+ public RTSPClient ();
+ public void set_media_mapping (Gst.RTSPMediaMapping mapping);
public void set_session_pool (Gst.RTSPSessionPool pool);
- [NoAccessorMethod]
- public Gst.RTSPServer server { get; construct; }
}
[CCode (cheader_filename = "gst/rtsp-server/rtsp-media.h")]
public class RTSPMedia : GLib.Object {
- public bool prepared;
+ public weak Gst.Element element;
public weak GLib.Array streams;
- public weak Gst.RTSPMediaStream get_stream (uint idx);
+ public unowned Gst.RTSPMediaStream get_stream (uint idx);
public uint n_streams ();
+ }
+ [CCode (cheader_filename = "gst/rtsp-server/rtsp-media-factory.h")]
+ public class RTSPMediaFactory : GLib.Object {
+ public virtual Gst.RTSPMedia @construct (Gst.RTSPUrl url);
+ [NoWrapper]
+ public virtual Gst.Element get_element (Gst.RTSPUrl url);
+ public string get_launch ();
+ public bool is_shared ();
[CCode (has_construct_function = false)]
- public RTSPMedia (string name);
- [NoAccessorMethod]
- public string location { get; construct; }
- [NoAccessorMethod]
- public Gst.RTSPUrl url { get; construct; }
+ public RTSPMediaFactory ();
+ public void set_launch (string launch);
+ public void set_shared (bool shared);
+ public string launch { get; set; }
+ }
+ [CCode (cheader_filename = "gst/rtsp-server/rtsp-media-mapping.h")]
+ public class RTSPMediaMapping : GLib.Object {
+ public weak GLib.HashTable mappings;
+ public void add_factory (string path, Gst.RTSPMediaFactory factory);
+ public Gst.RTSPMediaFactory find_factory (Gst.RTSPUrl url);
+ [NoWrapper]
+ public virtual Gst.RTSPMediaFactory find_media (Gst.RTSPUrl url);
+ [CCode (has_construct_function = false)]
+ public RTSPMediaMapping ();
+ public void remove_factory (string path);
}
[Compact]
[CCode (cheader_filename = "gst/rtsp-server/rstp-media.h")]
public weak Gst.Element element;
public uint idx;
public weak Gst.RTSPMedia media;
- public weak string name;
public weak Gst.Element payloader;
public weak Gst.Pad srcpad;
}
[CCode (cheader_filename = "gst/rtsp-server/rtsp-server.h")]
- public class RTSPServer : Gst.Object {
+ public class RTSPServer : GLib.Object {
public weak string host;
public weak GLib.IOChannel io_channel;
public weak GLib.TimeoutSource io_watch;
- public weak Gst.RTSPSessionPool pool;
public int server_port;
public void* server_sin;
public weak Gst.PollFD server_sock;
+ [NoWrapper]
+ public virtual Gst.RTSPClient accept_client (GLib.IOChannel channel);
public uint attach (GLib.MainContext context);
- public virtual weak Gst.Element prepare_media (Gst.RTSPMedia media, Gst.Bin bin);
+ public GLib.TimeoutSource create_watch ();
+ public int get_backlog ();
+ public GLib.IOChannel get_io_channel ();
+ public Gst.RTSPMediaMapping get_media_mapping ();
+ public int get_port ();
+ public Gst.RTSPSessionPool get_session_pool ();
+ public static bool io_func (GLib.IOChannel channel, GLib.IOCondition condition, Gst.RTSPServer server);
+ [CCode (has_construct_function = false)]
+ public RTSPServer ();
+ public void set_backlog (int backlog);
+ public void set_media_mapping (Gst.RTSPMediaMapping mapping);
+ 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 int port { get; construct; }
+ public Gst.RTSPSessionPool pool { owned get; set; }
+ public int port { get; set; }
}
[CCode (cheader_filename = "gst/rtsp-server/rtsp-session.h")]
public class RTSPSession : GLib.Object {
public weak GLib.List medias;
public weak string sessionid;
- public weak Gst.RTSPSessionMedia get_media (Gst.RTSPMedia media);
- public static weak Gst.RTSPSessionStream get_stream (Gst.RTSPSessionMedia media, uint idx);
+ public unowned Gst.RTSPSessionMedia get_media (Gst.RTSPUrl url, Gst.RTSPMediaFactory factory);
[CCode (has_construct_function = false)]
public RTSPSession (string sessionid);
}
[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 unowned Gst.RTSPSessionStream get_stream (uint idx);
public Gst.StateChangeReturn pause ();
public Gst.StateChangeReturn play ();
public Gst.StateChangeReturn stop ();
}
- [CCode (cheader_filename = "gst/rtsp-server/rtsp-session.h")]
+ [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 weak Gst.RTSPSession create ();
- public weak Gst.RTSPSession find (string sessionid);
+ public Gst.RTSPSession create ();
+ [NoWrapper]
+ public virtual string create_session_id ();
+ public Gst.RTSPSession find (string sessionid);
[CCode (has_construct_function = false)]
public RTSPSessionPool ();
public void remove (Gst.RTSPSession sess);
}
[Compact]
- [CCode (cheader_filename = "gst/rtsp-server/rtsp-session-pool.h")]
+ [CCode (cheader_filename = "gst/rtsp-server/rtsp-session.h")]
public class RTSPSessionStream {
public weak Gst.RTSPTransport client_trans;
public weak string destination;
public weak Gst.Pad send_rtp_sink;
public weak Gst.Pad send_rtp_src;
public weak Gst.RTSPTransport server_trans;
- [NoArrayLength]
+ [CCode (array_length = false)]
public weak Gst.Element[] udpsink;
- [NoArrayLength]
+ [CCode (array_length = false)]
public weak Gst.Element[] udpsrc;
- public weak Gst.RTSPTransport set_transport (string destination, Gst.RTSPTransport ct);
+ public Gst.RTSPTransport set_transport (string destination, Gst.RTSPTransport ct);
}
}
<struct name="GstRTSPMediaStream">
<field name="media" type="GstRTSPMedia*"/>
<field name="idx" type="guint"/>
- <field name="name" type="gchar*"/>
<field name="element" type="GstElement*"/>
<field name="srcpad" type="GstPad*"/>
<field name="payloader" type="GstElement*"/>
<field name="caps" type="GstCaps*"/>
</struct>
<struct name="GstRTSPSessionMedia">
+ <method name="get_stream" symbol="gst_rtsp_session_media_get_stream">
+ <return-type type="GstRTSPSessionStream*"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPSessionMedia*"/>
+ <parameter name="idx" type="guint"/>
+ </parameters>
+ </method>
<method name="pause" symbol="gst_rtsp_session_media_pause">
<return-type type="GstStateChangeReturn"/>
<parameters>
</parameters>
</method>
<field name="session" type="GstRTSPSession*"/>
- <field name="media" type="GstRTSPMedia*"/>
+ <field name="factory" type="GstRTSPMediaFactory*"/>
<field name="pipeline" type="GstElement*"/>
+ <field name="media" type="GstRTSPMedia*"/>
<field name="rtpbin" type="GstElement*"/>
<field name="fdsink" type="GstElement*"/>
<field name="streams" type="GList*"/>
<return-type type="gboolean"/>
<parameters>
<parameter name="client" type="GstRTSPClient*"/>
- <parameter name="source" type="GIOChannel*"/>
+ <parameter name="channel" type="GIOChannel*"/>
+ </parameters>
+ </method>
+ <method name="get_media_mapping" symbol="gst_rtsp_client_get_media_mapping">
+ <return-type type="GstRTSPMediaMapping*"/>
+ <parameters>
+ <parameter name="client" type="GstRTSPClient*"/>
</parameters>
</method>
<method name="get_session_pool" symbol="gst_rtsp_client_get_session_pool">
</method>
<constructor name="new" symbol="gst_rtsp_client_new">
<return-type type="GstRTSPClient*"/>
+ </constructor>
+ <method name="set_media_mapping" symbol="gst_rtsp_client_set_media_mapping">
+ <return-type type="void"/>
<parameters>
- <parameter name="server" type="GstRTSPServer*"/>
+ <parameter name="client" type="GstRTSPClient*"/>
+ <parameter name="mapping" type="GstRTSPMediaMapping*"/>
</parameters>
- </constructor>
+ </method>
<method name="set_session_pool" symbol="gst_rtsp_client_set_session_pool">
<return-type type="void"/>
<parameters>
<parameter name="pool" type="GstRTSPSessionPool*"/>
</parameters>
</method>
- <property name="server" type="GstRTSPServer*" readable="1" writable="1" construct="0" construct-only="1"/>
- <field name="server" type="GstRTSPServer*"/>
<field name="connection" type="GstRTSPConnection*"/>
<field name="address" type="struct sockaddr_in"/>
- <field name="media" type="GstRTSPMedia*"/>
- <field name="pool" type="GstRTSPSessionPool*"/>
<field name="thread" type="GThread*"/>
+ <field name="pool" type="GstRTSPSessionPool*"/>
+ <field name="factory" type="GstRTSPMediaFactory*"/>
+ <field name="mapping" type="GstRTSPMediaMapping*"/>
</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="media" type="GstRTSPMedia*"/>
</parameters>
</method>
- <constructor name="new" symbol="gst_rtsp_media_new">
+ <field name="element" type="GstElement*"/>
+ <field name="streams" type="GArray*"/>
+ </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">
<return-type type="GstRTSPMedia*"/>
<parameters>
- <parameter name="name" type="gchar*"/>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ <parameter name="url" type="GstRTSPUrl*"/>
</parameters>
+ </method>
+ <method name="get_launch" symbol="gst_rtsp_media_factory_get_launch">
+ <return-type type="gchar*"/>
+ <parameters>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ </parameters>
+ </method>
+ <method name="is_shared" symbol="gst_rtsp_media_factory_is_shared">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ </parameters>
+ </method>
+ <constructor name="new" symbol="gst_rtsp_media_factory_new">
+ <return-type type="GstRTSPMediaFactory*"/>
</constructor>
- <property name="location" type="char*" readable="1" writable="1" construct="0" construct-only="1"/>
- <property name="url" type="GstRTSPUrl*" readable="1" writable="1" construct="0" construct-only="1"/>
- <field name="location" type="gchar*"/>
- <field name="url" type="GstRTSPUrl*"/>
- <field name="prepared" type="gboolean"/>
- <field name="streams" type="GArray*"/>
+ <method name="set_launch" symbol="gst_rtsp_media_factory_set_launch">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ <parameter name="launch" type="gchar*"/>
+ </parameters>
+ </method>
+ <method name="set_shared" symbol="gst_rtsp_media_factory_set_shared">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ <parameter name="shared" type="gboolean"/>
+ </parameters>
+ </method>
+ <property name="launch" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
+ <vfunc name="construct">
+ <return-type type="GstRTSPMedia*"/>
+ <parameters>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ <parameter name="url" type="GstRTSPUrl*"/>
+ </parameters>
+ </vfunc>
+ <vfunc name="get_element">
+ <return-type type="GstElement*"/>
+ <parameters>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ <parameter name="url" type="GstRTSPUrl*"/>
+ </parameters>
+ </vfunc>
+ <field name="launch" type="gchar*"/>
</object>
- <object name="GstRTSPServer" parent="GstObject" type-name="GstRTSPServer" get-type="gst_rtsp_server_get_type">
+ <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">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="mapping" type="GstRTSPMediaMapping*"/>
+ <parameter name="path" type="gchar*"/>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ </parameters>
+ </method>
+ <method name="find_factory" symbol="gst_rtsp_media_mapping_find_factory">
+ <return-type type="GstRTSPMediaFactory*"/>
+ <parameters>
+ <parameter name="mapping" type="GstRTSPMediaMapping*"/>
+ <parameter name="url" type="GstRTSPUrl*"/>
+ </parameters>
+ </method>
+ <constructor name="new" symbol="gst_rtsp_media_mapping_new">
+ <return-type type="GstRTSPMediaMapping*"/>
+ </constructor>
+ <method name="remove_factory" symbol="gst_rtsp_media_mapping_remove_factory">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="mapping" type="GstRTSPMediaMapping*"/>
+ <parameter name="path" type="gchar*"/>
+ </parameters>
+ </method>
+ <vfunc name="find_media">
+ <return-type type="GstRTSPMediaFactory*"/>
+ <parameters>
+ <parameter name="mapping" type="GstRTSPMediaMapping*"/>
+ <parameter name="url" type="GstRTSPUrl*"/>
+ </parameters>
+ </vfunc>
+ <field name="mappings" type="GHashTable*"/>
+ </object>
+ <object name="GstRTSPServer" parent="GObject" type-name="GstRTSPServer" get-type="gst_rtsp_server_get_type">
<method name="attach" symbol="gst_rtsp_server_attach">
<return-type type="guint"/>
<parameters>
<parameter name="context" type="GMainContext*"/>
</parameters>
</method>
- <method name="prepare_media" symbol="gst_rtsp_server_prepare_media">
+ <method name="create_watch" symbol="gst_rtsp_server_create_watch">
+ <return-type type="GSource*"/>
+ <parameters>
+ <parameter name="server" type="GstRTSPServer*"/>
+ </parameters>
+ </method>
+ <method name="get_backlog" symbol="gst_rtsp_server_get_backlog">
+ <return-type type="gint"/>
+ <parameters>
+ <parameter name="server" type="GstRTSPServer*"/>
+ </parameters>
+ </method>
+ <method name="get_io_channel" symbol="gst_rtsp_server_get_io_channel">
+ <return-type type="GIOChannel*"/>
+ <parameters>
+ <parameter name="server" type="GstRTSPServer*"/>
+ </parameters>
+ </method>
+ <method name="get_media_mapping" symbol="gst_rtsp_server_get_media_mapping">
+ <return-type type="GstRTSPMediaMapping*"/>
+ <parameters>
+ <parameter name="server" type="GstRTSPServer*"/>
+ </parameters>
+ </method>
+ <method name="get_port" symbol="gst_rtsp_server_get_port">
+ <return-type type="gint"/>
+ <parameters>
+ <parameter name="server" type="GstRTSPServer*"/>
+ </parameters>
+ </method>
+ <method name="get_session_pool" symbol="gst_rtsp_server_get_session_pool">
+ <return-type type="GstRTSPSessionPool*"/>
+ <parameters>
+ <parameter name="server" type="GstRTSPServer*"/>
+ </parameters>
+ </method>
+ <method name="io_func" symbol="gst_rtsp_server_io_func">
<return-type type="gboolean"/>
<parameters>
+ <parameter name="channel" type="GIOChannel*"/>
+ <parameter name="condition" type="GIOCondition"/>
<parameter name="server" type="GstRTSPServer*"/>
- <parameter name="media" type="GstRTSPMedia*"/>
- <parameter name="bin" type="GstBin*"/>
</parameters>
</method>
- <property name="port" type="gint" readable="1" writable="1" construct="0" construct-only="1"/>
- <vfunc name="prepare_media">
- <return-type type="GstElement*"/>
+ <constructor name="new" symbol="gst_rtsp_server_new">
+ <return-type type="GstRTSPServer*"/>
+ </constructor>
+ <method name="set_backlog" symbol="gst_rtsp_server_set_backlog">
+ <return-type type="void"/>
<parameters>
<parameter name="server" type="GstRTSPServer*"/>
- <parameter name="media" type="GstRTSPMedia*"/>
- <parameter name="bin" type="GstBin*"/>
+ <parameter name="backlog" type="gint"/>
+ </parameters>
+ </method>
+ <method name="set_media_mapping" symbol="gst_rtsp_server_set_media_mapping">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="server" type="GstRTSPServer*"/>
+ <parameter name="mapping" type="GstRTSPMediaMapping*"/>
+ </parameters>
+ </method>
+ <method name="set_port" symbol="gst_rtsp_server_set_port">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="server" type="GstRTSPServer*"/>
+ <parameter name="port" type="gint"/>
+ </parameters>
+ </method>
+ <method name="set_session_pool" symbol="gst_rtsp_server_set_session_pool">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="server" type="GstRTSPServer*"/>
+ <parameter name="pool" type="GstRTSPSessionPool*"/>
+ </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="port" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+ <vfunc name="accept_client">
+ <return-type type="GstRTSPClient*"/>
+ <parameters>
+ <parameter name="server" type="GstRTSPServer*"/>
+ <parameter name="channel" type="GIOChannel*"/>
</parameters>
</vfunc>
- <field name="server_port" type="int"/>
+ <field name="server_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*"/>
</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="media" type="GstRTSPMedia*"/>
- </parameters>
- </method>
- <method name="get_stream" symbol="gst_rtsp_session_get_stream">
- <return-type type="GstRTSPSessionStream*"/>
- <parameters>
- <parameter name="media" type="GstRTSPSessionMedia*"/>
- <parameter name="idx" type="guint"/>
+ <parameter name="url" type="GstRTSPUrl*"/>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
</parameters>
</method>
<constructor name="new" symbol="gst_rtsp_session_new">
<parameter name="sess" type="GstRTSPSession*"/>
</parameters>
</method>
+ <vfunc name="create_session_id">
+ <return-type type="gchar*"/>
+ <parameters>
+ <parameter name="pool" type="GstRTSPSessionPool*"/>
+ </parameters>
+ </vfunc>
<field name="lock" type="GMutex*"/>
<field name="sessions" type="GHashTable*"/>
</object>