MediaMapping -> MountPoints
[platform/upstream/gstreamer.git] / gst / rtsp-server / rtsp-client.h
index 5baf21e..2b84319 100644 (file)
@@ -13,8 +13,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 #include <gst/gst.h>
@@ -31,8 +31,9 @@ typedef struct _GstRTSPClientState GstRTSPClientState;
 
 #include "rtsp-server.h"
 #include "rtsp-media.h"
-#include "rtsp-media-mapping.h"
+#include "rtsp-mount-points.h"
 #include "rtsp-session-pool.h"
+#include "rtsp-session-media.h"
 #include "rtsp-auth.h"
 #include "rtsp-sdp.h"
 
@@ -53,12 +54,13 @@ typedef struct _GstRTSPClientState GstRTSPClientState;
  * @session: the session, can be NULL
  * @sessmedia: the session media for the url can be NULL
  * @factory: the media factory for the url, can be NULL.
- * @media: the session media for the url can be NULL
+ * @media: the media for the url can be NULL
+ * @stream: the stream for the url can be NULL
  * @response: the response
  *
  * Information passed around containing the client state of a request.
  */
-struct _GstRTSPClientState{
+struct _GstRTSPClientState {
   GstRTSPMessage      *request;
   GstRTSPUrl          *uri;
   GstRTSPMethod        method;
@@ -66,6 +68,7 @@ struct _GstRTSPClientState{
   GstRTSPSessionMedia *sessmedia;
   GstRTSPMediaFactory *factory;
   GstRTSPMedia        *media;
+  GstRTSPStream       *stream;
   GstRTSPMessage      *response;
 };
 
@@ -74,13 +77,13 @@ struct _GstRTSPClientState{
  *
  * @connection: the connection object handling the client request.
  * @watch: watch for the connection
- * @watchid: id of the watch
  * @ip: ip address used by the client to connect to us
+ * @use_client_settings: whether to allow client transport settings for multicast
  * @session_pool: handle to the session pool used by the client.
- * @media_mapping: handle to the media mapping used by the client.
+ * @mount_points: handle to the mount points used by the client.
  * @uri: cached uri
  * @media: cached media
- * @streams: a list of streams using @connection.
+ * @transports: a list of #GstRTSPStreamTransport using @connection.
  * @sessions: a list of sessions managed by @connection.
  *
  * The client structure.
@@ -90,20 +93,22 @@ struct _GstRTSPClient {
 
   GstRTSPConnection *connection;
   GstRTSPWatch      *watch;
-  guint              watchid;
   gchar             *server_ip;
   gboolean           is_ipv6;
+  gboolean           use_client_settings;
 
   GstRTSPServer        *server;
   GstRTSPSessionPool   *session_pool;
-  GstRTSPMediaMapping  *media_mapping;
+  GstRTSPMountPoints   *mount_points;
   GstRTSPAuth          *auth;
 
   GstRTSPUrl     *uri;
   GstRTSPMedia   *media;
 
-  GList *streams;
+  GList *transports;
   GList *sessions;
+
+  guint teardown_response_seq;
 };
 
 struct _GstRTSPClientClass {
@@ -135,9 +140,13 @@ void                  gst_rtsp_client_set_session_pool  (GstRTSPClient *client,
                                                          GstRTSPSessionPool *pool);
 GstRTSPSessionPool *  gst_rtsp_client_get_session_pool  (GstRTSPClient *client);
 
-void                  gst_rtsp_client_set_media_mapping (GstRTSPClient *client,
-                                                         GstRTSPMediaMapping *mapping);
-GstRTSPMediaMapping * gst_rtsp_client_get_media_mapping (GstRTSPClient *client);
+void                  gst_rtsp_client_set_mount_points  (GstRTSPClient *client,
+                                                         GstRTSPMountPoints *mounts);
+GstRTSPMountPoints *  gst_rtsp_client_get_mount_points  (GstRTSPClient *client);
+
+void                  gst_rtsp_client_set_use_client_settings (GstRTSPClient * client,
+                                                               gboolean use_client_settings);
+gboolean              gst_rtsp_client_get_use_client_settings (GstRTSPClient * client);
 
 void                  gst_rtsp_client_set_auth          (GstRTSPClient *client, GstRTSPAuth *auth);
 GstRTSPAuth *         gst_rtsp_client_get_auth          (GstRTSPClient *client);
@@ -148,13 +157,17 @@ gboolean              gst_rtsp_client_accept            (GstRTSPClient *client,
                                                          GCancellable *cancellable,
                                                          GError **error);
 
-gboolean              gst_rtsp_client_create_from_socket(GstRTSPClient * client,
+gboolean              gst_rtsp_client_use_socket        (GstRTSPClient * client,
                                                          GSocket *socket,
                                                          const gchar * ip,
                                                          gint port,
                                                          const gchar *initial_buffer,
                                                          GError **error);
 
+guint                 gst_rtsp_client_attach            (GstRTSPClient *client,
+                                                         GMainContext *context);
+
+
 G_END_DECLS
 
 #endif /* __GST_RTSP_CLIENT_H__ */