mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-04 16:39:39 +00:00
4b908e33e0
Original commit message from CVS: 2005-06-08 Andy Wingo <wingo@pobox.com> * gst/gstutils.c: RPAD fixes all around. (gst_element_link_pads): Refcounting fixes. * tools/gst-inspect.c: * tools/gst-xmlinspect.c: * parse/grammar.y: * gst/base/gsttypefindhelper.c: * gst/base/gstbasesink.c: * gst/gstqueue.c: RPAD fixes. * gst/gstghostpad.h: * gst/gstghostpad.c: New ghost pad implementation as full proxy pads. The tricky thing is they provide both source and sink interfaces, since they proxy the internal pad for the external pad, and vice versa. Implement with lower-level ProxyPad objects, with the interior proxy pad as a child of the exterior ghost pad. Should write a doc on this. * gst/gstpad.h: s/RPAD/PAD/, s/RealPad/Pad/. (gst_pad_set_name, gst_pad_set_parent): Macros removed, use gst_object API. * gst/gstpad.c: Big changes. No more stub base GstPad, now all pads are real pads. No ghost pads in this file. Not documenting the myriad s/RPAD/PAD/ and REALIZE fixes. (gst_pad_class_init): Add properties for "direction" and "template". Both are construct-only, so they can't change during the life of the pad. Fixes properly deriving from GstPad. (gst_pad_custom_new, gst_pad_custom_new_from_template): Gone. For derived objects, just set properties when creating the objects via g_object_new. (gst_pad_get_parent): Implement as a function, return NULL if the parent is not an element. (gst_pad_get_real_parent, gst_pad_add_ghost_pad) (gst_pad_remove_ghost_pad, gst_pad_realize): Removed. * gst/gstobject.c (gst_object_class_init): Make name a construct property. Don't set it in the object init. * gst/gstelement.c (gst_element_add_pad): Don't allow adding pads with UNKNOWN direction. (gst_element_add_ghost_pad): Remove non-orthogonal API. Replace with gst_element_add_pad (e, gst_ghost_pad_new (name, pad)). (gst_element_remove_pad): Remove ghost-pad special cases. (gst_element_pads_activate): Remove rpad cruft. * gst/gstbin.c (gst_bin_change_state): Use gst_pad_get_parent to catch the pad's-parent-not-an-element case. * gst/gst.h: Include gstghostpad.h. * gst/gst.c (init_post): No more real, ghost pads. * gst/Makefile.am: Add gstghostpad.[ch]. * check/Makefile.am: * check/gst/gstbin.c: * check/gst/gstghostpad.c (test_ghost_pads): Check that linking into a bin creates ghost pads, and that the refcounts are right. Partly moved from gstbin.c.
241 lines
6 KiB
Makefile
241 lines
6 KiB
Makefile
lib_LTLIBRARIES = libgstreamer-@GST_MAJORMINOR@.la
|
|
noinst_LTLIBRARIES =
|
|
|
|
#GST_INSTRUMENT_FLAGS = -finstrument-functions -DGST_ENABLE_FUNC_INSTRUMENTATION
|
|
|
|
if GST_DISABLE_LOADSAVE
|
|
GST_LOADSAVE_SRC =
|
|
else
|
|
GST_LOADSAVE_SRC = gstxml.c
|
|
endif
|
|
|
|
if GST_DISABLE_PARSE
|
|
GST_PARSE_SRC =
|
|
GST_PARSE_DIRS =
|
|
GST_PARSE_LA =
|
|
else
|
|
GST_PARSE_SRC = gstparse.c
|
|
GST_PARSE_DIRS = parse
|
|
GST_PARSE_LA = parse/libgstparse.la
|
|
endif
|
|
|
|
if GST_DISABLE_TRACE
|
|
GST_TRACE_SRC =
|
|
else
|
|
GST_TRACE_SRC = gsttrace.c
|
|
endif
|
|
|
|
if GST_DISABLE_REGISTRY
|
|
GST_REGISTRY_SRC =
|
|
GST_REGISTRY_DIRS =
|
|
GST_REGISTRY_LA =
|
|
else
|
|
GST_REGISTRY_SRC = gstregistry.c
|
|
GST_REGISTRY_DIRS = registries
|
|
GST_REGISTRY_LA = registries/libgstxmlregistry.la
|
|
endif
|
|
|
|
if GST_DISABLE_ENUMTYPES
|
|
GST_ENUMTYPES_SRC =
|
|
else
|
|
GST_ENUMTYPES_SRC = gstenumtypes.c
|
|
endif
|
|
|
|
if GST_DISABLE_INDEX
|
|
GST_INDEX_SRC =
|
|
GST_INDEX_DIRS =
|
|
else
|
|
GST_INDEX_SRC = gstindex.c
|
|
GST_INDEX_DIRS = indexers
|
|
endif
|
|
|
|
if GST_DISABLE_PLUGIN
|
|
GST_PLUGIN_SRC =
|
|
else
|
|
GST_PLUGIN_SRC = gstplugin.c
|
|
endif
|
|
|
|
if GST_DISABLE_URI
|
|
GST_URI_SRC =
|
|
else
|
|
GST_URI_SRC = gsturi.c
|
|
endif
|
|
|
|
SUBDIRS = $(GST_PARSE_DIRS) $(GST_REGISTRY_DIRS) . base elements schedulers $(GST_INDEX_DIRS)
|
|
DIST_SUBDIRS = base elements parse registries schedulers indexers
|
|
|
|
# make variables for all generated source and header files to make the
|
|
# distinction clear
|
|
|
|
built_header_configure = gstconfig.h gstversion.h
|
|
built_header_make = gstenumtypes.h gstmarshal.h
|
|
built_source_make = $(GST_ENUMTYPES_SRC) gstmarshal.c
|
|
|
|
EXTRA_libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \
|
|
gstmarshal.list gstxml.c gstparse.c gsttrace.c
|
|
|
|
libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \
|
|
gst.c \
|
|
gstobject.c \
|
|
gstbin.c \
|
|
gstbuffer.c \
|
|
gstbus.c \
|
|
gstcaps.c \
|
|
gstclock.c \
|
|
gstelement.c \
|
|
gstelementfactory.c \
|
|
gsterror.c \
|
|
gstevent.c \
|
|
gstfilter.c \
|
|
gstformat.c \
|
|
gstghostpad.c \
|
|
$(GST_INDEX_SRC) \
|
|
gstinfo.c \
|
|
gstinterface.c \
|
|
gstiterator.c \
|
|
gstmemchunk.c \
|
|
gstmessage.c \
|
|
gstminiobject.c \
|
|
gstpad.c \
|
|
gstpipeline.c \
|
|
gstplugin.c \
|
|
gstpluginfeature.c \
|
|
gstprobe.c \
|
|
gstquery.c \
|
|
gstqueryutils.c \
|
|
gstqueue.c \
|
|
gstscheduler.c \
|
|
gststructure.c \
|
|
gstsystemclock.c \
|
|
gsttag.c \
|
|
gsttaginterface.c \
|
|
gsttask.c \
|
|
$(GST_TRACE_SRC) \
|
|
gsttrashstack.c \
|
|
gsttypefind.c \
|
|
$(GST_URI_SRC) \
|
|
gsturitype.c \
|
|
gstutils.c \
|
|
gstvalue.c \
|
|
$(GST_REGISTRY_SRC) \
|
|
gstregistrypool.c \
|
|
$(GST_PARSE_SRC) \
|
|
$(GSTARCH_SRCS) \
|
|
$(GST_LOADSAVE_SRC)
|
|
|
|
# do not put files in the distribution that are generated
|
|
nodist_libgstreamer_@GST_MAJORMINOR@_la_SOURCES = $(built_source_make)
|
|
|
|
# BUILT_SOURCES are built on make all/check/install before all other targets
|
|
BUILT_SOURCES = \
|
|
$(built_header_configure) \
|
|
$(built_header_make) \
|
|
$(built_source_make)
|
|
# CLEANFILES is for files generated by make
|
|
CLEANFILES = $(built_header_make) $(built_source_make) $(as_dll_cleanfiles)
|
|
# DISTCLEANFILES is for files generated by configure
|
|
DISTCLEANFILES = $(built_header_configure)
|
|
|
|
libgstreamer_@GST_MAJORMINOR@_la_CFLAGS = \
|
|
-D_GNU_SOURCE \
|
|
$(GST_LIB_CFLAGS) \
|
|
-DG_LOG_DOMAIN=g_log_domain_gstreamer \
|
|
-DGST_MAJORMINOR=\""$(GST_MAJORMINOR)"\"
|
|
libgstreamer_@GST_MAJORMINOR@_la_LIBADD = \
|
|
$(GST_LIB_LIBS) $(GST_PARSE_LA) $(GST_REGISTRY_LA)
|
|
libgstreamer_@GST_MAJORMINOR@_la_LDFLAGS = \
|
|
@GST_LT_LDFLAGS@ -version-info @GST_LIBVERSION@ \
|
|
-export-symbols-regex [_]*\(gst_\|Gst\|GST_\).*
|
|
|
|
libgstreamer_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst
|
|
|
|
gst_headers = \
|
|
gst.h \
|
|
gstobject.h \
|
|
gstbin.h \
|
|
gstbuffer.h \
|
|
gstbus.h \
|
|
gstcaps.h \
|
|
gstclock.h \
|
|
gstcompat.h \
|
|
gstelement.h \
|
|
gstelementfactory.h \
|
|
gsterror.h \
|
|
gstevent.h \
|
|
gstfilter.h \
|
|
gstformat.h \
|
|
gstghostpad.h \
|
|
gstindex.h \
|
|
gstinfo.h \
|
|
gstinterface.h \
|
|
gstiterator.h \
|
|
gstmacros.h \
|
|
gstmemchunk.h \
|
|
gstmessage.h \
|
|
gstminiobject.h \
|
|
gstpad.h \
|
|
gstpipeline.h \
|
|
gstplugin.h \
|
|
gstpluginfeature.h \
|
|
gstprobe.h \
|
|
gstquery.h \
|
|
gstqueryutils.h \
|
|
gstqueue.h \
|
|
gstscheduler.h \
|
|
gststructure.h \
|
|
gstsystemclock.h \
|
|
gsttag.h \
|
|
gsttaginterface.h \
|
|
gsttask.h \
|
|
gsttrace.h \
|
|
gsttrashstack.h \
|
|
gsttypefind.h \
|
|
gsttypes.h \
|
|
gsturi.h \
|
|
gsturitype.h \
|
|
gstutils.h \
|
|
gstvalue.h \
|
|
gstregistry.h \
|
|
gstregistrypool.h \
|
|
gstparse.h \
|
|
gstxml.h
|
|
|
|
libgstreamer_@GST_MAJORMINOR@include_HEADERS = $(gst_headers)
|
|
nodist_libgstreamer_@GST_MAJORMINOR@include_HEADERS = \
|
|
$(built_header_configure) $(built_header_make)
|
|
|
|
noinst_HEADERS = \
|
|
gettext.h \
|
|
gst-i18n-lib.h \
|
|
gst-i18n-app.h \
|
|
gst_private.h \
|
|
gstarch.h \
|
|
cothreads.h
|
|
|
|
gstmarshal.h: gstmarshal.list
|
|
glib-genmarshal --header --prefix=gst_marshal $(srcdir)/gstmarshal.list > gstmarshal.h.tmp
|
|
mv gstmarshal.h.tmp gstmarshal.h
|
|
|
|
gstmarshal.c: gstmarshal.list gst_private.h
|
|
echo "#include \"gst_private.h\"" > gstmarshal.c.tmp
|
|
echo "#include \"glib-object.h\"" >> gstmarshal.c.tmp
|
|
echo "#include \"gstmarshal.h\"" >> gstmarshal.c.tmp
|
|
glib-genmarshal --body --prefix=gst_marshal $(srcdir)/gstmarshal.list >> gstmarshal.c.tmp
|
|
mv gstmarshal.c.tmp gstmarshal.c
|
|
|
|
gstenumtypes.h: $(gst_headers)
|
|
glib-mkenums \
|
|
--fhead "#ifndef __GST_ENUM_TYPES_H__\n#define __GST_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
|
|
--fprod "/* enumerations from \"@filename@\" */\n" \
|
|
--vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
|
|
--ftail "G_END_DECLS\n\n#endif /* __GST_ENUM_TYPES_H__ */" \
|
|
$^ > gstenumtypes.h
|
|
|
|
gstenumtypes.c: $(gst_headers)
|
|
glib-mkenums \
|
|
--fhead "#include \"gst_private.h\"\n#include <gst/gst.h>" \
|
|
--fprod "\n/* enumerations from \"@filename@\" */" \
|
|
--vhead "GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G@Type@Value values[] = {" \
|
|
--vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
|
|
--vtail " { 0, NULL, NULL }\n };\n etype = g_@type@_register_static (\"@EnumName@\", values);\n }\n return etype;\n}\n" \
|
|
$^ > gstenumtypes.c
|