A bunch more changes to clean up build/`make dist` issues, as well as a spec file...
authorErik Walthinsen <omega@temple-baptist.org>
Mon, 31 Jan 2000 06:46:18 +0000 (06:46 +0000)
committerErik Walthinsen <omega@temple-baptist.org>
Mon, 31 Jan 2000 06:46:18 +0000 (06:46 +0000)
Original commit message from CVS:
A bunch more changes to clean up build/`make dist` issues, as well as a
spec file, -config file, .m4, etc.  Next step is to build an RPM of this
mess.

editor/Makefile.am
gst/ROADMAP [new file with mode: 0644]
gstreamer-config.in [new file with mode: 0644]
gstreamer.m4 [new file with mode: 0644]
gstreamer.spec.in [new file with mode: 0644]
test/Makefile.am
test/bindings/.gitignore
test/cothreads/.gitignore
test/xml/README [new file with mode: 0644]

index c3a38ec..d9bbade 100644 (file)
@@ -21,8 +21,8 @@ libgsteditorinclude_HEADERS = \
        gsteditor.h
 
 
-bin_PROGRAMS = editor
-editor_LDFLAGS = libgsteditor.la
+bin_PROGRAMS = gsteditor
+gsteditor_LDFLAGS = libgsteditor.la
 
 
 noinst_HEADERS =               \
diff --git a/gst/ROADMAP b/gst/ROADMAP
new file mode 100644 (file)
index 0000000..821f04a
--- /dev/null
@@ -0,0 +1,82 @@
+***** Core *****
+gst.c
+       Contains initialization functions, etc.
+
+gstobject.c
+       The core object type for all of the Gst objects.  Handles
+       refcounting, parenting, etc.
+
+gsttype.c
+       Media type registry, keeping track of all registered media types.
+       Each type has an ID, MIME type, and a list of elements that will
+       either source or sink the type.
+
+gstmeta.c
+       Provides some common routines for dealing with metadata.
+
+gstplugin.c
+       Plugin operations, finding and loading shared library plugins, as
+       well as a simple plugin registry.
+
+[gstregistry.c]
+[      Maintains an on-disk cache of elements installed on system,
+       provides for full searching across various tidbits per plugin. ]
+
+***** Major object types *****
+gstelement.c
+       All pipeline elements are based on this type, which defines the
+       padlist, etc.
+
+gstelementfactory.c
+       A simple object used to generate new elements from plugins.
+
+gstbuffer.c
+       Defines the data buffers that are passed between elements.
+       Buffers have a type (see gsttype.c), flags, as well as data and
+       metadata information.  Metadata comes in list form.
+
+gstpad.c
+       The connective pads for elements.  Keeps track of media type and
+       direction.  Connects to a peer pad and swaps chain [and push]
+       function[s], allowing buffers to be passed with two function
+       calls.  Allows ghostparenting to bins.
+
+***** Element tpoes ***
+gstbin.c
+       Contains any number of elements, and can be operated on as an
+       element itself.  Contains a list of child elements, and enables
+       ghostparenting of pads.
+
+gstpipeline.c
+       Special case of gstbin that handles the whole pipeline concept.
+
+gstthread.c
+       Special case of gstbin that creates a thread and iterates in that,
+       allowing for fully threaded operation.
+
+gstsrc.c
+       Special case of gstelement that provides a generic push()
+       function.
+
+gstfilter.c
+       Special case of gstelement mostly for administrative purposes.
+
+gstsink.c
+       Special case of gstelement mostly for administrative purposes.
+
+gsttee.c
+       Pipe fitting.
+
+
+
+***** elements/ *****
+gstdisksrc.c
+gstfakefilter.c
+gstfakesink.c
+gstfakesrc.c
+gsthttpsrc.c
+gststdinsrc.c
+gstxa.c
+gstaudiosink.c
+
+etc.etc.etc. (FIXME!)
diff --git a/gstreamer-config.in b/gstreamer-config.in
new file mode 100644 (file)
index 0000000..a43e2a1
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+exec_prefix_set=no
+
+usage="\
+Usage: $0 [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--libs] [--cflags]"
+
+if test $# -eq 0; then
+      echo "${usage}" 1>&2
+      exit 1
+fi
+
+while test $# -gt 0; do
+  case "$1" in
+  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) optarg= ;;
+  esac
+
+  case $1 in
+    --prefix=*)
+      prefix=$optarg
+      if `echo $prefix | grep -v -q '^/'` ; then
+        prefix=`pwd`/$prefix
+      fi
+      if test $exec_prefix_set = no ; then
+        exec_prefix=$optarg
+      fi
+      ;;
+    --prefix)
+      echo $prefix
+      ;;
+    --exec-prefix=*)
+      exec_prefix=$optarg
+      exec_prefix_set=yes
+      ;;
+    --exec-prefix)
+      echo $exec_prefix
+      ;;
+    --version)
+      echo @VERSION@
+      ;;
+    --cflags)
+      if test $prefix -ef @builddir@ ; then
+        includes=-I@builddir@
+      elif test @includedir@ != /usr/include ; then
+        includes=-I@includedir@
+      fi
+      echo $includes
+      ;;
+    --libs)
+      if test $prefix -ef @builddir@ ; then
+        echo @builddir@/lib@PACKAGE@.la
+      else
+        libdirs=-L@libdir@
+        echo $libdirs -l@PACKAGE@
+      fi
+      ;;
+    *)
+      echo "${usage}" 1>&2
+      exit 1
+      ;;
+  esac
+  shift
+done
+
diff --git a/gstreamer.m4 b/gstreamer.m4
new file mode 100644 (file)
index 0000000..2497de7
--- /dev/null
@@ -0,0 +1,21 @@
+# a macro to get the libs/cflags for gscope
+# serial 1
+
+dnl AM_PATH_GSTREAMER([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+dnl Test to see if timestamp is installed, and define GSTREAMER_CFLAGS, LIBS
+dnl
+AC_DEFUN(AM_PATH_GSTREAMER,
+[dnl
+dnl Get the cflags and libraries for the GtkScope widget
+dnl
+AC_ARG_WITH(gscope-prefix,
+[  --with-gscope-prefix=PFX Prefix where GtkScope is installed],
+GSTREAMER_PREFIX="$withval")
+
+AC_CHECK_LIB(gscope,gtk_scope_new,
+  AC_MSG_RESULT(yes),
+  AC_MSG_RESULT(no),"$GSTREAMER_PREFIX $LIBS")
+AC_SUBST(GSTREAMER_CFLAGS)
+AC_SUBST(GSTREAMER_LIBS)
+AC_SUBST(HAVE_GSTREAMER)
+])
diff --git a/gstreamer.spec.in b/gstreamer.spec.in
new file mode 100644 (file)
index 0000000..41599f3
--- /dev/null
@@ -0,0 +1,60 @@
+%define name    gstreamer
+%define ver     @VERSION@
+%define rel     SNAP
+%define prefix  /usr
+
+Summary: Streaming-media framework
+Name: %name
+Version: %ver
+Release: %rel
+Copyright: LGPL
+Group: Libraries
+Source: %{name}-%{ver}.tar.gz
+BuildRoot: /var/tmp/%{name}-%{ver}-root
+Docdir: %{prefix}/doc
+Prefix: %prefix
+
+%description
+GStreamer is a streaming-media framework, based on graphs of filters which
+operate on media data. Applications using this library can do anything
+from real-time sound processing to playing videos, and just about anything
+else media-related.  It's plugin-based architecture means that new data
+types or processing capabilities can be added simply by installing a new
+package.
+
+%changelog
+* Sun Jan 30 2000 Erik Walthinsen <omega@cse.ogi.edu>
+- first draft of spec file
+
+%prep
+%setup
+
+%build
+CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%prefix
+
+if [ "$SMP" != "" ]; then
+  (make "MAKE=make -k -j $SMP"; exit 0)
+  make
+else
+  make
+fi
+
+%install  
+[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
+
+make prefix=$RPM_BUILD_ROOT%{prefix} install
+
+%clean
+[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+  
+%files
+%defattr(-, root, root)
+
+%{prefix}/bin/*
+%{prefix}/lib/*
+%{prefix}/lib/gst/*
+%{prefix}/include/gst/*
index 4f940c4..20d6e4a 100644 (file)
@@ -1,6 +1,6 @@
-#bin_PROGRAMS = basic m types a r plugin w s args mpg123 mcut push qtest
-bin_PROGRAMS = qtest spectrum record wave mp3 teardown buffer mp3parse \
-               mpeg2parse mp3play ac3parse ac3play dvdcat fake cobin
+#noinst_PROGRAMS = basic m types a r plugin w s args mpg123 mcut push qtest
+noinst_PROGRAMS = qtest spectrum record wave mp3 teardown buffer mp3parse \
+                 mpeg2parse mp3play ac3parse ac3play dvdcat fake cobin
 
 SUBDIRS = xml cothreads bindings
 
index 08f5ed3..54bca49 100644 (file)
@@ -5,3 +5,5 @@ Makefile.in
 *.la
 .deps
 .libs
+
+test
index 08f5ed3..5d778a3 100644 (file)
@@ -5,3 +5,6 @@ Makefile.in
 *.la
 .deps
 .libs
+
+test
+simple
diff --git a/test/xml/README b/test/xml/README
new file mode 100644 (file)
index 0000000..fca94fe
--- /dev/null
@@ -0,0 +1,5 @@
+This is my test code for reading and writing an XML registry of the
+plugins.  This will be eventually folded back into the main library, such
+that when you query the list of plugins, you get all the plugins that are
+either loaded or listed in the registry.  When you actually ask for a
+given plugin, it will load it if necessary.  Pretty cool, huh?