GstRTSPSession * session);
static void unlink_session_transports (GstRTSPClient * client,
GstRTSPSession * session, GstRTSPSessionMedia * media);
+static GstRTSPResult default_params_set (GstRTSPClient * client,
+ GstRTSPClientState * state);
+static GstRTSPResult default_params_get (GstRTSPClient * client,
+ GstRTSPClientState * state);
G_DEFINE_TYPE (GstRTSPClient, gst_rtsp_client, G_TYPE_OBJECT);
gobject_class->finalize = gst_rtsp_client_finalize;
klass->create_sdp = create_sdp;
+ klass->params_set = default_params_set;
+ klass->params_get = default_params_get;
g_object_class_install_property (gobject_class, PROP_SESSION_POOL,
g_param_spec_object ("session-pool", "Session Pool",
}
}
+static GstRTSPResult
+default_params_set (GstRTSPClient * client, GstRTSPClientState * state)
+{
+ GstRTSPResult res;
+
+ res = gst_rtsp_params_set (client, state);
+
+ return res;
+}
+
+static GstRTSPResult
+default_params_get (GstRTSPClient * client, GstRTSPClientState * state)
+{
+ GstRTSPResult res;
+
+ res = gst_rtsp_params_get (client, state);
+
+ return res;
+}
+
static gboolean
handle_get_param_request (GstRTSPClient * client, GstRTSPClientState * state)
{
send_generic_response (client, GST_RTSP_STS_OK, state);
} else {
/* there is a body, handle the params */
- res = gst_rtsp_params_get (client, state);
+ res = GST_RTSP_CLIENT_GET_CLASS (client)->params_get (client, state);
if (res != GST_RTSP_OK)
goto bad_request;
send_generic_response (client, GST_RTSP_STS_OK, state);
} else {
/* there is a body, handle the params */
- res = gst_rtsp_params_set (client, state);
+ res = GST_RTSP_CLIENT_GET_CLASS (client)->params_set (client, state);
if (res != GST_RTSP_OK)
goto bad_request;
GstRTSPClientPrivate *priv;
};
+/**
+ * GstRTSPClientClass:
+ * @params_set: set parameters. This function should also initialize the
+ * RTSP response(state->response) via a call to gst_rtsp_message_init_response()
+ * @params_get: get parameters. This function should also initialize the
+ * RTSP response(state->response) via a call to gst_rtsp_message_init_response()
+ *
+ * The client class structure.
+ */
struct _GstRTSPClientClass {
GObjectClass parent_class;
GstSDPMessage * (*create_sdp) (GstRTSPClient *client, GstRTSPMedia *media);
+ GstRTSPResult (*params_set) (GstRTSPClient *client, GstRTSPClientState *state);
+ GstRTSPResult (*params_get) (GstRTSPClient *client, GstRTSPClientState *state);
/* signals */
void (*closed) (GstRTSPClient *client);