gstreamer/gst/Makefile.am
Andy Wingo 4b908e33e0 gst/gstutils.c: RPAD fixes all around.
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.
2005-06-08 22:16:27 +00:00

242 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