From: <th...@ke...> - 2007-07-26 19:57:41
|
CVS Root: /cvs/gstreamer Module: gst-plugins-base Changes by: thaytan Date: Thu Jul 26 2007 19:57:29 UTC Log message: * gst-libs/gst/interfaces/Makefile.am: * gst-libs/gst/interfaces/interfaces-marshal.list: * gst-libs/gst/interfaces/rtspextension.c: * gst-libs/gst/interfaces/rtspextension.h: * gst-libs/gst/rtsp/Makefile.am: * gst-libs/gst/rtsp/gstrtsp.h: * gst-libs/gst/rtsp/gstrtspextension.c: (gst_rtsp_extension_get_type), (gst_rtsp_extension_iface_init), (gst_rtsp_extension_detect_server), (gst_rtsp_extension_before_send), (gst_rtsp_extension_after_send), (gst_rtsp_extension_parse_sdp), (gst_rtsp_extension_setup_media), (gst_rtsp_extension_configure_stream), (gst_rtsp_extension_get_transports), (gst_rtsp_extension_stream_select), (gst_rtsp_extension_send): * gst-libs/gst/rtsp/gstrtspextension.h: * gst-libs/gst/rtsp/rtsp-marshal.list: Move the rtspextension.h interface into gstrtspextension.h as part of libgstrtsp instead of libgstinterfaces, because it's only for use within plugins, not applications. Add stuff to do the enum & marshal generation needed in libgstrtsp now. Use the GST_TYPE_RTSP_RESULT enum type for the return value of the signal that the GstRTSPExtension interface emits, since G_TYPE_ENUM is abstract. Modified files: . : ChangeLog gst-libs/gst/interfaces: Makefile.am interfaces-marshal.list gst-libs/gst/rtsp: Makefile.am Added files: gst-libs/gst/rtsp: gstrtsp.h gstrtspextension.c gstrtspextension.h rtsp-marshal.list Removed files: gst-libs/gst/interfaces: rtspextension.c rtspextension.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/ChangeLog.diff?r1=1.3428&r2=1.3429 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst-libs/gst/interfaces/Makefile.am.diff?r1=1.8&r2=1.9 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst-libs/gst/interfaces/interfaces-marshal.list.diff?r1=1.2&r2=1.3 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst-libs/gst/interfaces/rtspextension.c http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst-libs/gst/interfaces/rtspextension.h http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst-libs/gst/rtsp/Makefile.am.diff?r1=1.1&r2=1.2 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst-libs/gst/rtsp/gstrtsp.h?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.c?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst-libs/gst/rtsp/gstrtspextension.h?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/gst-libs/gst/rtsp/rtsp-marshal.list?rev=1.1&content-type=text/vnd.viewcvs-markup ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-plugins-base/ChangeLog,v retrieving revision 1.3428 retrieving revision 1.3429 diff -u -d -r1.3428 -r1.3429 --- ChangeLog 26 Jul 2007 15:48:00 -0000 1.3428 +++ ChangeLog 26 Jul 2007 19:57:14 -0000 1.3429 @@ -1,3 +1,29 @@ +2007-07-26 Jan Schmidt <th...@ma...> + + * gst-libs/gst/interfaces/Makefile.am: + * gst-libs/gst/interfaces/interfaces-marshal.list: + * gst-libs/gst/interfaces/rtspextension.c: + * gst-libs/gst/interfaces/rtspextension.h: + * gst-libs/gst/rtsp/Makefile.am: + * gst-libs/gst/rtsp/gstrtsp.h: + * gst-libs/gst/rtsp/gstrtspextension.c: + (gst_rtsp_extension_get_type), (gst_rtsp_extension_iface_init), + (gst_rtsp_extension_detect_server), + (gst_rtsp_extension_before_send), (gst_rtsp_extension_after_send), + (gst_rtsp_extension_parse_sdp), (gst_rtsp_extension_setup_media), + (gst_rtsp_extension_configure_stream), + (gst_rtsp_extension_get_transports), + (gst_rtsp_extension_stream_select), (gst_rtsp_extension_send): + * gst-libs/gst/rtsp/gstrtspextension.h: + * gst-libs/gst/rtsp/rtsp-marshal.list: + Move the rtspextension.h interface into gstrtspextension.h + as part of libgstrtsp instead of libgstinterfaces, because it's + only for use within plugins, not applications. + Add stuff to do the enum & marshal generation needed in libgstrtsp now. + Use the GST_TYPE_RTSP_RESULT enum type for the return value of the + signal that the GstRTSPExtension interface emits, since G_TYPE_ENUM + is abstract. 2007-07-26 Wim Taymans <wim...@gm...> * gst-libs/gst/interfaces/Makefile.am: Index: Makefile.am RCS file: /cvs/gstreamer/gst-plugins-base/gst-libs/gst/interfaces/Makefile.am,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Makefile.am 26 Jul 2007 15:48:01 -0000 1.8 +++ Makefile.am 26 Jul 2007 19:57:15 -0000 1.9 @@ -10,7 +10,6 @@ mixertrack.h \ navigation.h \ propertyprobe.h \ - rtspextension.h \ tuner.h \ tunernorm.h \ tunerchannel.h \ @@ -46,7 +45,6 @@ mixertrack.c \ navigation.c \ propertyprobe.c \ - rtspextension.c \ tuner.c \ tunernorm.c \ tunerchannel.c \ Index: interfaces-marshal.list RCS file: /cvs/gstreamer/gst-plugins-base/gst-libs/gst/interfaces/interfaces-marshal.list,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- interfaces-marshal.list 26 Jul 2007 15:48:01 -0000 1.2 +++ interfaces-marshal.list 26 Jul 2007 19:57:15 -0000 1.3 @@ -3,4 +3,3 @@ VOID:OBJECT,STRING VOID:OBJECT,ULONG VOID:OBJECT,INT -ENUM:POINTER,POINTER --- rtspextension.c DELETED --- --- rtspextension.h DELETED --- RCS file: /cvs/gstreamer/gst-plugins-base/gst-libs/gst/rtsp/Makefile.am,v retrieving revision 1.1 diff -u -d -r1.1 -r1.2 --- Makefile.am 24 Jul 2007 11:52:55 -0000 1.1 +++ Makefile.am 26 Jul 2007 19:57:15 -0000 1.2 @@ -3,6 +3,7 @@ libgstrtspinclude_HEADERS = gstrtspbase64.h \ gstrtspconnection.h \ gstrtspdefs.h \ + gstrtspextension.h \ gstrtspmessage.h \ gstrtsprange.h \ gstrtsptransport.h \ @@ -13,17 +14,36 @@ lib_LTLIBRARIES = libgstrtsp-@GST_MAJORMINOR@.la +built_sources = rtsp-marshal.c gstrtsp-enumtypes.c +built_headers = rtsp-marshal.h gstrtsp-enumtypes.h libgstrtsp_@GST_MAJORMINOR@_la_SOURCES = gstrtspbase64.c \ gstrtspconnection.c \ gstrtspdefs.c \ + gstrtspextension.c \ gstrtspmessage.c \ gstrtsprange.c \ gstrtsptransport.c \ gstrtspurl.c +nodist_libgstrtsp_@GST_MAJORMINOR@_la_SOURCES = $(built_sources) +nodist_libgstrtspinclude_HEADERS = gstrtsp-enumtypes.h +noinst_HEADERS = gstrtsp.h #gstrtspextwms.c #rtspextreal.c libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) libgstrtsp_@GST_MAJORMINOR@_la_LIBADD = $(GST_LIBS) libgstrtsp_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS) +BUILT_SOURCES = $(built_headers) $(built_sources) +EXTRA_DIST = rtsp-marshal.list +CLEANFILES = $(BUILT_SOURCES) +glib_enum_prefix=gst_rtsp +glib_enum_define=gst_rtsp +glib_enum_headers=gstrtspdefs.h +include $(top_srcdir)/common/glib-gen.mak --- NEW FILE: gstrtsp.h --- /* GStreamer RTSP extension * Copyright (C) 2007 Wim Taymans <wim...@gm...> * * rtsp.h: Generic include to pull in defs * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * 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. */ #ifndef __RTSP_H__ #define __RTSP_H__ #include <gst/rtsp/gstrtspdefs.h> #include <gst/rtsp/gstrtsp-enumtypes.h> #endif --- NEW FILE: gstrtspextension.c --- * gstrtspextension.c: RTSP extension mechanism /** * SECTION:gstrtspextension * @short_description: Interface for extending RTSP protocols * <refsect2> * <para> * </para> * </refsect2> * Last reviewed on 2007-07-25 (0.10.14) #ifdef HAVE_CONFIG_H #include "config.h" #include "rtsp-marshal.h" #include "gstrtsp-enumtypes.h" #include "gstrtspextension.h" static void gst_rtsp_extension_iface_init (GstRTSPExtension * iface); enum { SIGNAL_SEND, LAST_SIGNAL }; static guint gst_rtsp_extension_signals[LAST_SIGNAL] = { 0 }; GType gst_rtsp_extension_get_type (void) static GType gst_rtsp_extension_type = 0; if (!gst_rtsp_extension_type) { static const GTypeInfo gst_rtsp_extension_info = { sizeof (GstRTSPExtensionInterface), (GBaseInitFunc) gst_rtsp_extension_iface_init, NULL, 0, }; gst_rtsp_extension_type = g_type_register_static (G_TYPE_INTERFACE, "GstRTSPExtension", &gst_rtsp_extension_info, 0); } return gst_rtsp_extension_type; } static void gst_rtsp_extension_iface_init (GstRTSPExtension * iface) static gboolean initialized = FALSE; if (!initialized) { gst_rtsp_extension_signals[SIGNAL_SEND] = g_signal_new ("send", G_TYPE_FROM_CLASS (iface), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRTSPExtensionInterface, send), NULL, NULL, gst_rtsp_marshal_ENUM__POINTER_POINTER, GST_TYPE_RTSP_RESULT, 2, G_TYPE_POINTER, G_TYPE_POINTER); initialized = TRUE; gboolean gst_rtsp_extension_detect_server (GstRTSPExtension * ext, GstRTSPMessage * resp) GstRTSPExtensionInterface *iface; gboolean res = TRUE; iface = GST_RTSP_EXTENSION_GET_IFACE (ext); if (iface->detect_server) res = iface->detect_server (ext, resp); return res; GstRTSPResult gst_rtsp_extension_before_send (GstRTSPExtension * ext, GstRTSPMessage * req) GstRTSPResult res = GST_RTSP_OK; if (iface->before_send) res = iface->before_send (ext, req); gst_rtsp_extension_after_send (GstRTSPExtension * ext, GstRTSPMessage * req, GstRTSPMessage * resp) if (iface->after_send) res = iface->after_send (ext, req, resp); gst_rtsp_extension_parse_sdp (GstRTSPExtension * ext, GstSDPMessage * sdp, GstStructure * s) if (iface->parse_sdp) res = iface->parse_sdp (ext, sdp, s); gst_rtsp_extension_setup_media (GstRTSPExtension * ext, GstSDPMedia * media) if (iface->setup_media) res = iface->setup_media (ext, media); gst_rtsp_extension_configure_stream (GstRTSPExtension * ext, GstCaps * caps) if (iface->configure_stream) res = iface->configure_stream (ext, caps); gst_rtsp_extension_get_transports (GstRTSPExtension * ext, GstRTSPLowerTrans protocols, gchar ** transport) if (iface->get_transports) res = iface->get_transports (ext, protocols, transport); gst_rtsp_extension_stream_select (GstRTSPExtension * ext, GstRTSPUrl * url) if (iface->stream_select) res = iface->stream_select (ext, url); gst_rtsp_extension_send (GstRTSPExtension * ext, GstRTSPMessage * req, g_signal_emit (G_OBJECT (iface), gst_rtsp_extension_signals[SIGNAL_SEND], 0, req, resp); --- NEW FILE: gstrtspextension.h --- /* GStreamer RTSP Extension * Copyright (C) 2007 Wim Taymans <wi...@fl...> * gstrtspextension.h: RTSP Extension interface. #ifndef __GST_RTSP_EXTENSION_H__ #define __GST_RTSP_EXTENSION_H__ #include <gst/gst.h> #include <gst/sdp/gstsdpmessage.h> #include <gst/rtsp/gstrtsptransport.h> #include <gst/rtsp/gstrtspmessage.h> #include <gst/rtsp/gstrtspurl.h> G_BEGIN_DECLS #define GST_TYPE_RTSP_EXTENSION \ (gst_rtsp_extension_get_type ()) #define GST_RTSP_EXTENSION(obj) \ (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_RTSP_EXTENSION, GstRTSPExtension)) #define GST_IS_RTSP_EXTENSION(obj) \ (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_RTSP_EXTENSION)) #define GST_RTSP_EXTENSION_GET_IFACE(inst) \ (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_RTSP_EXTENSION, GstRTSPExtensionInterface)) typedef struct _GstRTSPExtension GstRTSPExtension; typedef struct _GstRTSPExtensionInterface GstRTSPExtensionInterface; struct _GstRTSPExtensionInterface { GTypeInterface parent; /* vfunctions */ gboolean (*detect_server) (GstRTSPExtension *ext, GstRTSPMessage *resp); GstRTSPResult (*before_send) (GstRTSPExtension *ext, GstRTSPMessage *req); GstRTSPResult (*after_send) (GstRTSPExtension *ext, GstRTSPMessage *req, GstRTSPMessage *resp); GstRTSPResult (*parse_sdp) (GstRTSPExtension *ext, GstSDPMessage *sdp, GstStructure *s); GstRTSPResult (*setup_media) (GstRTSPExtension *ext, GstSDPMedia *media); gboolean (*configure_stream) (GstRTSPExtension *ext, GstCaps *caps); GstRTSPResult (*get_transports) (GstRTSPExtension *ext, GstRTSPLowerTrans protocols, gchar **transport); GstRTSPResult (*stream_select) (GstRTSPExtension *ext, GstRTSPUrl *url); /* signals */ GstRTSPResult (*send) (GstRTSPExtension *ext, GstRTSPMessage *req, GstRTSPMessage *resp); /*< private >*/ gpointer _gst_reserved[GST_PADDING]; GType gst_rtsp_extension_get_type (void); /* invoke vfunction on interface */ gboolean gst_rtsp_extension_detect_server (GstRTSPExtension *ext, GstRTSPMessage *resp); GstRTSPResult gst_rtsp_extension_before_send (GstRTSPExtension *ext, GstRTSPMessage *req); GstRTSPResult gst_rtsp_extension_after_send (GstRTSPExtension *ext, GstRTSPMessage *req, GstRTSPMessage *resp); GstRTSPResult gst_rtsp_extension_parse_sdp (GstRTSPExtension *ext, GstSDPMessage *sdp, GstStructure *s); GstRTSPResult gst_rtsp_extension_setup_media (GstRTSPExtension *ext, GstSDPMedia *media); gboolean gst_rtsp_extension_configure_stream (GstRTSPExtension *ext, GstCaps *caps); GstRTSPResult gst_rtsp_extension_get_transports (GstRTSPExtension *ext, GstRTSPLowerTrans protocols, gchar **transport); GstRTSPResult gst_rtsp_extension_stream_select (GstRTSPExtension *ext, GstRTSPUrl *url); /* signal emision */ GstRTSPResult gst_rtsp_extension_send (GstRTSPExtension *ext, GstRTSPMessage *req, G_END_DECLS #endif /* __GST_RTSP_EXTENSION_H__ */ --- NEW FILE: rtsp-marshal.list --- ENUM:POINTER,POINTER |