[CCode (cheader_filename = "gst/rtsp-server/rtsp-client.h")]
public class RTSPClient : GLib.Object {
public weak Gst.RTSPConnection connection;
+ public bool is_ipv6;
public weak Gst.RTSPMedia media;
+ public weak string server_ip;
public weak GLib.List sessions;
public weak GLib.List streams;
public weak Gst.RTSPUrl uri;
public weak Gst.RTSPWatch watch;
public uint watchid;
+ [CCode (has_construct_function = false)]
+ public RTSPClient ();
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 ();
public void set_media_mapping (Gst.RTSPMediaMapping mapping);
public void set_session_pool (Gst.RTSPSessionPool pool);
public Gst.RTSPMediaMapping media_mapping { get; set; }
public class RTSPMedia : GLib.Object {
public int active;
public bool buffering;
+ public weak GLib.Cond cond;
public weak GLib.List @dynamic;
public weak Gst.Element element;
+ public bool eos_pending;
public weak Gst.Element fakesink;
public uint id;
+ public bool is_ipv6;
public bool is_live;
- public Gst.Element pipeline;
- public bool prepared;
+ public weak GLib.Mutex @lock;
+ public weak Gst.Element pipeline;
public weak Gst.RTSPTimeRange range;
public bool reused;
public weak Gst.Element rtpbin;
public weak GLib.TimeoutSource source;
+ public Gst.RTSPMediaStatus status;
public weak GLib.Array streams;
public Gst.State target_state;
+ [CCode (has_construct_function = false)]
+ public RTSPMedia ();
+ public Gst.RTSPLowerTrans get_protocols ();
public unowned Gst.RTSPMediaStream get_stream (uint idx);
[NoWrapper]
public virtual bool handle_message (Gst.Message message);
+ public bool is_eos_shutdown ();
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 void remove_elements ();
public bool seek (Gst.RTSPTimeRange range);
+ public void set_eos_shutdown (bool eos_shutdown);
+ public void set_protocols (Gst.RTSPLowerTrans protocols);
public void set_reusable (bool reusable);
public void set_shared (bool shared);
public bool set_state (Gst.State state, GLib.Array trans);
public virtual bool unprepare ();
[NoAccessorMethod]
+ public bool eos_shutdown { get; set; }
+ public Gst.RTSPLowerTrans protocols { get; set; }
+ [NoAccessorMethod]
public bool reusable { get; set; }
[NoAccessorMethod]
public bool shared { get; set; }
public weak GLib.Mutex @lock;
public weak GLib.HashTable medias;
public weak GLib.Mutex medias_lock;
+ [CCode (has_construct_function = false)]
+ public RTSPMediaFactory ();
public void collect_streams (Gst.RTSPUrl url, Gst.RTSPMedia media);
[NoWrapper]
public virtual void configure (Gst.RTSPMedia media);
[NoWrapper]
public virtual Gst.Element? get_element (Gst.RTSPUrl url);
public string get_launch ();
+ public bool is_eos_shutdown ();
public bool is_shared ();
- [CCode (has_construct_function = false)]
- public RTSPMediaFactory ();
+ public void set_eos_shutdown (bool eos_shutdown);
public void set_launch (string launch);
public void set_shared (bool shared);
+ [NoAccessorMethod]
+ public bool eos_shutdown { get; set; }
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 {
public weak GLib.HashTable mappings;
+ [CCode (has_construct_function = false)]
+ public RTSPMediaMapping ();
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]
public weak Gst.Element[] appsrc;
public weak Gst.Caps caps;
public ulong caps_sig;
+ public weak GLib.List destinations;
+ public bool filter_duplicates;
public weak Gst.Element payloader;
public bool prepared;
public weak Gst.Pad recv_rtcp_sink;
public bool timeout;
public weak Gst.RTSPTransport transport;
public void* user_data;
+ public void cleanup ();
}
[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 void* server_sin;
- public weak Gst.PollFD server_sock;
+ public Gst.PollFD server_sock;
+ [CCode (has_construct_function = false)]
+ public RTSPServer ();
[NoWrapper]
public virtual Gst.RTSPClient? accept_client (GLib.IOChannel channel);
public uint attach (GLib.MainContext? context);
public GLib.TimeoutSource? create_watch ();
+ public string get_address ();
public int get_backlog ();
public GLib.IOChannel? get_io_channel ();
public Gst.RTSPMediaMapping get_media_mapping ();
- public int get_port ();
+ public string get_service ();
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_address (string address);
public void set_backlog (int backlog);
public void set_media_mapping (Gst.RTSPMediaMapping mapping);
- public void set_port (int port);
+ public void set_service (string service);
public void set_session_pool (Gst.RTSPSessionPool pool);
+ public string address { get; set; }
public int backlog { get; set; }
public Gst.RTSPMediaMapping media_mapping { get; set; }
- public int port { get; set; }
+ public string service { 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 int expire_count;
public GLib.TimeVal last_access;
public weak GLib.List medias;
+ [CCode (has_construct_function = false)]
+ public RTSPSession (string sessionid);
+ public void allow_expire ();
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 void prevent_expire ();
public bool release_media (Gst.RTSPSessionMedia media);
public void set_timeout (uint timeout);
public void touch ();
[Compact]
[CCode (cheader_filename = "gst/rtsp-server/rtsp-session.h")]
public class RTSPSessionMedia {
+ public uint counter;
public weak Gst.RTSPMedia media;
public Gst.RTSPState state;
public weak GLib.Array streams;
public weak Gst.RTSPUrl url;
+ public bool alloc_channels (Gst.RTSPRange range);
public unowned Gst.RTSPSessionStream get_stream (uint idx);
public bool set_state (Gst.State state);
}
public class RTSPSessionPool : GLib.Object {
public weak GLib.Mutex @lock;
public weak GLib.HashTable sessions;
+ [CCode (has_construct_function = false)]
+ public RTSPSessionPool ();
public uint cleanup ();
public Gst.RTSPSession create ();
[NoWrapper]
public Gst.RTSPSession? find (string sessionid);
public uint get_max_sessions ();
public uint get_n_sessions ();
- [CCode (has_construct_function = false)]
- public RTSPSessionPool ();
public bool remove (Gst.RTSPSession sess);
public void set_max_sessions (uint max);
public uint max_sessions { get; set; }
public void set_keepalive (Gst.RTSPKeepAliveFunc keep_alive, GLib.DestroyNotify notify);
public Gst.RTSPTransport set_transport (Gst.RTSPTransport ct);
}
- [CCode (cprefix = "GST_RTSP_FILTER_", has_type_id = "0", cheader_filename = "gst/gst.h")]
+ [Compact]
+ [CCode (cheader_filename = "gst/gst.h")]
+ public class SDPInfo {
+ public weak string server_ip;
+ public weak string server_proto;
+ }
+ [CCode (cprefix = "GST_RTSP_FILTER_", has_type_id = false, cheader_filename = "gst/gst.h")]
public enum RTSPFilterResult {
REMOVE,
KEEP,
REF
}
+ [CCode (cprefix = "GST_RTSP_MEDIA_STATUS_", has_type_id = false, cheader_filename = "gst/gst.h")]
+ public enum RTSPMediaStatus {
+ UNPREPARED,
+ PREPARING,
+ PREPARED,
+ ERROR
+ }
[CCode (cheader_filename = "gst/rtsp-server/rtsp-media.h")]
public delegate void RTSPKeepAliveFunc ();
[CCode (cheader_filename = "gst/rtsp-server/rtsp-media.h")]
[CCode (cheader_filename = "gst/gst.h")]
public static Gst.RTSPResult rtsp_params_set (Gst.RTSPClient client, Gst.RTSPUrl uri, Gst.RTSPSession session, Gst.RTSPMessage request, Gst.RTSPMessage response);
[CCode (cheader_filename = "gst/rtsp-server/rtsp-sdp.h")]
- public static unowned Gst.SDPMessage rtsp_sdp_from_media (Gst.RTSPMedia media);
+ public static bool rtsp_sdp_from_media (ref unowned Gst.SDPMessage sdp, Gst.SDPInfo info, Gst.RTSPMedia media);
}
</parameters>
</function>
<function name="rtsp_sdp_from_media" symbol="gst_rtsp_sdp_from_media">
- <return-type type="GstSDPMessage*"/>
+ <return-type type="gboolean"/>
<parameters>
+ <parameter name="sdp" type="GstSDPMessage*"/>
+ <parameter name="info" type="GstSDPInfo*"/>
<parameter name="media" type="GstRTSPMedia*"/>
</parameters>
</function>
<field name="caps_sig" type="gulong"/>
<field name="caps" type="GstCaps*"/>
<field name="transports" type="GList*"/>
+ <field name="filter_duplicates" type="gboolean"/>
+ <field name="destinations" type="GList*"/>
</struct>
<struct name="GstRTSPMediaTrans">
+ <method name="cleanup" symbol="gst_rtsp_media_trans_cleanup">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="trans" type="GstRTSPMediaTrans*"/>
+ </parameters>
+ </method>
<field name="idx" type="guint"/>
<field name="send_rtp" type="GstRTSPSendFunc"/>
<field name="send_rtcp" type="GstRTSPSendFunc"/>
<field name="rtpsource" type="GObject*"/>
</struct>
<struct name="GstRTSPSessionMedia">
+ <method name="alloc_channels" symbol="gst_rtsp_session_media_alloc_channels">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPSessionMedia*"/>
+ <parameter name="range" type="GstRTSPRange*"/>
+ </parameters>
+ </method>
<method name="get_stream" symbol="gst_rtsp_session_media_get_stream">
<return-type type="GstRTSPSessionStream*"/>
<parameters>
<field name="url" type="GstRTSPUrl*"/>
<field name="media" type="GstRTSPMedia*"/>
<field name="state" type="GstRTSPState"/>
+ <field name="counter" type="guint"/>
<field name="streams" type="GArray*"/>
</struct>
<struct name="GstRTSPSessionStream">
<field name="trans" type="GstRTSPMediaTrans"/>
<field name="media_stream" type="GstRTSPMediaStream*"/>
</struct>
+ <struct name="GstSDPInfo">
+ <field name="server_proto" type="gchar*"/>
+ <field name="server_ip" type="gchar*"/>
+ </struct>
<enum name="GstRTSPFilterResult">
<member name="GST_RTSP_FILTER_REMOVE" value="0"/>
<member name="GST_RTSP_FILTER_KEEP" value="1"/>
<member name="GST_RTSP_FILTER_REF" value="2"/>
</enum>
+ <enum name="GstRTSPMediaStatus">
+ <member name="GST_RTSP_MEDIA_STATUS_UNPREPARED" value="0"/>
+ <member name="GST_RTSP_MEDIA_STATUS_PREPARING" value="1"/>
+ <member name="GST_RTSP_MEDIA_STATUS_PREPARED" value="2"/>
+ <member name="GST_RTSP_MEDIA_STATUS_ERROR" value="3"/>
+ </enum>
<object name="GstRTSPClient" parent="GObject" type-name="GstRTSPClient" get-type="gst_rtsp_client_get_type">
<method name="accept" symbol="gst_rtsp_client_accept">
<return-type type="gboolean"/>
<field name="connection" type="GstRTSPConnection*"/>
<field name="watch" type="GstRTSPWatch*"/>
<field name="watchid" type="guint"/>
+ <field name="server_ip" type="gchar*"/>
+ <field name="is_ipv6" type="gboolean"/>
<field name="session_pool" type="GstRTSPSessionPool*"/>
<field name="media_mapping" type="GstRTSPMediaMapping*"/>
<field name="uri" type="GstRTSPUrl*"/>
<field name="sessions" type="GList*"/>
</object>
<object name="GstRTSPMedia" parent="GObject" type-name="GstRTSPMedia" get-type="gst_rtsp_media_get_type">
+ <method name="get_protocols" symbol="gst_rtsp_media_get_protocols">
+ <return-type type="GstRTSPLowerTrans"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ </parameters>
+ </method>
<method name="get_stream" symbol="gst_rtsp_media_get_stream">
<return-type type="GstRTSPMediaStream*"/>
<parameters>
<parameter name="idx" type="guint"/>
</parameters>
</method>
+ <method name="is_eos_shutdown" symbol="gst_rtsp_media_is_eos_shutdown">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ </parameters>
+ </method>
<method name="is_prepared" symbol="gst_rtsp_media_is_prepared">
<return-type type="gboolean"/>
<parameters>
<parameter name="range" type="GstRTSPTimeRange*"/>
</parameters>
</method>
+ <method name="set_eos_shutdown" symbol="gst_rtsp_media_set_eos_shutdown">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ <parameter name="eos_shutdown" type="gboolean"/>
+ </parameters>
+ </method>
+ <method name="set_protocols" symbol="gst_rtsp_media_set_protocols">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="media" type="GstRTSPMedia*"/>
+ <parameter name="protocols" type="GstRTSPLowerTrans"/>
+ </parameters>
+ </method>
<method name="set_reusable" symbol="gst_rtsp_media_set_reusable">
<return-type type="void"/>
<parameters>
<parameter name="media" type="GstRTSPMedia*"/>
</parameters>
</method>
+ <property name="eos-shutdown" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+ <property name="protocols" type="GstRTSPLowerTrans" readable="1" writable="1" construct="0" construct-only="0"/>
<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">
<parameter name="media" type="GstRTSPMedia*"/>
</parameters>
</vfunc>
+ <field name="lock" type="GMutex*"/>
+ <field name="cond" type="GCond*"/>
<field name="shared" type="gboolean"/>
<field name="reusable" type="gboolean"/>
+ <field name="protocols" type="GstRTSPLowerTrans"/>
<field name="reused" type="gboolean"/>
+ <field name="is_ipv6" type="gboolean"/>
+ <field name="eos_shutdown" type="gboolean"/>
<field name="element" type="GstElement*"/>
<field name="streams" type="GArray*"/>
<field name="dynamic" type="GList*"/>
- <field name="prepared" type="gboolean"/>
+ <field name="status" type="GstRTSPMediaStatus"/>
<field name="active" type="gint"/>
+ <field name="eos_pending" type="gboolean"/>
<field name="pipeline" type="GstElement*"/>
<field name="fakesink" type="GstElement*"/>
<field name="source" type="GSource*"/>
<parameter name="factory" type="GstRTSPMediaFactory*"/>
</parameters>
</method>
+ <method name="is_eos_shutdown" symbol="gst_rtsp_media_factory_is_eos_shutdown">
+ <return-type type="gboolean"/>
+ <parameters>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ </parameters>
+ </method>
<method name="is_shared" symbol="gst_rtsp_media_factory_is_shared">
<return-type type="gboolean"/>
<parameters>
<constructor name="new" symbol="gst_rtsp_media_factory_new">
<return-type type="GstRTSPMediaFactory*"/>
</constructor>
+ <method name="set_eos_shutdown" symbol="gst_rtsp_media_factory_set_eos_shutdown">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="factory" type="GstRTSPMediaFactory*"/>
+ <parameter name="eos_shutdown" type="gboolean"/>
+ </parameters>
+ </method>
<method name="set_launch" symbol="gst_rtsp_media_factory_set_launch">
<return-type type="void"/>
<parameters>
<parameter name="shared" type="gboolean"/>
</parameters>
</method>
+ <property name="eos-shutdown" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
<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">
<field name="lock" type="GMutex*"/>
<field name="launch" type="gchar*"/>
<field name="shared" type="gboolean"/>
+ <field name="eos_shutdown" type="gboolean"/>
<field name="medias_lock" type="GMutex*"/>
<field name="medias" type="GHashTable*"/>
</object>
<parameter name="server" type="GstRTSPServer*"/>
</parameters>
</method>
+ <method name="get_address" symbol="gst_rtsp_server_get_address">
+ <return-type type="gchar*"/>
+ <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_port" symbol="gst_rtsp_server_get_port">
- <return-type type="gint"/>
+ <method name="get_service" symbol="gst_rtsp_server_get_service">
+ <return-type type="gchar*"/>
<parameters>
<parameter name="server" type="GstRTSPServer*"/>
</parameters>
<constructor name="new" symbol="gst_rtsp_server_new">
<return-type type="GstRTSPServer*"/>
</constructor>
+ <method name="set_address" symbol="gst_rtsp_server_set_address">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="server" type="GstRTSPServer*"/>
+ <parameter name="address" type="gchar*"/>
+ </parameters>
+ </method>
<method name="set_backlog" symbol="gst_rtsp_server_set_backlog">
<return-type type="void"/>
<parameters>
<parameter name="mapping" type="GstRTSPMediaMapping*"/>
</parameters>
</method>
- <method name="set_port" symbol="gst_rtsp_server_set_port">
+ <method name="set_service" symbol="gst_rtsp_server_set_service">
<return-type type="void"/>
<parameters>
<parameter name="server" type="GstRTSPServer*"/>
- <parameter name="port" type="gint"/>
+ <parameter name="service" type="gchar*"/>
</parameters>
</method>
<method name="set_session_pool" symbol="gst_rtsp_server_set_session_pool">
<parameter name="pool" type="GstRTSPSessionPool*"/>
</parameters>
</method>
+ <property name="address" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
<property name="backlog" type="gint" 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="service" type="char*" 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*"/>
<parameter name="channel" type="GIOChannel*"/>
</parameters>
</vfunc>
- <field name="port" type="gint"/>
+ <field name="address" type="gchar*"/>
+ <field name="service" type="gchar*"/>
<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="media_mapping" type="GstRTSPMediaMapping*"/>
</object>
<object name="GstRTSPSession" parent="GObject" type-name="GstRTSPSession" get-type="gst_rtsp_session_get_type">
+ <method name="allow_expire" symbol="gst_rtsp_session_allow_expire">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="session" type="GstRTSPSession*"/>
+ </parameters>
+ </method>
<method name="get_media" symbol="gst_rtsp_session_get_media">
<return-type type="GstRTSPSessionMedia*"/>
<parameters>
<parameter name="now" type="GTimeVal*"/>
</parameters>
</method>
+ <method name="prevent_expire" symbol="gst_rtsp_session_prevent_expire">
+ <return-type type="void"/>
+ <parameters>
+ <parameter name="session" type="GstRTSPSession*"/>
+ </parameters>
+ </method>
<method name="release_media" symbol="gst_rtsp_session_release_media">
<return-type type="gboolean"/>
<parameters>
<field name="timeout" type="guint"/>
<field name="create_time" type="GTimeVal"/>
<field name="last_access" type="GTimeVal"/>
+ <field name="expire_count" type="gint"/>
<field name="medias" type="GList*"/>
</object>
<object name="GstRTSPSessionPool" parent="GObject" type-name="GstRTSPSessionPool" get-type="gst_rtsp_session_pool_get_type">
gst_rtsp_media_factory_create_pipeline transfer_ownership="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_sdp_from_media.sdp is_ref="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_address transfer_ownership="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_get_service 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"