From 6e560ae5d853f63b51d695767141e3c1ce8716fb Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 23 Feb 2009 10:57:08 +0100 Subject: [PATCH] Add method for handling server requests Add a receive_request so that extensions can react to server requests. --- gst-libs/gst/rtsp/gstrtspextension.c | 14 ++++++++++++++ gst-libs/gst/rtsp/gstrtspextension.h | 6 +++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gst-libs/gst/rtsp/gstrtspextension.c b/gst-libs/gst/rtsp/gstrtspextension.c index df644b0..d02878a 100644 --- a/gst-libs/gst/rtsp/gstrtspextension.c +++ b/gst-libs/gst/rtsp/gstrtspextension.c @@ -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) { diff --git a/gst-libs/gst/rtsp/gstrtspextension.h b/gst-libs/gst/rtsp/gstrtspextension.h index cf4067e..a697c90 100644 --- a/gst-libs/gst/rtsp/gstrtspextension.h +++ b/gst-libs/gst/rtsp/gstrtspextension.h @@ -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, -- 2.7.4