Add method for handling server requests
authorWim Taymans <wim.taymans@collabora.co.uk>
Mon, 23 Feb 2009 09:57:08 +0000 (10:57 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Mon, 23 Feb 2009 09:57:08 +0000 (10:57 +0100)
Add a receive_request so that extensions can react to server requests.

gst-libs/gst/rtsp/gstrtspextension.c
gst-libs/gst/rtsp/gstrtspextension.h

index df644b0..d02878a 100644 (file)
@@ -196,6 +196,20 @@ gst_rtsp_extension_stream_select (GstRTSPExtension * ext, GstRTSPUrl * url)
 }
 
 GstRTSPResult
+gst_rtsp_extension_receive_request (GstRTSPExtension * ext,
+    GstRTSPMessage * msg)
+{
+  GstRTSPExtensionInterface *iface;
+  GstRTSPResult res = GST_RTSP_ENOTIMPL;
+
+  iface = GST_RTSP_EXTENSION_GET_IFACE (ext);
+  if (iface->receive_request)
+    res = iface->receive_request (ext, msg);
+
+  return res;
+}
+
+GstRTSPResult
 gst_rtsp_extension_send (GstRTSPExtension * ext, GstRTSPMessage * req,
     GstRTSPMessage * resp)
 {
index cf4067e..a697c90 100644 (file)
@@ -64,8 +64,11 @@ struct _GstRTSPExtensionInterface {
   /* signals */
   GstRTSPResult (*send)             (GstRTSPExtension *ext, GstRTSPMessage *req, GstRTSPMessage *resp);
 
+  /* ABI: more vfunctions added later */
+  GstRTSPResult (*receive_request)  (GstRTSPExtension *ext, GstRTSPMessage *req);
+
   /*< private >*/
-  gpointer                 _gst_reserved[GST_PADDING];
+  gpointer                 _gst_reserved[GST_PADDING - 1];
 };
 
 GType           gst_rtsp_extension_get_type          (void);
@@ -83,6 +86,7 @@ gboolean        gst_rtsp_extension_configure_stream  (GstRTSPExtension *ext, Gst
 GstRTSPResult   gst_rtsp_extension_get_transports    (GstRTSPExtension *ext, GstRTSPLowerTrans protocols,
                                                       gchar **transport);
 GstRTSPResult   gst_rtsp_extension_stream_select     (GstRTSPExtension *ext, GstRTSPUrl *url);
+GstRTSPResult   gst_rtsp_extension_receive_request   (GstRTSPExtension *ext, GstRTSPMessage *req);
 
 /* signal emision */
 GstRTSPResult   gst_rtsp_extension_send              (GstRTSPExtension *ext, GstRTSPMessage *req,