summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am13
-rw-r--r--configure.in50
-rw-r--r--debian/.gitignore2
-rw-r--r--debian/Makefile.am33
-rw-r--r--debian/README.Debian38
-rw-r--r--debian/changelog23
-rw-r--r--debian/control143
-rw-r--r--debian/copyright29
-rw-r--r--debian/gsteditor.files2
-rw-r--r--debian/gsteditor.menu5
-rw-r--r--debian/gstmediaplay.files2
-rw-r--r--debian/gstmediaplay.menu5
-rw-r--r--debian/gstreamer-cdparanoia.files1
-rw-r--r--debian/gstreamer-common.files48
-rw-r--r--debian/gstreamer-doc.files1
-rw-r--r--debian/gstreamer-elements.files1
-rw-r--r--debian/gstreamer-esd.files1
-rw-r--r--debian/gstreamer-lame.files1
-rw-r--r--debian/gstreamer-mpg123.files1
-rw-r--r--debian/gstreamer-plugin-template.postinst25
-rw-r--r--debian/gstreamer-plugin-template.prerm23
-rw-r--r--debian/gstreamer-runtime.files1
-rw-r--r--debian/gstreamer-runtime.postinst47
-rw-r--r--debian/gstreamer-tools.files2
-rw-r--r--debian/gstreamer-vorbis.files1
-rw-r--r--debian/libgst-dev.files6
-rw-r--r--debian/libgst0.files1
-rw-r--r--debian/libgst0.postinst47
-rw-r--r--debian/libgsteditor-dev.files2
-rw-r--r--debian/libgsteditor0.files1
-rw-r--r--debian/libgsteditor0.postinst47
-rw-r--r--debian/libgstmediaplay-dev.files2
-rw-r--r--debian/libgstmediaplay0.files1
-rw-r--r--debian/libgstmediaplay0.postinst47
-rwxr-xr-xdebian/rules146
-rw-r--r--docs/Makefile.am2
-rw-r--r--docs/fwg/testapp.sgml2
-rw-r--r--docs/fwg/titlepage.sgml2
-rw-r--r--docs/gst/Makefile.am1
-rw-r--r--docs/gst/gstreamer-docs.sgml2
-rw-r--r--docs/gst/gstreamer-sections.txt24
-rw-r--r--docs/gst/tmpl/gstbuffer.sgml35
-rw-r--r--docs/gst/tmpl/gstcaps.sgml2
-rw-r--r--docs/gst/tmpl/gstdisksrc.sgml9
-rw-r--r--docs/gst/tmpl/gstobject.sgml12
-rw-r--r--docs/gst/tmpl/gstpad.sgml66
-rw-r--r--docs/gst/tmpl/gstplugin.sgml8
-rw-r--r--docs/gst/tmpl/gstreamer-unused.sgml91
-rw-r--r--docs/manual/Makefile.am3
-rw-r--r--docs/manual/bins.sgml2
-rw-r--r--docs/manual/debugging.sgml89
-rw-r--r--docs/manual/dynamic.sgml2
-rw-r--r--docs/manual/gstreamer-manual.sgml8
-rw-r--r--docs/manual/helloworld.sgml2
-rw-r--r--docs/manual/helloworld2.sgml2
-rw-r--r--docs/manual/pads.sgml62
-rw-r--r--docs/manual/plugins.sgml2
-rw-r--r--docs/manual/queues.sgml2
-rw-r--r--docs/manual/quotes.sgml20
-rw-r--r--docs/manual/threads.sgml2
-rw-r--r--docs/manual/typedetection.sgml2
-rw-r--r--docs/manual/xml.sgml150
-rw-r--r--docs/plugins/Makefile.am4
-rwxr-xr-xdocs/plugins/gstdoc-scanobj2
-rw-r--r--docs/plugins/tmpl/ac3parse.sgml5
-rw-r--r--docs/plugins/tmpl/audioscale.sgml5
-rw-r--r--docs/plugins/tmpl/gstaviencoder.sgml10
-rw-r--r--docs/plugins/tmpl/gstmpeg2enc.sgml5
-rw-r--r--docs/plugins/tmpl/gstmpeg2play.sgml5
-rw-r--r--docs/plugins/tmpl/gstmpeg_play.sgml8
-rw-r--r--docs/plugins/tmpl/gstreamer-plugins-unused.sgml4938
-rw-r--r--docs/plugins/tmpl/gstspectrum.sgml5
-rw-r--r--docs/plugins/tmpl/gstv4lsrc.sgml70
-rw-r--r--docs/plugins/tmpl/gstwindec.sgml10
-rw-r--r--docs/plugins/tmpl/gstwinenc.sgml33
-rw-r--r--docs/plugins/tmpl/median.sgml10
-rw-r--r--docs/plugins/tmpl/mp3parse.sgml5
-rw-r--r--docs/plugins/tmpl/mpeg1parse.sgml5
-rw-r--r--docs/plugins/tmpl/mpeg2parse.sgml5
-rw-r--r--docs/plugins/tmpl/mpeg2subt.sgml5
-rw-r--r--docs/plugins/tmpl/smooth.sgml15
-rw-r--r--docs/plugins/tmpl/smoothwave.sgml15
-rw-r--r--docs/plugins/tmpl/stereo.sgml10
-rw-r--r--docs/plugins/tmpl/synaesthesia.sgml15
-rw-r--r--docs/plugins/tmpl/system_encode.sgml10
-rw-r--r--docs/plugins/tmpl/videoscale.sgml10
-rw-r--r--docs/plugins/tmpl/videosink.sgml39
-rw-r--r--docs/plugins/tmpl/volume.sgml10
-rw-r--r--docs/plugins/tmpl/vumeter.sgml30
-rw-r--r--docs/random/NOTES-0.1.136
-rw-r--r--docs/random/caps.dia1132
-rw-r--r--docs/random/wtay/caps-negociation345
-rw-r--r--examples/Makefile.am2
-rw-r--r--examples/plugins/example.c213
-rw-r--r--examples/plugins/example.h35
-rw-r--r--gst/Makefile.am59
-rw-r--r--gst/autoplug/gststaticautoplug.c44
-rw-r--r--gst/elements/gstdisksrc.c2
-rw-r--r--gst/elements/gstelements.c23
-rw-r--r--gst/gst.c60
-rw-r--r--gst/gst.h8
-rw-r--r--gst/gstbin.c24
-rw-r--r--gst/gstcaps.c4
-rw-r--r--gst/gstcaps.h6
-rw-r--r--gst/gstcpu.c11
-rw-r--r--gst/gstcpu.h2
-rw-r--r--gst/gstelement.h10
-rw-r--r--gst/gstinfo.h2
-rw-r--r--gst/gstpad.c84
-rw-r--r--gst/gstpad.h11
-rw-r--r--gst/gstplugin.c22
-rw-r--r--gst/gstplugin.h2
-rw-r--r--gst/gstprops.c16
-rw-r--r--gst/gstqueue.c6
-rw-r--r--gst/gstscheduler.c1
-rw-r--r--gst/gstthread.c4
-rw-r--r--gst/gsttype.c1
-rw-r--r--gst/gstutils.h8
-rw-r--r--gstplay/gstmediaplay.c2
-rw-r--r--gstplay/gstplay.c47
-rw-r--r--gstreamer-config.in6
-rw-r--r--include/Makefile.am3
-rw-r--r--include/default.h15
-rw-r--r--include/wine/msacm.h2
-rw-r--r--libs/Makefile.am4
-rw-r--r--libs/colorspace/rgb2rgb.c36
-rw-r--r--libs/getbits/gstgetbits.c8
-rw-r--r--libs/getbits/gstgetbits.h17
-rw-r--r--libs/getbits/gstgetbits_inl.h17
-rw-r--r--libs/videoscale/Makefile.am2
-rw-r--r--libs/winloader/Makefile.am6
-rw-r--r--libs/winloader/afl.c1
-rw-r--r--libs/winloader/avifmt.h (renamed from include/avifmt.h)0
-rw-r--r--libs/winloader/driver.c51
-rw-r--r--libs/winloader/elfdll.c3
-rw-r--r--libs/winloader/module.c27
-rw-r--r--libs/winloader/pe_image.c2
-rw-r--r--libs/winloader/registry.h (renamed from include/registry.h)6
-rw-r--r--libs/winloader/vfl.c7
-rw-r--r--libs/winloader/win32.c (renamed from libs/winloader/externals.c)88
-rw-r--r--libs/winloader/win32.h (renamed from libs/winloader/externals.h)0
-rw-r--r--plugins/elements/gstdisksrc.c2
-rw-r--r--plugins/elements/gstelements.c23
-rw-r--r--plugins/elements/gstqueue.c6
-rw-r--r--test/videotest.c27
-rw-r--r--tests/old/examples/Makefile.am2
-rw-r--r--tests/old/examples/plugins/example.c213
-rw-r--r--tests/old/examples/plugins/example.h35
-rw-r--r--tools/README4
149 files changed, 6400 insertions, 3121 deletions
diff --git a/Makefile.am b/Makefile.am
index 888cc6b333..f894e1812c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,10 +8,17 @@ else
SUBDIRS_LGG =
endif
-SUBDIRS = include gst libs plugins tools test tests examples $(SUBDIRS_LGG) docs
+if BUILD_DOCS
+SUBDIRS_DOCS = docs
+else
+SUBDIRS_DOCS =
+endif
+
+SUBDIRS = include gst libs plugins tools test tests examples \
+$(SUBDIRS_LGG) $(SUBDIRS_DOCS)
# These are all the possible subdirs
-DIST_SUBDIRS = intl po include gst libs plugins tools test tests examples gstplay editor docs
+DIST_SUBDIRS = include gst libs plugins tools test tests examples gstplay editor docs debian
bin_SCRIPTS = gstreamer-config
@@ -19,7 +26,7 @@ bin_SCRIPTS = gstreamer-config
m4datadir = $(datadir)/aclocal
m4data_DATA = gstreamer.m4
-EXTRA_DIST = gstreamer.spec.in gstreamer-config.in gstreamer.m4 LICENSE REQUIREMENTS ABOUT-NLS
+EXTRA_DIST = gstreamer.spec.in gstreamer-config.in gstreamer.m4 LICENSE REQUIREMENTS
dist-hook:
cp gstreamer.spec $(distdir)
diff --git a/configure.in b/configure.in
index 3734d93d6e..3be5a377d8 100644
--- a/configure.in
+++ b/configure.in
@@ -7,7 +7,7 @@ AM_CONFIG_HEADER(config.h)
dnl FIXME this should be GSTREAMER_ now
STREAMER_MAJOR_VERSION=0
STREAMER_MINOR_VERSION=1
-STREAMER_MICRO_VERSION=0
+STREAMER_MICRO_VERSION=1
STREAMER_VERSION=$STREAMER_MAJOR_VERSION.$STREAMER_MINOR_VERSION.$STREAMER_MICRO_VERSION
PACKAGE=gstreamer
@@ -41,20 +41,23 @@ AC_SUBST(GSTREAMER_LIBVERSION)
AM_MAINTAINER_MODE
-AC_ISC_POSIX
AC_PROG_CC
+AC_ISC_POSIX
AC_STDC_HEADERS
AC_ARG_PROGRAM
+dnl We disable static building for development, for time savings
+dnl *NOTE*: dnl this line before release, so release does static too
AM_DISABLE_STATIC
AC_LIBTOOL_DLOPEN
AM_PROG_LIBTOOL
-dnl ALL_LINGUAS=""
-dnl AM_GNU_GETTEXT
-
CFLAGS=""
+dnl This is used for the -config script...
+builddir=`pwd`
+AC_SUBST(builddir)
+
dnl ##############################
dnl # Do automated configuration #
dnl ##############################
@@ -156,16 +159,16 @@ AM_PATH_GLIB(1.2.0,,
AC_MSG_ERROR(Cannot find glib: Is glib-config in path?),
glib gmodule gthread)
dnl Put the glib flags into $LIBS and $CFLAGS since we always use them
-LIBS="$LIBS $GLIB_LIBS"
-CFLAGS="$CFLAGS $GLIB_CFLAGS"
+CORE_LIBS="$GLIB_LIBS"
+CORE_CFLAGS="$GLIB_CFLAGS"
dnl Check for gtk
AM_PATH_GTK(1.2.0,,
AC_MSG_ERROR(Cannot find gtk: Is gtk-config in path?))
dnl Put the gtk flags into $LIBS and $CFLAGS since we always use them
-LIBS="$LIBS $GTK_LIBS"
-CFLAGS="$CFLAGS $GTK_CFLAGS"
+CORE_LIBS="$CORE_LIBS $GTK_LIBS"
+CORE_CFLAGS="$CORE_CFLAGS $GTK_CFLAGS"
dnl Check for libxml
@@ -177,8 +180,8 @@ XML_LIBS=`xml-config --libs`
XML_CFLAGS=`xml-config --cflags`
AC_SUBST(XML_LIBS)
AC_SUBST(XML_CFLAGS)
-LIBS="$LIBS $XML_LIBS"
-CFLAGS="$CFLAGS $XML_CFLAGS"
+CORE_LIBS="$CORE_LIBS $XML_LIBS"
+CORE_CFLAGS="$CORE_CFLAGS $XML_CFLAGS"
dnl Next, check for the optional libraries:
@@ -257,8 +260,8 @@ else
LIBGLADE_GNOME_CFLAGS=`libglade-config --cflags gnome`
libglade_save_CFLAGS="$CFLAGS"
libglade_save_LIBS="$LIBS"
- CFLAGS="$CFLAGS $LIBGLADE_GNOME_CFLAGS"
- LIBS="$LIBS $LIBGLADE_GNOME_LIBS"
+ CFLAGS="$CFLAGS $LIBGLADE_GNOME_CFLAGS $GTK_CFLAGS"
+ LIBS="$LIBS $LIBGLADE_GNOME_LIBS $GTK_LIBS"
HAVE_LIBGLADE_GNOME="no"
AC_TRY_LINK([#include <glade/glade.h>],[glade_gnome_init();],
HAVE_LIBGLADE_GNOME="yes",
@@ -348,7 +351,7 @@ AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
dnl Check for liblame
AC_MSG_CHECKING(LAME library)
AC_CHECK_LIB(mp3lame, lame_init, HAVE_LIBLAME=yes, HAVE_LIBLAME=no, )
-AC_CHECK_HEADER(lame.h, :, HAVE_LIBLAME=no)
+AC_CHECK_HEADER(lame/lame.h, :, HAVE_LIBLAME=no)
dnl Check for libshout
AC_MSG_CHECKING(Shout library)
@@ -487,6 +490,16 @@ AC_ARG_WITH(win32_libdir,
esac],
[:]) dnl Default value
+AC_ARG_ENABLE(docs-build,
+[ --enable-docs-build enable the building of the documentation],
+[case "${enableval}" in
+ yes) BUILD_DOCS=yes ;;
+ no) BUILD_DOCS=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-docs-build) ;;
+esac],
+[BUILD_DOCS=no]) dnl Default value
+
+
dnl ################################################
dnl # Set defines according to variables set above #
@@ -564,6 +577,7 @@ AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
AM_CONDITIONAL(HAVE_GNOME, test "x$HAVE_GNOME" = "xyes")
AM_CONDITIONAL(HAVE_LIBXV, test "x$HAVE_LIBXV" = "xyes")
AM_CONDITIONAL(HAVE_GTK_DOC, $HAVE_GTK_DOC)
+AM_CONDITIONAL(BUILD_DOCS, test "x$BUILD_DOCS" = "xyes")
AM_CONDITIONAL(HAVE_DB2HTML, $HAVE_DB2HTML)
AM_CONDITIONAL(HAVE_DB2PS, $HAVE_DB2PS)
AM_CONDITIONAL(HAVE_PS2PDF, $HAVE_PS2PDF)
@@ -609,7 +623,10 @@ dnl ##############################
dnl # Set up the defaults cflags #
dnl ##############################
dnl CC="kgcc"
-CFLAGS="$CFLAGS -O6 -Wall"
+CFLAGS="$CORE_CFLAGS $CFLAGS -O6 -Wall"
+LIBS="$CORE_LIBS $LIBS"
+AC_SUBST(CORE_LIBS)
+AC_SUBST(CORE_CFLAGS)
dnl FIXME: having to AC_SUBST these is messy. Not sure if CPPFLAGS and LDFLAGS
dnl need it, either.
@@ -648,8 +665,6 @@ dnl # Make the output files #
dnl #########################
AC_OUTPUT([Makefile
-intl/Makefile
-po/Makefile.in
include/Makefile
include/wine/Makefile
gst/Makefile
@@ -756,6 +771,7 @@ docs/plugins/Makefile
docs/plugins/gstreamer-plugins.types
docs/manual/Makefile
docs/fwg/Makefile
+debian/Makefile
stamp.h
gstreamer-config
gstreamer.spec])
diff --git a/debian/.gitignore b/debian/.gitignore
new file mode 100644
index 0000000000..693edc0e5e
--- /dev/null
+++ b/debian/.gitignore
@@ -0,0 +1,2 @@
+*.debhelper
+*substvars
diff --git a/debian/Makefile.am b/debian/Makefile.am
new file mode 100644
index 0000000000..f38ad440d3
--- /dev/null
+++ b/debian/Makefile.am
@@ -0,0 +1,33 @@
+EXTRA_DIST = \
+ Makefile.am \
+ README.Debian \
+ changelog \
+ control \
+ copyright \
+ gsteditor.files \
+ gsteditor.menu \
+ gstmediaplay.files \
+ gstmediaplay.menu \
+ gstreamer-cdparanoia.files \
+ gstreamer-common.files \
+ gstreamer-doc.files \
+ gstreamer-elements.files \
+ gstreamer-esd.files \
+ gstreamer-lame.files \
+ gstreamer-mpg123.files \
+ gstreamer-plugin-template.postinst \
+ gstreamer-plugin-template.prerm \
+ gstreamer-runtime.files \
+ gstreamer-runtime.postinst \
+ gstreamer-tools.files \
+ gstreamer-vorbis.files \
+ libgst-dev.files \
+ libgst0.files \
+ libgst0.postinst \
+ libgsteditor-dev.files \
+ libgsteditor0.files \
+ libgsteditor0.postinst \
+ libgstmediaplay-dev.files \
+ libgstmediaplay0.files \
+ libgstmediaplay0.postinst \
+ rules
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644
index 0000000000..72064b54c2
--- /dev/null
+++ b/debian/README.Debian
@@ -0,0 +1,38 @@
+GStreamer for Debian
+----------------------
+This package contains the GStreamer distribution.
+
+More information can be found at http://gstreamer.net/
+
+GStreamer is split into a number of base packages:
+
+ libgst0 shared core libs
+ libgst-dev development libs and headers
+ libgst-runtime tools required by the libs (gstreamer-register)
+ gstreamer-doc documentation
+ gstreamer-tools useful tools
+
+recommended plugins:
+
+ gstreamer-elements core plugins
+ gstreamer-common many independent plugins
+
+optional plugins:
+
+ gstreamer-cdparanoia cdparanoia plugin
+ gstreamer-esd ESD plugin
+ gstreamer-lame LAME plugin
+ gstreamer-mpg123 mpg123 plugin
+ gstreamer-vorbis Vorbis plugin
+
+and applications and their supporting libs:
+
+ libgstmediaplay0 media player libs
+ libgstmediaplay-dev media player dev support
+ gstmediaplay media player application
+
+ libgsteditor0 stream pipeline visual editor libs
+ libgsteditor-dev stream pipeline visual editor dev support
+ gsteditor stream pipeline visual editor application
+
+David I. Lehn <dlehn@vt.edu> Fri, 19 Jan 2001 19:13:06 -0500
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000000..245fd6a67c
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,23 @@
+gstreamer (0.1.1-1) unstable; urgency=low
+
+ * New upstream release
+ * disable docs build, broken at the momemnt
+
+ -- David I. Lehn <dlehn@vt.edu> Sun, 25 Feb 2001 17:58:25 -0500
+
+gstreamer (0.1.0-2) unstable; urgency=low
+
+ * debian/rules: call configure instead of autogen.sh
+
+ -- David I. Lehn <dlehn@vt.edu> Sat, 24 Feb 2001 18:31:36 -0500
+
+gstreamer (0.1.0-1) unstable; urgency=low
+
+ * Initial Release.
+
+ -- David I. Lehn <dlehn@vt.edu> Mon, 15 Jan 2001 18:25:18 -0500
+
+Local variables:
+mode: debian-changelog
+add-log-mailing-address "dlehn@vt.edu"
+End:
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000000..3152cacc13
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,143 @@
+Source: gstreamer
+Section: x11
+Priority: optional
+Maintainer: David I. Lehn <dlehn@vt.edu>
+Build-Depends: debhelper (>= 3.0.0), libxml-dev (>= 1.8.10), zlib1g-dev (>= 1:1.1.3), libghttp-dev (>= 1.0.6), libglib-dev (>= 1.2.8), libgtk1.2-dev (>= 1.2.8), libglade0-dev (>= 0.14), libglade-gnome0-dev (>= 0.14), libesd0-dev (>= 0.2.22), libcdparanoia0-dev (>= 3a9.7), libvorbis-dev (>= 1.0beta3), libgnome-dev (>= 1.2.11), libasound1-dev (>= 0.5.10), libghttp-dev (>= 1.0.9), libjpeg62-dev (>= 6b)
+Build-Depends-Indep: debhelper (>= 3.0.0), gtk-doc-tools (>= 0.4.0), jade (>= 1.2.1), transfig (>= 3.2.3.c)
+Standards-Version: 3.5.2.0
+
+Package: libgst0
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Suggests: gstreamer-elements, gstreamer-common
+Description: Core GStreamer shared library
+ Core GStreamer shared library
+
+Package: libgst-dev
+Architecture: any
+Section: devel
+Depends: libgst0 (= ${Source-Version}), libc6-dev
+Recommends: gstreamer-doc (= ${Source-Version})
+Description: GStreamer development libraries and headers
+ GStreamer development libraries and headers
+
+Package: gstreamer-runtime
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Description: gstreamer-register binary needed to manage plugin registry
+ gstreamer-register binary needed to manage plugin registry
+
+Package: gstreamer-doc
+Architecture: all
+Section: doc
+Recommends: libgst-dev (= ${Source-Version})
+Description: Core GStreamer documentation
+ Core GStreamer documentation
+
+Package: gstreamer-tools
+Architecture: any
+Section: x11
+Depends: ${shlibs:Depends}
+Suggests: gstreamer-common
+Description: Tools for use with GStreamer
+ Tools for use with GStreamer
+ .
+ gstreamer-inspect: query details of installed plugins
+ gstreamer-launch: command line pipeline generator
+
+Package: libgstmediaplay0
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Description: GStreamer media player library
+ GStreamer media player library
+
+Package: libgstmediaplay-dev
+Architecture: any
+Section: devel
+Depends: libgstmediaplay0 (= ${Source-Version}), libc6-dev
+Description: GStreamer media player development library and header
+ GStreamer media player development library and header
+
+Package: gstmediaplay
+Architecture: any
+Section: x11
+Depends: ${shlibs:Depends}
+Suggests: gstreamer-common
+Description: GStreamer media player
+ GStreamer media player
+
+Package: libgsteditor0
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Description: GStreamer editor library
+ GStreamer editor library
+
+Package: libgsteditor-dev
+Architecture: any
+Section: devel
+Depends: libgsteditor0 (= ${Source-Version}), libc6-dev
+Description: GStreamer editor development library and header
+ GStreamer editor development library and header
+
+Package: gsteditor
+Architecture: any
+Section: x11
+Depends: ${shlibs:Depends}
+Suggests: gstreamer-common
+Description: GStreamer editor
+ GStreamer editor
+
+Package: gstreamer-cdparanoia
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, gstreamer-runtime
+Description: cdparanoia plugin for GStreamer
+ cdparanoia plugin for GStreamer
+
+Package: gstreamer-common
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, gstreamer-runtime
+Description: Collection of GStreamer plugins
+ Collection of GStreamer plugins
+ .
+ These plugins have no special dependencies.
+
+Package: gstreamer-elements
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, gstreamer-runtime
+Description: Core elements plugin for GStreamer
+ Core elements plugin for GStreamer
+
+Package: gstreamer-esd
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, gstreamer-runtime
+Description: Enlightened Sound Daemon plugin for GStreamer
+ Enlightened Sound Daemon plugin for GStreamer
+
+Package: gstreamer-lame
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, gstreamer-runtime
+Description: LAME plugin for GStreamer
+ LAME plugin for GStreamer
+
+Package: gstreamer-mpg123
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, gstreamer-runtime
+Description: mpg123 plugin for GStreamer
+ mpg123 plugin for GStreamer
+
+Package: gstreamer-vorbis
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, gstreamer-runtime
+Description: Vorbis plugin for GStreamer
+ Vorbis plugin for GStreamer
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000000..fa8250bbe5
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,29 @@
+This package was debianized by David I. Lehn <dlehn@vt.edu> on
+Mon, 15 Jan 2001 18:21:37 -0500.
+
+It was downloaded from http://gstreamer.net/
+
+Upstream Author(s):
+ Erik Walthinsen <omegahacker@users.sourceforge.net>
+ Wim Taymans <wim.taymans@chello.be>
+ Richard Boulton <richard@tartarus.org>
+
+Copyright:
+
+ This package is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This package 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this package; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+On Debian GNU/Linux systems, the complete text of the GNU Lesser General
+Public License can be found in `/usr/share/common-licenses/LGPL'.
+
diff --git a/debian/gsteditor.files b/debian/gsteditor.files
new file mode 100644
index 0000000000..22e2d6e96c
--- /dev/null
+++ b/debian/gsteditor.files
@@ -0,0 +1,2 @@
+usr/bin/gsteditor
+usr/share/gsteditor
diff --git a/debian/gsteditor.menu b/debian/gsteditor.menu
new file mode 100644
index 0000000000..c78b4d2517
--- /dev/null
+++ b/debian/gsteditor.menu
@@ -0,0 +1,5 @@
+?package(gsteditor): \
+ needs=X11 \
+ section=Apps/Viewers \
+ title="GStreamer Editor" \
+ command="/usr/bin/gsteditor"
diff --git a/debian/gstmediaplay.files b/debian/gstmediaplay.files
new file mode 100644
index 0000000000..be0f4c8551
--- /dev/null
+++ b/debian/gstmediaplay.files
@@ -0,0 +1,2 @@
+usr/bin/gstmediaplay
+usr/share/gstmediaplay
diff --git a/debian/gstmediaplay.menu b/debian/gstmediaplay.menu
new file mode 100644
index 0000000000..904038cde3
--- /dev/null
+++ b/debian/gstmediaplay.menu
@@ -0,0 +1,5 @@
+?package(gstmediaplay): \
+ needs=X11 \
+ section=Apps/Viewers \
+ title="GStreamer Media Player" \
+ command="/usr/bin/gstmediaplay"
diff --git a/debian/gstreamer-cdparanoia.files b/debian/gstreamer-cdparanoia.files
new file mode 100644
index 0000000000..b347fa11f8
--- /dev/null
+++ b/debian/gstreamer-cdparanoia.files
@@ -0,0 +1 @@
+usr/lib/gst/libcdparanoia.*
diff --git a/debian/gstreamer-common.files b/debian/gstreamer-common.files
new file mode 100644
index 0000000000..8463b80dad
--- /dev/null
+++ b/debian/gstreamer-common.files
@@ -0,0 +1,48 @@
+usr/lib/gst/libgstriff.*
+usr/lib/gst/libgstcolorspace.*
+usr/lib/gst/libgstgetbits.*
+usr/lib/gst/libgstparsewav.*
+usr/lib/gst/libgstputbits.*
+usr/lib/gst/libgstidct.*
+usr/lib/gst/libgsttypes.*
+usr/lib/gst/libgstvideoscale.*
+usr/lib/gst/libwinloader.*
+usr/lib/gst/libgstparseau.*
+usr/lib/gst/libmp3parse.*
+usr/lib/gst/libmp3types.*
+usr/lib/gst/libstereo.*
+usr/lib/gst/libvolume.*
+usr/lib/gst/libgstspectrum.*
+usr/lib/gst/libvumeter.*
+usr/lib/gst/libsynaesthesia.*
+usr/lib/gst/libsmoothwave.*
+usr/lib/gst/libmpeg2parse.*
+usr/lib/gst/libac3dec.*
+usr/lib/gst/libac3parse.*
+usr/lib/gst/libmpeg2play.*
+usr/lib/gst/libmpeg2dec.*
+usr/lib/gst/libmpeg2enc.*
+usr/lib/gst/libmpeg2subt.*
+usr/lib/gst/libmp2videoparse.*
+usr/lib/gst/libmpeg2types.*
+usr/lib/gst/libmpeg1parse.*
+usr/lib/gst/libmpeg_play.*
+usr/lib/gst/libmpeg1encoder.*
+usr/lib/gst/libsystem_encode.*
+usr/lib/gst/libmpegaudio.*
+usr/lib/gst/libmpeg1types.*
+usr/lib/gst/libvcdsrc.*
+usr/lib/gst/librtjpeg.*
+usr/lib/gst/libvideosink.*
+usr/lib/gst/libv4lsrc.*
+usr/lib/gst/libjpeg.*
+usr/lib/gst/libmp1videoparse.*
+usr/lib/gst/libvideoscale.*
+usr/lib/gst/libsmooth.*
+usr/lib/gst/libmedian.*
+usr/lib/gst/libgstladspa.*
+usr/lib/gst/libaudioscale.*
+usr/lib/gst/libwincodec.*
+usr/lib/gst/libaviencoder.*
+usr/lib/gst/libavidecoder.*
+usr/lib/gst/libdvdsrc.*
diff --git a/debian/gstreamer-doc.files b/debian/gstreamer-doc.files
new file mode 100644
index 0000000000..c6ff27539a
--- /dev/null
+++ b/debian/gstreamer-doc.files
@@ -0,0 +1 @@
+usr/share/gstreamer
diff --git a/debian/gstreamer-elements.files b/debian/gstreamer-elements.files
new file mode 100644
index 0000000000..7a18765dc5
--- /dev/null
+++ b/debian/gstreamer-elements.files
@@ -0,0 +1 @@
+usr/lib/gst/libgstelements.*
diff --git a/debian/gstreamer-esd.files b/debian/gstreamer-esd.files
new file mode 100644
index 0000000000..dbfa96fc28
--- /dev/null
+++ b/debian/gstreamer-esd.files
@@ -0,0 +1 @@
+usr/lib/gst/libesdsink.*
diff --git a/debian/gstreamer-lame.files b/debian/gstreamer-lame.files
new file mode 100644
index 0000000000..ab21a06129
--- /dev/null
+++ b/debian/gstreamer-lame.files
@@ -0,0 +1 @@
+usr/lib/gst/libgstlame.*
diff --git a/debian/gstreamer-mpg123.files b/debian/gstreamer-mpg123.files
new file mode 100644
index 0000000000..f360298564
--- /dev/null
+++ b/debian/gstreamer-mpg123.files
@@ -0,0 +1 @@
+usr/lib/gst/libmpg123.*
diff --git a/debian/gstreamer-plugin-template.postinst b/debian/gstreamer-plugin-template.postinst
new file mode 100644
index 0000000000..b3a2e1807f
--- /dev/null
+++ b/debian/gstreamer-plugin-template.postinst
@@ -0,0 +1,25 @@
+#! /bin/sh
+# template plugin postinst script
+
+set -e
+
+case "$1" in
+ configure)
+ # Update shared lib deps
+ gstreamer-register
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 0
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/debian/gstreamer-plugin-template.prerm b/debian/gstreamer-plugin-template.prerm
new file mode 100644
index 0000000000..4a581177ed
--- /dev/null
+++ b/debian/gstreamer-plugin-template.prerm
@@ -0,0 +1,23 @@
+#! /bin/sh
+# template plugin prerm script
+
+set -e
+
+case "$1" in
+ remove|upgrade|deconfigure)
+ # update the shared libs
+ gstreamer-register
+
+ ;;
+ failed-upgrade)
+ ;;
+ *)
+ echo "prerm called with unknown argument \`$1'" >&2
+ exit 0
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/debian/gstreamer-runtime.files b/debian/gstreamer-runtime.files
new file mode 100644
index 0000000000..4a423fb75a
--- /dev/null
+++ b/debian/gstreamer-runtime.files
@@ -0,0 +1 @@
+usr/bin/gstreamer-register
diff --git a/debian/gstreamer-runtime.postinst b/debian/gstreamer-runtime.postinst
new file mode 100644
index 0000000000..8e649c5967
--- /dev/null
+++ b/debian/gstreamer-runtime.postinst
@@ -0,0 +1,47 @@
+#!/bin/sh
+# postinst script for gstreamer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+# Any necessary prompting should almost always be confined to the
+# post-installation script, and should be protected with a conditional
+# so that unnecessary prompting doesn't happen if a package's
+# installation fails and the `postinst' is called with `abort-upgrade',
+# `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+ configure)
+ gstreamer-register
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 0
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/gstreamer-tools.files b/debian/gstreamer-tools.files
new file mode 100644
index 0000000000..5e029a3348
--- /dev/null
+++ b/debian/gstreamer-tools.files
@@ -0,0 +1,2 @@
+usr/bin/gstreamer-inspect
+usr/bin/gstreamer-launch
diff --git a/debian/gstreamer-vorbis.files b/debian/gstreamer-vorbis.files
new file mode 100644
index 0000000000..416b74183b
--- /dev/null
+++ b/debian/gstreamer-vorbis.files
@@ -0,0 +1 @@
+usr/lib/gst/libgstvorbis.*
diff --git a/debian/libgst-dev.files b/debian/libgst-dev.files
new file mode 100644
index 0000000000..6d0eba8db5
--- /dev/null
+++ b/debian/libgst-dev.files
@@ -0,0 +1,6 @@
+usr/include
+usr/share/aclocal
+usr/bin/gstreamer-config
+usr/lib/libgst.la
+usr/lib/libgst.so
+usr/lib/gst/libgstelements.la
diff --git a/debian/libgst0.files b/debian/libgst0.files
new file mode 100644
index 0000000000..1f4bb431e3
--- /dev/null
+++ b/debian/libgst0.files
@@ -0,0 +1 @@
+usr/lib/libgst.so.*
diff --git a/debian/libgst0.postinst b/debian/libgst0.postinst
new file mode 100644
index 0000000000..6a6aff91d1
--- /dev/null
+++ b/debian/libgst0.postinst
@@ -0,0 +1,47 @@
+#!/bin/sh
+# postinst script for gstreamer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+# Any necessary prompting should almost always be confined to the
+# post-installation script, and should be protected with a conditional
+# so that unnecessary prompting doesn't happen if a package's
+# installation fails and the `postinst' is called with `abort-upgrade',
+# `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+ configure)
+ ldconfig
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 0
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/libgsteditor-dev.files b/debian/libgsteditor-dev.files
new file mode 100644
index 0000000000..0e4c1bcdf7
--- /dev/null
+++ b/debian/libgsteditor-dev.files
@@ -0,0 +1,2 @@
+usr/lib/libgsteditor.la
+usr/lib/libgsteditor.so
diff --git a/debian/libgsteditor0.files b/debian/libgsteditor0.files
new file mode 100644
index 0000000000..f220031216
--- /dev/null
+++ b/debian/libgsteditor0.files
@@ -0,0 +1 @@
+usr/lib/libgsteditor.so.*
diff --git a/debian/libgsteditor0.postinst b/debian/libgsteditor0.postinst
new file mode 100644
index 0000000000..6a6aff91d1
--- /dev/null
+++ b/debian/libgsteditor0.postinst
@@ -0,0 +1,47 @@
+#!/bin/sh
+# postinst script for gstreamer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+# Any necessary prompting should almost always be confined to the
+# post-installation script, and should be protected with a conditional
+# so that unnecessary prompting doesn't happen if a package's
+# installation fails and the `postinst' is called with `abort-upgrade',
+# `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+ configure)
+ ldconfig
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 0
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/libgstmediaplay-dev.files b/debian/libgstmediaplay-dev.files
new file mode 100644
index 0000000000..b6c11f62fb
--- /dev/null
+++ b/debian/libgstmediaplay-dev.files
@@ -0,0 +1,2 @@
+usr/lib/libgstmediaplay.la
+usr/lib/libgstmediaplay.so
diff --git a/debian/libgstmediaplay0.files b/debian/libgstmediaplay0.files
new file mode 100644
index 0000000000..763c8fc0c7
--- /dev/null
+++ b/debian/libgstmediaplay0.files
@@ -0,0 +1 @@
+usr/lib/libgstmediaplay.so.*
diff --git a/debian/libgstmediaplay0.postinst b/debian/libgstmediaplay0.postinst
new file mode 100644
index 0000000000..6a6aff91d1
--- /dev/null
+++ b/debian/libgstmediaplay0.postinst
@@ -0,0 +1,47 @@
+#!/bin/sh
+# postinst script for gstreamer
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+# Any necessary prompting should almost always be confined to the
+# post-installation script, and should be protected with a conditional
+# so that unnecessary prompting doesn't happen if a package's
+# installation fails and the `postinst' is called with `abort-upgrade',
+# `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+ configure)
+ ldconfig
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 0
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000000..0211411ff4
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,146 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 by Joey Hess.
+#
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This is the debhelper compatability version to use.
+export DH_COMPAT=2
+
+# This has to be exported to make some magic below work.
+export DH_OPTIONS
+
+# The plugins are basically the same.
+# Link special names to a template file.
+# still need "*.files" to be done by hand
+
+PLUGINS=cdparanoia common elements esd lame mpg123 vorbis
+
+setup-links:
+ for i in $(PLUGINS); do \
+ ln -fs debian/gstreamer-plugin-template.postinst \
+ debian/gstreamer-$$i.postinst; \
+ ln -fs debian/gstreamer-plugin-template.prerm \
+ debian/gstreamer-$$i.prerm; \
+ done
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ # Add here commands to configure the package.
+ ./configure \
+ --prefix=/usr \
+ --mandir=\$${prefix}/share/man \
+ --infodir=\$${prefix}/share/info \
+ --with-configdir=/etc/gstreamer \
+ --disable-plugin-srcdir \
+ --disable-docs-build
+
+ touch configure-stamp
+
+build: configure-stamp build-stamp
+build-stamp:
+ dh_testdir
+
+ # Add here commands to compile the package.
+ $(MAKE)
+
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) distclean
+
+ dh_clean
+
+ for i in $(PLUGINS); do \
+ rm -f debian/gstreamer-$$i.postinst; \
+ rm -f debian/gstreamer-$$i.prerm; \
+ done
+
+install: DH_OPTIONS=
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/gstreamer.
+ $(MAKE) install prefix=$(CURDIR)/debian/gstreamer/usr
+
+ dh_movefiles --sourcedir=debian/gstreamer
+
+# Build architecture-independent files here.
+# Pass -i to all debhelper commands in this target to reduce clutter.
+binary-indep: DH_OPTIONS=-i
+binary-indep: build install
+# Need this version of debhelper for DH_OPTIONS to work.
+ dh_testdir
+ dh_testroot
+# dh_installdebconf
+ dh_installdocs
+ dh_installexamples
+ dh_installmenu
+# dh_installemacsen
+# dh_installpam
+# dh_installinit
+# dh_installcron
+# dh_installmanpages
+# dh_installinfo
+# dh_undocumented
+ dh_installchangelogs ChangeLog
+ dh_strip
+# dh_link
+ dh_compress
+ dh_fixperms
+# You may want to make some executables suid here.
+# dh_suidregister
+ dh_installdeb
+# dh_makeshlibs
+# dh_perl
+# dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+# Build architecture-dependent files here.
+# Pass -a to all debhelper commands in this target to reduce clutter.
+binary-arch: DH_OPTIONS=-a
+binary-arch: build install setup-links
+# Need this version of debhelper for DH_OPTIONS to work.
+ dh_testdir
+ dh_testroot
+# dh_installdebconf
+ dh_installdocs
+ dh_installexamples
+ dh_installmenu
+# dh_installemacsen
+# dh_installpam
+# dh_installinit
+# dh_installcron
+# dh_installmanpages
+# dh_installinfo
+ dh_undocumented
+ dh_installchangelogs ChangeLog
+ dh_strip
+# dh_link
+ dh_compress
+ dh_fixperms
+# You may want to make some executables suid here.
+# dh_suidregister
+ dh_installdeb
+ dh_makeshlibs
+# dh_perl
+ dh_shlibdeps -l`pwd`/debian/libgst0/usr/lib:`pwd`/debian/libgstmediaplay0/usr/lib:`pwd`/debian/libgsteditor0/usr/lib
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/docs/Makefile.am b/docs/Makefile.am
index f6fd3b4500..cd66e83097 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = manual fwg gst libs
+SUBDIRS = manual fwg gst libs plugins
EXTRA_DIST = random slides manuals.mak
diff --git a/docs/fwg/testapp.sgml b/docs/fwg/testapp.sgml
index be0807291f..bfbd66abdd 100644
--- a/docs/fwg/testapp.sgml
+++ b/docs/fwg/testapp.sgml
@@ -17,7 +17,7 @@
</para>
</chapter>
-<chapter id="cha-testapp-connect">
+<chapter id="cha-testapp-running">
<title>Running the pipeline</title>
<para>
</para>
diff --git a/docs/fwg/titlepage.sgml b/docs/fwg/titlepage.sgml
index 6893a4b9f1..c7b46aca1b 100644
--- a/docs/fwg/titlepage.sgml
+++ b/docs/fwg/titlepage.sgml
@@ -23,7 +23,7 @@
</author>
</authorgroup>
- <legalnotice>
+ <legalnotice id="legalnotice">
<para>
This material may be distributed only subject to the terms and
conditions set forth in the Open Publication License, v1.0 or
diff --git a/docs/gst/Makefile.am b/docs/gst/Makefile.am
index 428758cf5f..f17dc1aa0b 100644
--- a/docs/gst/Makefile.am
+++ b/docs/gst/Makefile.am
@@ -23,7 +23,6 @@ tmpl_sources = \
tmpl/cothreads.sgml \
tmpl/gst.sgml \
tmpl/gstinfo.sgml \
- tmpl/gstasyncdisksrc.sgml \
tmpl/gstautoplug.sgml \
tmpl/gstscheduler.sgml \
tmpl/gstprops.sgml \
diff --git a/docs/gst/gstreamer-docs.sgml b/docs/gst/gstreamer-docs.sgml
index 9f52596507..09ad84ab3e 100644
--- a/docs/gst/gstreamer-docs.sgml
+++ b/docs/gst/gstreamer-docs.sgml
@@ -30,7 +30,6 @@
<!entity GstFakeSrc SYSTEM "sgml/gstfakesrc.sgml">
<!entity GstFakeSink SYSTEM "sgml/gstfakesink.sgml">
<!entity GstDiskSrc SYSTEM "sgml/gstdisksrc.sgml">
-<!entity GstAsyncDiskSrc SYSTEM "sgml/gstasyncdisksrc.sgml">
<!entity GstHttpSrc SYSTEM "sgml/gsthttpsrc.sgml">
<!entity GstFdSrc SYSTEM "sgml/gstfdsrc.sgml">
<!entity GstAudioSrc SYSTEM "sgml/gstaudiosrc.sgml">
@@ -125,7 +124,6 @@ with some more specialized elements.</para>
&GstFakeSink;
&GstDiskSrc;
- &GstAsyncDiskSrc;
&GstHttpSrc;
&GstAudioSrc;
diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt
index bd23c82583..b7ab308338 100644
--- a/docs/gst/gstreamer-sections.txt
+++ b/docs/gst/gstreamer-sections.txt
@@ -343,6 +343,7 @@ GstPadEOSFunction
GstPadPushFunction
GstPadPullFunction
+GstRegionType
GstPadPullRegionFunction
GstPadDirection
@@ -374,14 +375,16 @@ gst_pad_connect
gst_pad_disconnect
gst_pad_push
gst_pad_pull
-gst_pad_pull_region
gst_pad_pullregion
-gst_pad_select
gst_pad_set_eos
gst_pad_handle_qos
gst_pad_eos
gst_pad_load_and_connect
+GST_RPAD_LEN
+GST_RPAD_OFFSET
+GST_RPAD_REGIONTYPE
+
GstRealPad
GST_RPAD_DIRECTION
GST_RPAD_CAPS
@@ -506,6 +509,7 @@ gst_plugin_is_loaded
gst_plugin_load_all
gst_plugin_load
gst_plugin_load_absolute
+gst_plugin_add_path
gst_library_load
gst_plugin_add_factory
gst_plugin_add_type
@@ -691,21 +695,6 @@ gst_cpu_get_flags
</SECTION>
<SECTION>
-<FILE>gstasyncdisksrc</FILE>
-<TITLE>GstAsyncDiskSrc</TITLE>
-GstAsyncDiskSrcFlags
-<SUBSECTION Standard>
-GstAsyncDiskSrc
-GstAsyncDiskSrcClass
-gst_asyncdisksrc_get_type
-GST_TYPE_ASYNCDISKSRC
-GST_ASYNCDISKSRC
-GST_ASYNCDISKSRC_CLASS
-GST_IS_ASYNCDISKSRC
-GST_IS_ASYNCDISKSRC_CLASS
-</SECTION>
-
-<SECTION>
<FILE>gstaudiosink</FILE>
<TITLE>GstAudioSink</TITLE>
<SUBSECTION Standard>
@@ -749,7 +738,6 @@ GST_DISKSRC
GST_DISKSRC_CLASS
GST_IS_DISKSRC
GST_IS_DISKSRC_CLASS
-gst_disksrc_details
</SECTION>
<SECTION>
diff --git a/docs/gst/tmpl/gstbuffer.sgml b/docs/gst/tmpl/gstbuffer.sgml
index 5b670acb07..9e6f6a2913 100644
--- a/docs/gst/tmpl/gstbuffer.sgml
+++ b/docs/gst/tmpl/gstbuffer.sgml
@@ -134,39 +134,6 @@ This macro releases a lock on the object.
<!-- ##### ENUM GstBufferFlags ##### -->
<para>
-FIXME this is strange.
-
-<informaltable pgwide=1 frame="none" role="enum">
-<tgroup cols="2"><colspec colwidth="2*"><colspec colwidth="8*">
-<tbody>
-<row>
-<entry>GST_BUFFER_READONLY</entry>
-<entry>the buffer is read only</entry>
-</row>
-
-<row>
-<entry>GST_BUFFER_EOS</entry>
-<entry>this buffer is the last one in the stream</entry>
-</row>
-
-<row>
-<entry>GST_BUFFER_ORIGINAL</entry>
-<entry>this buffer not a copy</entry>
-</row>
-
-<row>
-<entry>GST_BUFFER_DONTFREE</entry>
-<entry>do not try to free the data when this buffer is unref-ed</entry>
-</row>
-
-<row>
-<entry>GST_BUFFER_FLUSH</entry>
-<entry>this buffer is not related to previous buffers. This flag is mainly
-used when data in a stream has been skipped</entry>
-</row>
-
-</tbody></tgroup></informaltable>
-
</para>
@GST_BUFFER_READONLY: the buffer is read only
@@ -175,7 +142,7 @@ used when data in a stream has been skipped</entry>
@GST_BUFFER_FLUSH: this buffer is not related to previous buffers. This flag is mainly
used when data in a stream has been skipped
@GST_BUFFER_EOS: this buffer is the last one in the stream
-@GST_BUFFER_DISCONTINUOUS:
+@GST_BUFFER_DISCONTINUOUS: The buffer has a discontinuity
<!-- ##### STRUCT GstBuffer ##### -->
<para>
diff --git a/docs/gst/tmpl/gstcaps.sgml b/docs/gst/tmpl/gstcaps.sgml
index 0ba8ee300a..af2ed33ff3 100644
--- a/docs/gst/tmpl/gstcaps.sgml
+++ b/docs/gst/tmpl/gstcaps.sgml
@@ -102,6 +102,8 @@ a mime-type and a set of properties.
</para>
@caps:
+@Param2:
+<!-- # Unused Parameters # -->
@typeid:
diff --git a/docs/gst/tmpl/gstdisksrc.sgml b/docs/gst/tmpl/gstdisksrc.sgml
index 67c4fd6366..a7d80b5896 100644
--- a/docs/gst/tmpl/gstdisksrc.sgml
+++ b/docs/gst/tmpl/gstdisksrc.sgml
@@ -2,12 +2,11 @@
GstDiskSrc
<!-- ##### SECTION Short_Description ##### -->
-Synchronous read from a file (disksrc)
+Asynchronous read from a file (disksrc)
<!-- ##### SECTION Long_Description ##### -->
<para>
-Synchonously read buffers from a file. If you need asynchronous reading
-with seeking capabilities use a <classname>GstAsynDiskSrc</classname> instead.
+Asynchonously read buffers from a file.
</para>
@@ -45,11 +44,11 @@ Specify how many bytes to read at a time.
<!-- ##### ARG GstDiskSrc:offset ##### -->
<para>
-Get the current offset in the file.
+Get/set the current offset in the file.
</para>
<!-- ##### ARG GstDiskSrc:size ##### -->
<para>
-
+Get the size of the file.
</para>
diff --git a/docs/gst/tmpl/gstobject.sgml b/docs/gst/tmpl/gstobject.sgml
index 21cb532ae3..1abc9546de 100644
--- a/docs/gst/tmpl/gstobject.sgml
+++ b/docs/gst/tmpl/gstobject.sgml
@@ -101,26 +101,26 @@ This macro releases a lock on the object.
<!-- ##### MACRO GST_GET_LOCK ##### -->
<para>
-
+Acquire a reference to the mutex of this object.
</para>
-@obj:
+@obj: Object to get the mutex of.
<!-- ##### MACRO GST_OBJECT_PARENT ##### -->
<para>
-
+Get the parent of this object
</para>
-@obj:
+@obj: Object to get the parent of.
<!-- ##### MACRO GST_OBJECT_NAME ##### -->
<para>
-
+Get the name of this object
</para>
-@obj:
+@obj: Object to get the name of.
<!-- ##### FUNCTION gst_object_new ##### -->
diff --git a/docs/gst/tmpl/gstpad.sgml b/docs/gst/tmpl/gstpad.sgml
index c4dd1f6c6b..5a5dd33144 100644
--- a/docs/gst/tmpl/gstpad.sgml
+++ b/docs/gst/tmpl/gstpad.sgml
@@ -124,12 +124,14 @@ The function that will be called when pulling a buffer.
<!-- ##### USER_FUNCTION GstPadGetRegionFunction ##### -->
<para>
The function that will be called when pulling a region buffer.
+You can specify which buffer to get using an offset/length pair or
+a start/stop timecode pair.
</para>
@pad: the pad to get a buffer from
-@type:
+@type: the type of region to get (time or offset based)
@offset: the offset of the region to get
-@len:
+@len: the length of the region to get
@Returns: a #GstBuffer
<!-- # Unused Parameters # -->
@size: the size of the region to get
@@ -172,18 +174,28 @@ The function that will be called when pulling buffers.
@Returns: a GstBuffer
+<!-- ##### ENUM GstRegionType ##### -->
+<para>
+the region types for #gst_pad_pullregion.
+</para>
+
+@GST_REGION_NONE: no type specified
+@GST_REGION_OFFSET_LEN: an offet/length pair
+@GST_REGION_TIME_LEN: a time start/length pair
+
<!-- ##### USER_FUNCTION GstPadPullRegionFunction ##### -->
<para>
The function that will be called when pulling a region buffer.
+You can specify which buffer to get using an offset/length pair or
+a start/stop timecode pair.
</para>
-@pad: the pad to pull
-@type:
-@offset: the offset of the region to pull
-@len:
-@Returns: a GstBuffer
-<!-- # Unused Parameters # -->
-@size: the size of the region to pull
+@pad: the pad to get a buffer from
+@type: the type of region to get (time or offset based)
+@offset: the offset of the region to get
+@len: the length of the region to get
+@Returns: a #GstBuffer
+</para>
<!-- ##### ENUM GstPadDirection ##### -->
@@ -440,6 +452,8 @@ Destroy the pad.
</para>
@pad:
+@buf:
+<!-- # Unused Parameters # -->
@buffer:
@@ -466,16 +480,6 @@ Destroy the pad.
@size:
-<!-- ##### FUNCTION gst_pad_select ##### -->
-<para>
-
-</para>
-
-@nextpad:
-@Varargs:
-@Returns:
-
-
<!-- ##### FUNCTION gst_pad_set_eos ##### -->
<para>
@@ -514,6 +518,30 @@ Call the EOS function of the pad
@elements:
+<!-- ##### MACRO GST_RPAD_LEN ##### -->
+<para>
+
+</para>
+
+@pad:
+
+
+<!-- ##### MACRO GST_RPAD_OFFSET ##### -->
+<para>
+
+</para>
+
+@pad:
+
+
+<!-- ##### MACRO GST_RPAD_REGIONTYPE ##### -->
+<para>
+
+</para>
+
+@pad:
+
+
<!-- ##### STRUCT GstRealPad ##### -->
<para>
diff --git a/docs/gst/tmpl/gstplugin.sgml b/docs/gst/tmpl/gstplugin.sgml
index 322e86fd9b..b4b87637e0 100644
--- a/docs/gst/tmpl/gstplugin.sgml
+++ b/docs/gst/tmpl/gstplugin.sgml
@@ -135,6 +135,14 @@ by the loader at statup.
@Returns:
+<!-- ##### FUNCTION gst_plugin_add_path ##### -->
+<para>
+
+</para>
+
+@path:
+
+
<!-- ##### FUNCTION gst_library_load ##### -->
<para>
diff --git a/docs/gst/tmpl/gstreamer-unused.sgml b/docs/gst/tmpl/gstreamer-unused.sgml
index 5a7897fd53..f65eb6ad4d 100644
--- a/docs/gst/tmpl/gstreamer-unused.sgml
+++ b/docs/gst/tmpl/gstreamer-unused.sgml
@@ -154,14 +154,6 @@ This macro usets the given flags.
</para>
-<!-- ##### FUNCTION gst_pipeline_add_src ##### -->
-<para>
-
-</para>
-
-@pipeline:
-@src:
-
<!-- ##### MACRO DEBUG ##### -->
<para>
Use this macro to show debugging info. This is only usefull when developing new
@@ -681,14 +673,6 @@ Query whether this object has multiple input pads.
@size:
@Returns:
-<!-- ##### USER_FUNCTION GstAutoplugListFunction ##### -->
-<para>
-Get a list of all elements. These elements will be used in autoplugging.
-</para>
-
-@data: user data
-@Returns: a GList of elements
-
<!-- ##### FUNCTION gst_fdsink_new_with_fd ##### -->
<para>
@@ -911,6 +895,15 @@ Specify the current offset in the file.
@klass:
+<!-- ##### FUNCTION gst_pad_select ##### -->
+<para>
+
+</para>
+
+@nextpad:
+@Varargs:
+@Returns:
+
<!-- ##### FUNCTION gst_identity_get_type ##### -->
<para>
@@ -1019,12 +1012,6 @@ on its own.
@klass:
-<!-- ##### MACRO GST_AUTOPLUG_MAX_COST ##### -->
-<para>
-The maximum cost of a certain connection.
-</para>
-
-
<!-- ##### SECTION ./tmpl/gstcolorspace.sgml:Short_Description ##### -->
@@ -1471,15 +1458,6 @@ This macro unsets the given state on the element.
@pad:
@parent:
-<!-- ##### FUNCTION gst_autoplug_caps ##### -->
-<para>
-
-</para>
-
-@srccaps:
-@sinkcaps:
-@Returns:
-
<!-- ##### FUNCTION gst_tee_new ##### -->
<para>
@@ -1708,15 +1686,6 @@ This macro sets the given state on the element.
</para>
-<!-- ##### FUNCTION gst_autoplug_pads ##### -->
-<para>
-
-</para>
-
-@srcpad:
-@sinkpad:
-@Returns:
-
<!-- ##### FUNCTION gst_src_push_region ##### -->
<para>
@@ -2026,14 +1995,6 @@ GstFilter
@GST_CAPS_ALWAYS:
@GST_CAPS_MAYBE:
-<!-- ##### FUNCTION gst_pipeline_autoplug ##### -->
-<para>
-
-</para>
-
-@pipeline:
-@Returns:
-
<!-- ##### STRUCT GstPadClass ##### -->
<para>
@@ -2048,6 +2009,7 @@ Flags for the GstSrc element
@GST_SRC_ASYNC: Indicates that this src is asynchronous
@GST_SRC_FLAG_LAST: subclasses can use this to number their flags
+
<!-- ##### MACRO GST_HTTPSRC ##### -->
<para>
@@ -2239,6 +2201,13 @@ The end point of a filter graph
@format:
@args...:
+<!-- ##### SECTION ./tmpl/gstasyncdisksrc.sgml:Long_Description ##### -->
+<para>
+Reads data from a file. You can seek to a specific location by setting
+the offset.
+</para>
+
+
<!-- ##### MACRO GST_IS_ASYNCDISKSRC_CLASS ##### -->
<para>
@@ -2266,14 +2235,6 @@ The end point of a filter graph
</para>
-<!-- ##### FUNCTION gst_pipeline_add_sink ##### -->
-<para>
-
-</para>
-
-@pipeline:
-@sink:
-
<!-- ##### SECTION ./tmpl/plugin.sgml:Title ##### -->
plugin
@@ -2336,14 +2297,6 @@ This macro checks to see if the given state is set.
</para>
-<!-- ##### FUNCTION gst_plugin_find_elementfactory ##### -->
-<para>
-
-</para>
-
-@name:
-@Returns:
-
<!-- ##### FUNCTION gst_type_dump ##### -->
<para>
@@ -2387,16 +2340,6 @@ This macro sets the given flags.
@klass:
-<!-- ##### USER_FUNCTION GstAutoplugCostFunction ##### -->
-<para>
-Calculate the cost between two elements.
-</para>
-
-@src: the source element
-@dest: the destination element
-@data: optional user data
-@Returns: the cost for a connection between the two elements
-
<!-- ##### MACRO DEBUG_LEAVE_STRING ##### -->
<para>
diff --git a/docs/manual/Makefile.am b/docs/manual/Makefile.am
index 86452b25a6..9d9a225d29 100644
--- a/docs/manual/Makefile.am
+++ b/docs/manual/Makefile.am
@@ -1,5 +1,5 @@
manualname = gstreamer-manual
-htmlname = gstreamer.html
+htmlname = index.html
sgml_files = gstreamer-manual.sgml \
advanced.sgml \
@@ -20,6 +20,7 @@ sgml_files = gstreamer-manual.sgml \
motivation.sgml \
plugins.sgml \
programs.sgml \
+ debugging.sgml \
queues.sgml \
states.sgml \
threads.sgml \
diff --git a/docs/manual/bins.sgml b/docs/manual/bins.sgml
index eb89b4c475..ec69b174cf 100644
--- a/docs/manual/bins.sgml
+++ b/docs/manual/bins.sgml
@@ -110,7 +110,7 @@
while (elements) {
GstElement *element = GST_ELEMENT (elements-&gt;data);
- g_print ("element in bin: %s\n", gst_element_get_name (element));
+ g_print ("element in bin: &percnt;s\n", gst_element_get_name (element));
elements = g_list_next (elements);
}
diff --git a/docs/manual/debugging.sgml b/docs/manual/debugging.sgml
new file mode 100644
index 0000000000..aae503c5ab
--- /dev/null
+++ b/docs/manual/debugging.sgml
@@ -0,0 +1,89 @@
+<chapter id="cha-debugging">
+ <title>Debugging</title>
+ <para>
+ GStreamer has an extensive set of debugging tools for
+ plugin developers.
+ </para>
+
+ <sect1>
+ <title>Command line options</title>
+ <para>
+ Applications using the GStreamer libraries accept the following set
+ of command line argruments to enable the debugging system.
+ </para>
+
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>--gst-debug-mask=<replaceable>mask</replaceable></option>
+ Sets the mask for the debugging output.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>--gst-info-mask=<replaceable>mask</replaceable></option>
+ Sets the mask for the info output.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>--gst-plugin-spew</option>
+ Enable printout of errors while loading GST plugins.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>--gst-plugin-path=<replaceable>PATH</replaceable></option>
+ Add a directory to the plugin search path.
+ </para>
+ <listitem>
+ <para>
+ <option>--help</option> Print the a short desciption of the
+ options and an overview of the current debugging/info masks
+ set.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ <para>
+ The follwing table gives an overview of the mask values and
+ their meaning. (enabled) means that the corresponding flag
+ has been set.
+ </para>
+ <programlisting>
+Mask (to be OR'ed) info/debug FLAGS
+--------------------------------------------------------
+0x00000001 (enabled)/ GST_INIT
+0x00000002 / COTHREADS
+0x00000004 / COTHREAD_SWITCH
+0x00000008 / AUTOPLUG
+0x00000010 / AUTOPLUG_ATTEMPT
+0x00000020 / PARENTAGE
+0x00000040 / STATES
+0x00000080 / PLANING
+0x00000100 / SCHEDULING
+0x00000200 / OPERATION
+0x00000400 / BUFFER
+0x00000800 / CAPS
+0x00001000 / CLOCK
+0x00002000 / ELEMENT_PADS
+0x00004000 / ELEMENTFACTORY
+0x00008000 / PADS
+0x00010000 / PIPELINE
+0x00020000 / PLUGIN_LOADING
+0x00040000 / PLUGIN_ERRORS
+0x00080000 / PROPERTIES
+0x00100000 / THREAD
+0x00200000 / TYPES
+0x00400000 / XML
+ </programlisting>
+ </sect1>
+ <sect1>
+ <title>Adding a custom debug handler</title>
+ <para>
+ </para>
+ </sect1>
+
+</chapter>
diff --git a/docs/manual/dynamic.sgml b/docs/manual/dynamic.sgml
index 4cfdcf6846..23a59263e7 100644
--- a/docs/manual/dynamic.sgml
+++ b/docs/manual/dynamic.sgml
@@ -102,7 +102,7 @@ new_pad_created (GstElement *parse, GstPad *pad, GstElement *pipeline)
GtkWidget *appwindow;
- g_print ("***** a new pad %s was created\n", gst_pad_get_name (pad));
+ g_print ("***** a new pad &percnt;s was created\n", gst_pad_get_name (pad));
gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PAUSED);
diff --git a/docs/manual/gstreamer-manual.sgml b/docs/manual/gstreamer-manual.sgml
index ee6ea71526..69871cfaa4 100644
--- a/docs/manual/gstreamer-manual.sgml
+++ b/docs/manual/gstreamer-manual.sgml
@@ -23,12 +23,13 @@
<!ENTITY XML SYSTEM "xml.sgml">
<!ENTITY PLUGINS SYSTEM "plugins.sgml">
+<!ENTITY DEBUGGING SYSTEM "debugging.sgml">
<!ENTITY PROGRAMS SYSTEM "programs.sgml">
<!ENTITY COMPONENTS SYSTEM "components.sgml">
<!ENTITY QUOTES SYSTEM "quotes.sgml">
]>
-<book id="GStreamer">
+<book id="index">
<bookinfo>
<authorgroup>
@@ -43,7 +44,7 @@
</author>
</authorgroup>
- <legalnotice>
+ <legalnotice id="legalnotice">
<para>
This material may be distributed only subject to the terms and
conditions set forth in the Open Publication License, v1.0 or later (the
@@ -183,9 +184,12 @@
<partintro>
<para>
<application>GStreamer</application> comes prepackaged with a few programs.
+ and some usefull debugging options.
</para>
</partintro>
+ &DEBUGGING;
+
&PROGRAMS;
&COMPONENTS;
diff --git a/docs/manual/helloworld.sgml b/docs/manual/helloworld.sgml
index f9802e01c6..7eaa2450bc 100644
--- a/docs/manual/helloworld.sgml
+++ b/docs/manual/helloworld.sgml
@@ -38,7 +38,7 @@ main (int argc, char *argv[])
gst_init(&amp;argc, &amp;argv);
if (argc != 2) {
- g_print ("usage: %s &lt;filename&gt;n", argv[0]);
+ g_print ("usage: &percnt;s &lt;filename&gt;n", argv[0]);
exit (-1);
}
diff --git a/docs/manual/helloworld2.sgml b/docs/manual/helloworld2.sgml
index 98c2e96736..1a48f7f991 100644
--- a/docs/manual/helloworld2.sgml
+++ b/docs/manual/helloworld2.sgml
@@ -41,7 +41,7 @@ main (int argc, char *argv[])
GstElement *pipeline;
if (argc != 2) {
- g_print ("usage: %s &lt;filename&gt;\n", argv[0]);
+ g_print ("usage: &percnt;s &lt;filename&gt;\n", argv[0]);
exit (-1);
}
diff --git a/docs/manual/pads.sgml b/docs/manual/pads.sgml
index 8cfaf47f5d..1efd56dd0b 100644
--- a/docs/manual/pads.sgml
+++ b/docs/manual/pads.sgml
@@ -34,7 +34,7 @@
while (pads) {
GstPad *pad = GST_PAD (pads-&gt;data);
- g_print ("pad name %s\n", gst_pad_get_name (pad));
+ g_print ("pad name &percnt;s\n", gst_pad_get_name (pad));
pads = g_list_next (pads);
}
@@ -57,7 +57,7 @@
GstObject.
</para>
</sect2>
- <sect2 id="sec-pads-synamic">
+ <sect2 id="sec-pads-dynamic">
<title>Dynamic pads</title>
<para>
Some elements might not have their pads when they are created. This can, for
@@ -82,7 +82,7 @@
static void
pad_connect_func (GstElement *parser, GstPad *pad, GstElement *pipeline)
{
- g_print("***** a new pad %s was created\n", gst_pad_get_name(pad));
+ g_print("***** a new pad &percnt;s was created\n", gst_pad_get_name(pad));
gst_element_set_state (pipeline, GST_STATE_PAUSED);
@@ -119,6 +119,58 @@ main(int argc, char *argv[])
</para>
</note>
</sect2>
+ <sect2 id="sec-pads-request">
+ <title>Request pads</title>
+ <para>
+ An element can also have request pads. These pads are not created automatically
+ but are only created on demand. This is very usefull for muxers, aggregators
+ and tee elements.
+ </para>
+ <para>
+ The tee element, for example, has one input pad and a request padtemplate for the
+ output pads. Whenever an element wants to get an output pad from the tee element, it
+ has to request the pad.
+ </para>
+ <para>
+ The following piece of code can be used to get a pad from the tee element. After
+ the pad has been requested, it can be used to connect another element to it.
+ </para>
+ <programlisting>
+ ...
+ GstPad *pad;
+ ...
+ element = gst_elementfactory_make ("tee", "element");
+
+ pad = gst_element_request_pad_by_name (element, "src%d");
+ g_print ("new pad %s\n", gst_pad_get_name (pad));
+ ...
+ </programlisting>
+ <para>
+ The gst_element_request_pad_by_name method can be used to get a pad
+ from the element based on the name_template of the padtemplate.
+ </para>
+ <para>
+ It is also possible to request a pad that is compatible with another
+ padtemplate. This is very usefull if you want to connect an element to
+ a muxer element and you need to request a pad that is compatible. The
+ gst_element_request_compatible_pad is used to request a compatible pad, as
+ is shown in the next example.
+ </para>
+ <programlisting>
+ ...
+ GstPadTemplate *templ;
+ GstPad *pad;
+ ...
+ element = gst_elementfactory_make ("tee", "element");
+ mp3parse = gst_elementfactory_make ("mp3parse", "mp3parse");
+
+ templ = gst_element_get_padtemplate_by_name (mp3parse, "sink");
+
+ pad = gst_element_request_compatible_pad (element, templ);
+ g_print ("new pad %s\n", gst_pad_get_name (pad));
+ ...
+ </programlisting>
+ </sect2>
</sect1>
<sect1 id="sec-pads-description">
<title>Capabilities of a GstPad</title>
@@ -258,12 +310,12 @@ Pads:
...
caps = gst_pad_get_caps_list (pad);
- g_print ("pad name %s\n", gst_pad_get_name (pad));
+ g_print ("pad name &percnt;s\n", gst_pad_get_name (pad));
while (caps) {
GstCaps *cap = (GstCaps *) caps-&gt;data;
- g_print (" Capability name %s, MIME type\n", gst_caps_get_name (cap),
+ g_print (" Capability name &percnt;s, MIME type\n", gst_caps_get_name (cap),
gst_caps_get_mime (cap));
caps = g_list_next (caps);
diff --git a/docs/manual/plugins.sgml b/docs/manual/plugins.sgml
index 4f7c57cbed..6d082d0104 100644
--- a/docs/manual/plugins.sgml
+++ b/docs/manual/plugins.sgml
@@ -55,7 +55,7 @@ struct _GstPlugin {
while (plugins) {
GstPlugin *plugin = (GstPlugin *)plugins-&gt;data;
- g_print ("plugin: %s\n", gst_plugin_get_name (plugin));
+ g_print ("plugin: &percnt;s\n", gst_plugin_get_name (plugin));
plugins = g_list_next (plugins);
}
diff --git a/docs/manual/queues.sgml b/docs/manual/queues.sgml
index e057f2e8d7..2450e49961 100644
--- a/docs/manual/queues.sgml
+++ b/docs/manual/queues.sgml
@@ -66,7 +66,7 @@ main (int argc, char *argv[])
gst_init (&amp;argc,&amp;argv);
if (argc != 2) {
- g_print ("usage: %s &lt;filename&gt;\n", argv[0]);
+ g_print ("usage: &percnt;s &lt;filename&gt;\n", argv[0]);
exit (-1);
}
diff --git a/docs/manual/quotes.sgml b/docs/manual/quotes.sgml
index 78bff5dd0d..11cfc1f572 100644
--- a/docs/manual/quotes.sgml
+++ b/docs/manual/quotes.sgml
@@ -12,6 +12,26 @@
<variablelist>
<varlistentry>
+ <term>16 Feb 2001</term>
+ <listitem>
+ <para>
+ <emphasis>wtay:</emphasis>
+ I shipped a few commerical products to &gt;40000 people now but
+ GStreamer is way more exciting...
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>16 Feb 2001</term>
+ <listitem>
+ <para>
+ *
+ <emphasis>tool-man</emphasis>
+ is a gstreamer groupie
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term>14 Jan 2001</term>
<listitem>
<para>
diff --git a/docs/manual/threads.sgml b/docs/manual/threads.sgml
index 29908ade29..b5f24f0bb6 100644
--- a/docs/manual/threads.sgml
+++ b/docs/manual/threads.sgml
@@ -77,7 +77,7 @@ main (int argc, char *argv[])
GstElement *thread;
if (argc != 2) {
- g_print ("usage: %s &lt;filename&gt;\n", argv[0]);
+ g_print ("usage: &percnt;s &lt;filename&gt;\n", argv[0]);
exit (-1);
}
diff --git a/docs/manual/typedetection.sgml b/docs/manual/typedetection.sgml
index cfbf97782b..297c56221a 100644
--- a/docs/manual/typedetection.sgml
+++ b/docs/manual/typedetection.sgml
@@ -64,7 +64,7 @@ main(int argc, char *argv[])
gst_init(&amp;argc,&amp;argv);
if (argc != 2) {
- g_print("usage: %s &lt;filename&gt;\n", argv[0]);
+ g_print("usage: &percnt;s &lt;filename&gt;\n", argv[0]);
exit(-1);
}
diff --git a/docs/manual/xml.sgml b/docs/manual/xml.sgml
index 399a90739a..7cc518205c 100644
--- a/docs/manual/xml.sgml
+++ b/docs/manual/xml.sgml
@@ -38,7 +38,7 @@ main (int argc, char *argv[])
gst_init (&amp;argc,&amp;argv);
if (argc != 2) {
- g_print ("usage: %s &lt;filename&gt;\n", argv[0]);
+ g_print ("usage: &percnt;s &lt;filename&gt;\n", argv[0]);
exit (-1);
}
@@ -120,7 +120,9 @@ main (int argc, char *argv[])
<sect1 id="sec-xml-load">
<title>Loading a GstElement from an XML file</title>
<para>
- A saved XML file can be loade with the gst_xml_new (filename, rootelement).
+ Before an XML file can be loaded, you must create a GstXML object.
+ A saved XML file can then be loaded with the
+ gst_xml_parse_file (xml, filename, rootelement) method.
The root element can optionally left NULL. The following code example loads
the previously created XML file and runs it.
</para>
@@ -128,37 +130,28 @@ main (int argc, char *argv[])
#include &lt;stdlib.h&gt;
#include &lt;gst/gst.h&gt;
-gboolean playing;
-
-/* eos will be called when the src element has an end of stream */
-void
-eos (GstElement *element, gpointer data)
-{
- g_print ("have eos, quitting\n");
-
- playing = FALSE;
-}
-
int
main(int argc, char *argv[])
{
GstXML *xml;
GstElement *bin;
- GstElement *disk;
+ gboolean ret;
gst_init (&amp;argc, &amp;argv);
- xml = gst_xml_new ("xmlTest.gst", NULL);
+ xml = gst_xml_new ();
+
+ ret = gst_xml_parse_file(xml, "xmlTest.gst", NULL);
+ g_assert (ret == TRUE);
bin = gst_xml_get_element (xml, "bin");
+ g_assert (bin != NULL);
gst_element_set_state (bin, GST_STATE_PLAYING);
playing = TRUE;
- while (playing) {
- gst_bin_iterate (GST_BIN (bin));
- }
+ while (gst_bin_iterate(GST_BIN(bin)));
gst_element_set_state (bin, GST_STATE_NULL);
@@ -173,6 +166,127 @@ main(int argc, char *argv[])
gst_xml_get_topelements (xml) can be used to get a list of all toplevel elements
in the XML file.
</para>
+ <para>
+ In addition to loading a file, you can also load a from a xmlDocPtr and
+ an in memory buffer using gst_xml_parse_doc and gst_xml_parse_memory
+ respectivily. both of these methods return a gboolean indicating success
+ or failure of the requested action.
+ </para>
+ </sect1>
+ <sect1 id="sec-xml-custom">
+ <title>Adding custom XML tags into the core XML data</title>
+
+ <para>
+ It is possible to add custom XML tags to the core XML created with
+ gst_xml_write. This feature can be used by an application to add more
+ information to the save plugins. the editor will for example insert
+ the position of the elements on the screen using the custom XML tags.
+ </para>
+ <para>
+ It is strongly suggested to save and load the custom XML tags using
+ a namespace. This will solve the problem of having your XML tags
+ interfere with the core XML tags.
+ </para>
+ <para>
+ To insert a hook into the element saving procedure you can connect
+ a signal to the GstElement using the following piece of code:
+ </para>
+ <programlisting>
+xmlNsPtr ns;
+
+ ...
+ ns = xmlNewNs (NULL, "http://gstreamer.net/gst-test/1.0/", "test");
+ ...
+ thread = gst_elementfactory_make("thread", "thread");
+ gtk_signal_connect (GTK_OBJECT (thread), "object_saved", object_saved, g_strdup ("decoder thread"));
+ ...
+ </programlisting>
+ <para>
+ When the thread is saved, the object_save method will be caled. Our example
+ will insert a comment tag:
+ </para>
+ <programlisting>
+static void
+object_saved (GstObject *object, xmlNodePtr parent, gpointer data)
+{
+ xmlNodePtr child;
+
+ child = xmlNewChild(parent, ns, "comment", NULL);
+ xmlNewChild(child, ns, "text", (gchar *)data);
+}
+ </programlisting>
+ <para>
+ Adding the custom tag code to the above example you will get an XML file
+ with the custom tags in it. Here's an excerpt:
+ </para>
+ <programlisting>
+ ...
+ &lt;gst:element&gt;
+ &lt;gst:name&gt;thread&lt;/gst:name&gt;
+ &lt;gst:type&gt;thread&lt;/gst:type&gt;
+ &lt;gst:version&gt;0.1.0&lt;/gst:version&gt;
+ ...
+ &lt;/gst:children&gt;
+ &lt;test:comment&gt;
+ &lt;test:text&gt;decoder thread&lt;/test:text&gt;
+ &lt;/test:comment&gt;
+ &lt;/gst:element&gt;
+ ...
+ </programlisting>
+ <para>
+ To retrieve the custom XML again, you need to attach a signal to
+ the GstXML object used to load the XML data. You can then parse your
+ custom XML from the XML tree whenever an object is loaded.
+ </para>
+
+ <para>
+ We can extend our previous example with the following piece of
+ code.
+ </para>
+
+ <programlisting>
+ xml = gst_xml_new ();
+
+ gtk_signal_connect (GTK_OBJECT (xml), "object_loaded", xml_loaded, xml);
+
+ ret = gst_xml_parse_file(xml, "xmlTest.gst", NULL);
+ g_assert (ret == TRUE);
+ </programlisting>
+
+ <para>
+ Whenever a new object has been loaded, the xml_loaded function will be
+ called. this function looks like:
+ </para>
+ <programlisting>
+static void
+xml_loaded (GstXML *xml, GstObject *object, xmlNodePtr self, gpointer data)
+{
+ xmlNodePtr children = self-&gt;xmlChildrenNode;
+
+ while (children) {
+ if (!strcmp (children-&gt;name, "comment")) {
+ xmlNodePtr nodes = children-&gt;xmlChildrenNode;
+
+ while (nodes) {
+ if (!strcmp (nodes-&gt;name, "text")) {
+ gchar *name = g_strdup (xmlNodeGetContent (nodes));
+ g_print ("object %s loaded with comment '%s'\n",
+ gst_object_get_name (object), name);
+ }
+ nodes = nodes-&gt;next;
+ }
+ }
+ children = children-&gt;next;
+ }
+}
+ </programlisting>
+ <para>
+ As you can see, you'll get a handle to the GstXML object, the
+ newly loaded GstObject and the xmlNodePtr that was used to create
+ this object. In the above example we look for our special tag inside
+ the XML tree that was used to load the object and we print our
+ comment to the console.
+ </para>
</sect1>
</chapter>
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index 66492fdd42..c210ca1909 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -47,7 +47,9 @@ sgml/$(DOC_MODULE)-doc.bottom: $(tmpl_sources)
$(MAKE) sgml
scanobj:
- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" ./gstdoc-scanobj --module=$(DOC_MODULE)
+ env CC="$(LIBTOOL) $(CC)" CFLAGS="$(LIBGST_CFLAGS) $(GLIB_CFLAGS) $(XML_CFLAGS) -I../../" LDFLAGS="$(GST_LIBS)"\
+ ./gstdoc-scanobj --module=$(DOC_MODULE)
+
tmpl: scanobj
./gstdoc-mktmpl --module=$(DOC_MODULE)
diff --git a/docs/plugins/gstdoc-scanobj b/docs/plugins/gstdoc-scanobj
index 0faac08c69..a60e7c9ef2 100755
--- a/docs/plugins/gstdoc-scanobj
+++ b/docs/plugins/gstdoc-scanobj
@@ -839,7 +839,7 @@ output_widget_pads (FILE *fp, GstElement *element)
type = gst_type_find_by_id(1);
fprintf (fp, "<PAD>\n<NAME>%s::%s</NAME>\n",
- gtk_type_name(factory->type), pad->name);
+ gtk_type_name(factory->type), gst_object_get_name (GST_OBJECT (pad)));
if (type) {
fprintf(fp, "<MIME>%s</MIME>\n", type->mime);
diff --git a/docs/plugins/tmpl/ac3parse.sgml b/docs/plugins/tmpl/ac3parse.sgml
index 9c0b4eb817..6288ef2cc3 100644
--- a/docs/plugins/tmpl/ac3parse.sgml
+++ b/docs/plugins/tmpl/ac3parse.sgml
@@ -14,8 +14,3 @@ Ac3Parse
</para>
-<!-- ##### ARG Ac3Parse:skip ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/audioscale.sgml b/docs/plugins/tmpl/audioscale.sgml
index 1bdd4a82e9..69bc3bb5d4 100644
--- a/docs/plugins/tmpl/audioscale.sgml
+++ b/docs/plugins/tmpl/audioscale.sgml
@@ -14,8 +14,3 @@ Audioscale
</para>
-<!-- ##### ARG Audioscale:frequency ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/gstaviencoder.sgml b/docs/plugins/tmpl/gstaviencoder.sgml
index 453ee2ed19..bdfaf6425b 100644
--- a/docs/plugins/tmpl/gstaviencoder.sgml
+++ b/docs/plugins/tmpl/gstaviencoder.sgml
@@ -14,13 +14,3 @@ GstAviEncoder
</para>
-<!-- ##### ARG GstAviEncoder:video ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstAviEncoder:audio ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/gstmpeg2enc.sgml b/docs/plugins/tmpl/gstmpeg2enc.sgml
index 2ce74351f0..0daebe9a25 100644
--- a/docs/plugins/tmpl/gstmpeg2enc.sgml
+++ b/docs/plugins/tmpl/gstmpeg2enc.sgml
@@ -14,8 +14,3 @@ GstMpeg2enc
</para>
-<!-- ##### ARG GstMpeg2enc:frames_per_second ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/gstmpeg2play.sgml b/docs/plugins/tmpl/gstmpeg2play.sgml
index c279658d0a..bfc7025aa0 100644
--- a/docs/plugins/tmpl/gstmpeg2play.sgml
+++ b/docs/plugins/tmpl/gstmpeg2play.sgml
@@ -14,8 +14,3 @@ GstMpeg2play
</para>
-<!-- ##### ARG GstMpeg2play:frames_per_second ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/gstmpeg_play.sgml b/docs/plugins/tmpl/gstmpeg_play.sgml
index b3b9db6a53..5fb1038529 100644
--- a/docs/plugins/tmpl/gstmpeg_play.sgml
+++ b/docs/plugins/tmpl/gstmpeg_play.sgml
@@ -14,11 +14,3 @@ GstMpeg_play
</para>
-<!-- ##### SIGNAL GstMpeg_play::frame-decoded ##### -->
-<para>
-
-</para>
-
-@gstmpeg_play: the object which received the signal.
-@arg1:
-
diff --git a/docs/plugins/tmpl/gstreamer-plugins-unused.sgml b/docs/plugins/tmpl/gstreamer-plugins-unused.sgml
index d59270a898..73c7ee0ae0 100644
--- a/docs/plugins/tmpl/gstreamer-plugins-unused.sgml
+++ b/docs/plugins/tmpl/gstreamer-plugins-unused.sgml
@@ -1,303 +1,332 @@
-<!-- ##### STRUCT Mpeg2Meta ##### -->
+<!-- ##### FUNCTION i_audio_decode_init ##### -->
<para>
</para>
-@packet_length:
-@PES_scrambling_control:
-@PES_priority:
-@data_alignment_indicator:
-@copyright:
-@original_or_copy:
-@PTS_DTS_flags:
-@ESCR_flag:
-@ES_rate_flag:
-@DSM_trick_mode_flag:
-@additional_copy_info_flag:
-@CRC_flag:
-@PES_extension_flag:
-@PES_header_data_length:
-@PTS:
-@DTS:
-@ESCR_base:
-@ESCR_extension:
-@ES_rate:
-@trick_mode_control:
+@h:
+@framebytes_arg:
+@reduction_code:
+@transform_code:
+@convert_code:
+@freq_limit:
+@Returns:
-<!-- ##### FUNCTION create_sector ##### -->
+<!-- ##### MACRO EXT_BUF_SIZE ##### -->
<para>
</para>
-@sector:
-@pack:
-@sys_header:
-@packet_size:
-@inputbuffer:
-@type:
-@buffer_scale:
-@buffer_size:
-@buffers:
-@PTS:
-@DTS:
-@timestamps:
-@which_streams:
-<!-- ##### SECTION ./tmpl/qtables.sgml:Short_Description ##### -->
+<!-- ##### MACRO DecodeDCTCoeffFirst ##### -->
+<para>
+</para>
+@gb:
+@runval:
+@levelval:
-<!-- ##### FUNCTION MakeMask ##### -->
+<!-- ##### MACRO GetFlag ##### -->
<para>
</para>
-@x:
-@y:
-@mask:
-@XIob:
+@value:
+@flag:
-<!-- ##### FUNCTION SetMem ##### -->
+<!-- ##### MACRO MAX_NAME_SIZE ##### -->
<para>
</para>
-@value:
-@m1:
-<!-- ##### MACRO DECODE_MAGIC_NUMBER ##### -->
+<!-- ##### MACRO DC_QUARTER ##### -->
<para>
</para>
-<!-- ##### MACRO T_X11HIQ ##### -->
+<!-- ##### MACRO MAIN_LEVEL ##### -->
<para>
</para>
-<!-- ##### FUNCTION mrclose ##### -->
+<!-- ##### FUNCTION inithuff ##### -->
<para>
</para>
@vid_stream:
-<!-- ##### FUNCTION gst_aviencoder_new ##### -->
+<!-- ##### SECTION ./tmpl/mpeg2dec.sgml:See_Also ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### MACRO TIMESTAMPS_PTS ##### -->
+<!-- ##### FUNCTION aiff_write_headers ##### -->
<para>
</para>
+@Param1:
+@Param2:
+@Returns:
-<!-- ##### FUNCTION gst_cobin_iterate ##### -->
+<!-- ##### SECTION ./tmpl/param.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### FUNCTION ReadGOPHeader ##### -->
<para>
</para>
-@cobin:
+@vid_stream:
-<!-- ##### FUNCTION BoundIQuantizeMatrix ##### -->
+<!-- ##### MACRO LBOUND ##### -->
<para>
</para>
-@matrix:
+@index:
+@value:
-<!-- ##### SECTION ./tmpl/bit_allocate.sgml:Title ##### -->
-bit_allocate
+<!-- ##### SECTION ./tmpl/parse.sgml:Short_Description ##### -->
-<!-- ##### FUNCTION gst_spindentity_chain ##### -->
+
+<!-- ##### SECTION ./tmpl/gdkxvimage.sgml:Title ##### -->
+gdkxvimage
+
+
+<!-- ##### MACRO VIDEO_ELEMENTARY_STREAM ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### MACRO GST_AVIENCODER_MAX_AUDIO_PADS ##### -->
+<!-- ##### MACRO DecodeMBAddrInc ##### -->
<para>
</para>
+@gb:
+@val:
-<!-- ##### FUNCTION MPEGNonIntraIQuantize ##### -->
+<!-- ##### FUNCTION Sub2Compensate ##### -->
<para>
</para>
+@vid_stream:
@matrix:
-@qptr:
-@qfact:
+@XIob:
+@YIob:
-<!-- ##### MACRO GRAB_ATTR_VOLUME ##### -->
+<!-- ##### FUNCTION gdk_xvimage_check_xvideo ##### -->
<para>
</para>
+@Returns:
-<!-- ##### MACRO MAX_SECTOR_SIZE ##### -->
+<!-- ##### SECTION ./tmpl/L3.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### FUNCTION create_pack ##### -->
<para>
</para>
+@pack:
+@SCR:
+@mux_rate:
-<!-- ##### MACRO MPEG2PLAY_WIDTH ##### -->
+<!-- ##### MACRO WHISPER ##### -->
<para>
</para>
-@mp:
-<!-- ##### SECTION ./tmpl/size.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION MoveTo ##### -->
<para>
</para>
+@vid_stream:
+@hp:
+@vp:
+@h:
+@v:
-<!-- ##### SECTION ./tmpl/dct.sgml:Short_Description ##### -->
-
+<!-- ##### SECTION ./tmpl/decoders.sgml:Title ##### -->
+decoders
-<!-- ##### SECTION ./tmpl/stamp.sgml:See_Also ##### -->
+<!-- ##### MACRO GOP_START_CODE ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/getvlc.sgml:See_Also ##### -->
+<!-- ##### MACRO MACROBLOCK_MOTION_FORWARD ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/gdkxvimage.sgml:See_Also ##### -->
+<!-- ##### MACRO VIDEO_RGB16_LE ##### -->
<para>
</para>
-<!-- ##### FUNCTION BellCoreHInterpolateMem ##### -->
+<!-- ##### MACRO MONO ##### -->
<para>
</para>
-@Returns:
-<!-- ##### MACRO T_YUV ##### -->
+<!-- ##### SECTION ./tmpl/stream.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO DFLT_EXT ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_videosink_dga_init ##### -->
+<!-- ##### SECTION ./tmpl/mhead.sgml:See_Also ##### -->
<para>
</para>
-@sink:
-@Returns:
-<!-- ##### SECTION ./tmpl/dga.sgml:See_Also ##### -->
+<!-- ##### MACRO MAX_LENGTH ##### -->
<para>
</para>
-<!-- ##### FUNCTION MakeMem ##### -->
+<!-- ##### MACRO MB_BACKWARD ##### -->
<para>
</para>
-@width:
-@height:
-@Returns:
-<!-- ##### MACRO STREAM_UNDERFLOW ##### -->
+<!-- ##### MACRO QUANT_MATRIX_EXTENSION_ID ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/itype.sgml:Short_Description ##### -->
+<!-- ##### FUNCTION RTjpeg_yuvrgb16 ##### -->
+<para>
+</para>
+@buf:
+@rgb:
-<!-- ##### SECTION ./tmpl/uncouple.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/jdw.sgml:See_Also ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION zeroflush ##### -->
+<!-- ##### STRUCT Mpeg1Meta ##### -->
<para>
</para>
-@vid_stream:
+@packet_length:
+@PES_scrambling_control:
+@PES_priority:
+@data_alignment_indicator:
+@copyright:
+@original_or_copy:
+@PTS_DTS_flags:
+@ESCR_flag:
+@ES_rate_flag:
+@DSM_trick_mode_flag:
+@additional_copy_info_flag:
+@CRC_flag:
+@PES_extension_flag:
+@PES_header_data_length:
+@PTS:
+@DTS:
+@ESCR_base:
+@ESCR_extension:
+@ES_rate:
+@trick_mode_control:
-<!-- ##### FUNCTION stats_print_syncinfo ##### -->
+<!-- ##### MACRO LITTLE_SHORT16 ##### -->
<para>
</para>
-@syncinfo:
-<!-- ##### FUNCTION YUVLoadMem ##### -->
+<!-- ##### FUNCTION audio_decode_init ##### -->
<para>
</para>
+@h:
+@framebytes_arg:
+@reduction_code:
+@transform_code:
+@convert_code:
+@freq_limit:
+@Returns:
-<!-- ##### MACRO EXTENSION_START_CODE ##### -->
+<!-- ##### FUNCTION gst_volume_chain ##### -->
<para>
</para>
+@pad:
+@buf:
-<!-- ##### FUNCTION gst_riff_get_chunk_list ##### -->
+<!-- ##### MACRO L_RATE ##### -->
<para>
</para>
-@riff:
-@Returns:
-<!-- ##### MACRO GTK_OVERLAY_IMAGE_MEM ##### -->
+<!-- ##### FUNCTION gst_mpeg2play_chain ##### -->
<para>
</para>
-@obj:
+@pad:
+@buf:
-<!-- ##### SECTION Pads ##### -->
-<refsect1>
- <title>pads</title>
- <para>
- test
- </para>
-</refsect1>
+<!-- ##### FUNCTION gst_example_new ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/imdct.sgml:Long_Description ##### -->
+@name:
+@Returns:
+
+<!-- ##### FUNCTION AddCompensate ##### -->
<para>
</para>
+@vid_stream:
+@matrix:
+@XIob:
-<!-- ##### MACRO BufferContents ##### -->
+<!-- ##### MACRO BOTTOM_FIELD ##### -->
<para>
</para>
-@vs:
<!-- ##### MACRO P ##### -->
<para>
@@ -306,593 +335,636 @@ bit_allocate
@s:
-<!-- ##### SECTION ./tmpl/marker.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/bitstream.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/parse.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION gst_spectrum_new ##### -->
<para>
</para>
+@name:
+@Returns:
-<!-- ##### MACRO WHEREAMI ##### -->
+<!-- ##### SECTION ./tmpl/marker.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO TOP_FIELD ##### -->
+<!-- ##### MACRO DISP_ID ##### -->
<para>
</para>
-<!-- ##### FUNCTION SetPointerBlock ##### -->
+<!-- ##### FUNCTION output_play ##### -->
<para>
</para>
+@bsi:
+@samples:
+@Returns:
-<!-- ##### MACRO SEQ_END_CODE ##### -->
+<!-- ##### MACRO WORD ##### -->
<para>
</para>
-<!-- ##### FUNCTION CECASVInterpolateMem ##### -->
+<!-- ##### TYPEDEF sint_16 ##### -->
<para>
</para>
-@Returns:
-<!-- ##### MACRO MAX_FLIP_BUFFERS ##### -->
+<!-- ##### FUNCTION RTjpeg_yuvrgb24 ##### -->
<para>
</para>
+@buf:
+@rgb:
-<!-- ##### FUNCTION JVCVInterpolateMem ##### -->
+<!-- ##### MACRO STATUS_VIDEO_TIME_OUT ##### -->
<para>
</para>
-@Returns:
-<!-- ##### SECTION ./tmpl/decoders.sgml:Short_Description ##### -->
+<!-- ##### MACRO PARSE_OK ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION mpeg1encoder_new_encoder ##### -->
+<!-- ##### MACRO SEQUENCE_ERROR_CODE ##### -->
<para>
</para>
-@Returns:
-<!-- ##### FUNCTION gst_parseau_new ##### -->
+<!-- ##### MACRO IFF_LONG ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### SECTION ./tmpl/globals.sgml:Title ##### -->
-globals
+<!-- ##### FUNCTION debug_is_on ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION ReferenceDct ##### -->
+@Returns:
+
+<!-- ##### MACRO SYS_HEADER_SIZE ##### -->
<para>
</para>
-@matrix:
-@newmatrix:
-<!-- ##### MACRO MB_PATTERN ##### -->
+<!-- ##### FUNCTION mem_free ##### -->
<para>
</para>
+@Param1:
-<!-- ##### MACRO DHUFF ##### -->
+<!-- ##### MACRO SYSTEM_START_CODE_MAX ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_volume_new ##### -->
+<!-- ##### SECTION ./tmpl/uncouple.sgml:Long_Description ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### MACRO IC_THREE_EIGHTHS ##### -->
+<!-- ##### SECTION ./tmpl/globals.sgml:Title ##### -->
+globals
+
+
+<!-- ##### MACRO ERROR_UNRECOVERABLE ##### -->
<para>
</para>
-<!-- ##### MACRO SYSTEM_START_CODE_MIN ##### -->
+<!-- ##### MACRO GST_PARSEAVI_REGULAR ##### -->
<para>
</para>
-<!-- ##### MACRO UDSC ##### -->
+<!-- ##### SECTION ./tmpl/uncouple.sgml:Title ##### -->
+uncouple
+
+
+<!-- ##### SECTION ./tmpl/system.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/mpg123.sgml:Long_Description ##### -->
+<!-- ##### MACRO L_QDFACT ##### -->
<para>
</para>
-<!-- ##### MACRO BUFFER_TYPE_VIDEO ##### -->
+<!-- ##### FUNCTION RTjpeg_yuvrgb32 ##### -->
<para>
</para>
+@buf:
+@rgb:
-<!-- ##### MACRO SEEK_SET ##### -->
+<!-- ##### MACRO GST_PARSEWAV_OTHER ##### -->
<para>
</para>
-<!-- ##### FUNCTION mwtell ##### -->
+<!-- ##### SECTION ./tmpl/qtables.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/itype.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO READ_MODE ##### -->
<para>
</para>
-@vid_stream:
-@Returns:
-<!-- ##### FUNCTION mwopen ##### -->
+<!-- ##### FUNCTION bitstream_close ##### -->
<para>
</para>
-@vid_stream:
-@filename:
+@bs:
-<!-- ##### SECTION ./tmpl/jdw.sgml:Long_Description ##### -->
+<!-- ##### TYPEDEF WININT ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/common.sgml:Long_Description ##### -->
+<!-- ##### ARG VCDSrc:offset ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/csize.sgml:Title ##### -->
-csize
-
+<!-- ##### FUNCTION MakeEHUFF ##### -->
+<para>
-<!-- ##### SECTION ./tmpl/mem.sgml:Title ##### -->
-mem
+</para>
+@Returns:
-<!-- ##### FUNCTION dct64 ##### -->
+<!-- ##### TYPEDEF IFFT2[FFT_SIZE/2] ##### -->
<para>
</para>
-@dt:
-@out0:
-@out1:
-@samples:
-<!-- ##### MACRO ERROR_READ ##### -->
+<!-- ##### MACRO NULL_CHAR ##### -->
<para>
</para>
-<!-- ##### MACRO DCTSIZE2 ##### -->
+<!-- ##### SECTION ./tmpl/mhead.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### ARG VCDSrc:bytesperread ##### -->
+<!-- ##### SECTION ./tmpl/ac3.sgml:Title ##### -->
+ac3
+
+
+<!-- ##### SECTION ./tmpl/mpeg2enc.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION UDFReadLB ##### -->
+<!-- ##### SECTION ./tmpl/main.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### TYPEDEF coded_block_pattern_entry ##### -->
<para>
</para>
-@fd:
-@Returns:
-<!-- ##### MACRO ERROR_PARAMETER ##### -->
+<!-- ##### ARG GstSmoothWave:height ##### -->
<para>
</para>
-<!-- ##### MACRO MPEG1MUX_BUFFER_TYPE ##### -->
+<!-- ##### MACRO GRAB_ATTR_COLOR ##### -->
<para>
</para>
-@mb:
-<!-- ##### SECTION ./tmpl/RTjpeg.sgml:Title ##### -->
-RTjpeg
+<!-- ##### FUNCTION gst_parseavi_chain ##### -->
+<para>
+</para>
-<!-- ##### MACRO FSTORE ##### -->
+@pad:
+@buf:
+
+<!-- ##### TYPEDEF sint_32 ##### -->
<para>
</para>
-<!-- ##### MACRO GRAB_ATTR_COLOR ##### -->
+<!-- ##### ARG GstStereo:stereo ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/L3.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION mpeg1mux_buffer_new ##### -->
<para>
</para>
+@type:
+@id:
+@Returns:
+
+<!-- ##### SECTION ./tmpl/musicin.sgml:Short_Description ##### -->
-<!-- ##### SECTION ./tmpl/mpeg2enc.sgml:Title ##### -->
-mpeg2enc
-<!-- ##### MACRO LN_TO_LOG10 ##### -->
+<!-- ##### MACRO PROFILE_422 ##### -->
<para>
</para>
-<!-- ##### FUNCTION gtk_xvimage_new ##### -->
+<!-- ##### ARG Mpeg1Parse:mux_rate ##### -->
<para>
</para>
-@val:
-@Returns:
-<!-- ##### MACRO VSSC_LENGTH ##### -->
+<!-- ##### MACRO MARKER_SCR ##### -->
<para>
</para>
-<!-- ##### MACRO L_BUFFERSIZE ##### -->
+<!-- ##### MACRO STREAMS_VIDEO ##### -->
<para>
</para>
-<!-- ##### MACRO WHISPER ##### -->
+<!-- ##### TYPEDEF DCTtab ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/proto.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/dither.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION mrseek ##### -->
+<!-- ##### MACRO VIDEO_STR_0 ##### -->
<para>
</para>
-@vid_stream:
-@distance:
-<!-- ##### MACRO IFF_ID_MPEG ##### -->
+<!-- ##### FUNCTION ReadPictureHeader ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### SECTION ./tmpl/dvd_udf.sgml:See_Also ##### -->
+<!-- ##### FUNCTION mpg123_bpf_from_header ##### -->
<para>
</para>
+@header:
+@Returns:
-<!-- ##### SECTION ./tmpl/gstriff.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/video.sgml:See_Also ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION rematrix ##### -->
+<!-- ##### MACRO SEQUENCE_DISPLAY_EXTENSION_ID ##### -->
<para>
</para>
-@audblk:
-@coeffs:
-<!-- ##### FUNCTION WritePictureHeader ##### -->
+<!-- ##### FUNCTION mrseek ##### -->
<para>
</para>
@vid_stream:
+@distance:
-<!-- ##### SECTION ./tmpl/buffer.sgml:Short_Description ##### -->
-
+<!-- ##### SECTION ./tmpl/crc.sgml:Title ##### -->
+crc
-<!-- ##### SECTION ./tmpl/bit_allocate.sgml:See_Also ##### -->
+<!-- ##### FUNCTION mpeg2enc_new_picture ##### -->
<para>
</para>
+@vid_stream:
+@inbuf:
+@size:
+@encoder_state:
+@Returns:
-<!-- ##### SECTION ./tmpl/csize.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### ARG VCDSrc:location ##### -->
+<!-- ##### MACRO PROTO_ARGS ##### -->
<para>
</para>
-<!-- ##### TYPEDEF ID[4] ##### -->
+<!-- ##### SECTION ./tmpl/imdct.sgml:Title ##### -->
+imdct
+
+
+<!-- ##### FUNCTION gst_parsewav_chain ##### -->
<para>
</para>
+@pad:
+@buf:
-<!-- ##### MACRO SLICE_MIN_START_CODE ##### -->
+<!-- ##### MACRO PSC_LENGTH ##### -->
<para>
</para>
-<!-- ##### MACRO L_FVAR ##### -->
+<!-- ##### SECTION ./tmpl/mpeg2enc.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO CB_FRACTION ##### -->
+<!-- ##### SECTION ./tmpl/size.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### MACRO DISPLAY_LOCK ##### -->
+<!-- ##### MACRO DVDSRC_BASEOFFSET ##### -->
<para>
</para>
-<!-- ##### MACRO MEM ##### -->
+<!-- ##### MACRO TIMESTAMPS_NO ##### -->
<para>
</para>
-<!-- ##### FUNCTION BellCoreVInterpolateMem ##### -->
+<!-- ##### MACRO GTK_OVERLAY_IMAGE_TYPE ##### -->
<para>
</para>
-@Returns:
+@obj:
-<!-- ##### FUNCTION CBPEncodeAC ##### -->
+<!-- ##### MACRO SEEK_SET ##### -->
<para>
</para>
-@vid_stream:
-@index:
-@matrix:
-<!-- ##### MACRO GST_PARSEWAV_DATA ##### -->
+<!-- ##### FUNCTION gst_mpeg_play_new ##### -->
<para>
</para>
+@name:
+@Returns:
-<!-- ##### MACRO GST_AVIENCODER_MAX_VIDEO_PADS ##### -->
+<!-- ##### FUNCTION gst_mpegaudio_new ##### -->
<para>
</para>
+@name:
+@Returns:
-<!-- ##### FUNCTION imdct ##### -->
+<!-- ##### FUNCTION mwtell ##### -->
<para>
</para>
-@bsi:
-@audblk_t:
-@coeffs:
-@samples:
+@vid_stream:
+@Returns:
-<!-- ##### SECTION ./tmpl/tables.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/csize.sgml:Short_Description ##### -->
-<!-- ##### TYPEDEF sint_8 ##### -->
+<!-- ##### MACRO NEW_PICTURE ##### -->
<para>
</para>
-<!-- ##### MACRO FLOAT ##### -->
+<!-- ##### MACRO DefaultDct ##### -->
<para>
</para>
+@vs:
+@o:
+@i:
-<!-- ##### FUNCTION MPEGIntraQuantize ##### -->
+<!-- ##### FUNCTION gst_parseavi_get_video_srcpad ##### -->
<para>
</para>
-@matrix:
-@qptr:
-@qfact:
+@parseavi:
+@pad_nr:
+@strf:
+@Returns:
-<!-- ##### FUNCTION audio_decode8_info ##### -->
+<!-- ##### SECTION ./tmpl/jdw.sgml:Long_Description ##### -->
<para>
</para>
-@info:
-<!-- ##### MACRO IFF_ID_SSND ##### -->
+<!-- ##### MACRO L_FVAR ##### -->
<para>
</para>
-<!-- ##### MACRO IQUANT_SCALE ##### -->
+<!-- ##### FUNCTION get_number_of_input_bytes ##### -->
<para>
</para>
+@enc:
+@Returns:
-<!-- ##### SECTION ./tmpl/bitstream.sgml:See_Also ##### -->
+<!-- ##### MACRO STDC_HEADERS ##### -->
<para>
</para>
-<!-- ##### FUNCTION MakeStat ##### -->
+<!-- ##### SECTION ./tmpl/gdkxvimage.sgml:Long_Description ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### MACRO STATUS_AUDIO_TIME_OUT ##### -->
+<!-- ##### FUNCTION ReadMBHeader ##### -->
<para>
</para>
+@vid_stream:
+@Returns:
-<!-- ##### MACRO L_MTYPE ##### -->
+<!-- ##### FUNCTION JVCHInterpolateMem ##### -->
<para>
</para>
+@Returns:
-<!-- ##### SECTION ./tmpl/tableawd.sgml:Long_Description ##### -->
+<!-- ##### MACRO ERRC_LENGTH ##### -->
<para>
</para>
-<!-- ##### MACRO SEQUENCE_ERROR_CODE ##### -->
+<!-- ##### ARG GstV4lSrc:bright ##### -->
<para>
</para>
-<!-- ##### MACRO FADE_STARS ##### -->
+<!-- ##### MACRO sputc ##### -->
<para>
</para>
+@b:
-<!-- ##### SECTION ./tmpl/ring_buffer.sgml:Long_Description ##### -->
+<!-- ##### MACRO PI4 ##### -->
<para>
</para>
-<!-- ##### FUNCTION ReadPictureHeader ##### -->
+<!-- ##### MACRO MAX_FLIP_BUFFERS ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### MACRO SYS_HEADER_SIZE ##### -->
+<!-- ##### SECTION ./tmpl/RTjpeg.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_jpegdec_chain ##### -->
+<!-- ##### MACRO HBLKSIZE ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### SECTION ./tmpl/putbits.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION rb_end_write ##### -->
<para>
</para>
-<!-- ##### MACRO ERROR_MEMORY ##### -->
+<!-- ##### FUNCTION EncodeAC ##### -->
<para>
</para>
+@vid_stream:
+@index:
+@matrix:
-<!-- ##### FUNCTION ClearMem ##### -->
+<!-- ##### FUNCTION ReferenceIDct ##### -->
<para>
</para>
-@m1:
+@matrix:
+@newmatrix:
-<!-- ##### FUNCTION CopyBlock ##### -->
+<!-- ##### MACRO GOPSC ##### -->
<para>
</para>
-<!-- ##### MACRO LXMIN ##### -->
+<!-- ##### MACRO NEW_DATA ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/output.sgml:Short_Description ##### -->
+<!-- ##### ARG GstMpeg2play:frames_per_second ##### -->
+<para>
+</para>
-<!-- ##### MACRO EHUFF ##### -->
+<!-- ##### MACRO MPEGTABENV ##### -->
<para>
</para>
-<!-- ##### MACRO PANSCAN_ID ##### -->
+<!-- ##### MACRO SC_NONE ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_mpegaudio_new ##### -->
+<!-- ##### FUNCTION gst_vumeter_new ##### -->
<para>
</para>
@@ -900,2450 +972,2544 @@ mpeg2enc
@name:
@Returns:
-<!-- ##### FUNCTION WriteStuff ##### -->
+<!-- ##### FUNCTION mpeg2enc_new_encoder ##### -->
<para>
</para>
-@vid_stream:
+@Returns:
-<!-- ##### MACRO ERROR_WRITE ##### -->
+<!-- ##### MACRO FRAME_TYPE_IFRAME ##### -->
<para>
</para>
-<!-- ##### FUNCTION decode_sanity_check ##### -->
+<!-- ##### FUNCTION mpg123_get_songlen ##### -->
<para>
</para>
+@fr:
+@no:
+@Returns:
-<!-- ##### MACRO MARKER_PTS ##### -->
+<!-- ##### MACRO sputv ##### -->
<para>
</para>
-<!-- ##### MACRO LITTLE_ENDIAN_ARCHITECTURE ##### -->
+<!-- ##### SECTION ./tmpl/acconfig.sgml:Title ##### -->
+acconfig
+
+
+<!-- ##### ARG System_Encode:video ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/debug.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/output.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION aiff_seek_to_sound_data ##### -->
+<!-- ##### MACRO ERROR ##### -->
<para>
</para>
-@Param1:
-@Returns:
-<!-- ##### ARG GstSpindentity:control ##### -->
+<!-- ##### SECTION ./tmpl/mpg123.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### MACRO DCT_COEFF_FIRST ##### -->
+<!-- ##### SECTION ./tmpl/system.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO GST_PARSEWAV_CHUNK_DATA ##### -->
+<!-- ##### SECTION ./tmpl/getvlc.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpg123_synth_1to1_mono ##### -->
+<!-- ##### MACRO MACRO_BLOCK_ESCAPE ##### -->
<para>
</para>
-@fr:
-@bandPtr:
-@samples:
-@pnt:
-@Returns:
-<!-- ##### MACRO FRAME ##### -->
+<!-- ##### SECTION ./tmpl/globals.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### MACRO MAX_U_32_NUM ##### -->
+<!-- ##### MACRO SLICE_START_CODE_MIN ##### -->
<para>
</para>
-<!-- ##### MACRO T_TGA ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gdkxvimage.sgml:Short_Description ##### -->
-</para>
-<!-- ##### FUNCTION mpeg1mux_buffer_queue ##### -->
+<!-- ##### MACRO TRAP ##### -->
<para>
</para>
-@mb:
-@buf:
+@txt:
-<!-- ##### SECTION ./tmpl/size.sgml:Short_Description ##### -->
+<!-- ##### ARG GstWinDec:bitdepth ##### -->
+<para>
+</para>
-<!-- ##### TYPEDEF DFFT[FFT_SIZE] ##### -->
+<!-- ##### FUNCTION Help ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### FUNCTION mpeg1mux_buffer_new ##### -->
+<!-- ##### FUNCTION dvdsrc_get_type ##### -->
<para>
</para>
-@type:
-@id:
@Returns:
-<!-- ##### MACRO MB_QUANT ##### -->
+<!-- ##### TYPEDEF UINT16 ##### -->
<para>
</para>
-<!-- ##### FUNCTION CBPDecodeAC ##### -->
+<!-- ##### MACRO VIDEO_RGB08 ##### -->
<para>
</para>
-@vid_stream:
-@index:
-@matrix:
-<!-- ##### MACRO VIDEO_LUT2 ##### -->
+<!-- ##### MACRO GST_PARSEAVI_STRL ##### -->
<para>
</para>
-<!-- ##### FUNCTION BoundQuantizeMatrix ##### -->
+<!-- ##### MACRO STAT ##### -->
<para>
</para>
-@matrix:
-<!-- ##### FUNCTION gdk_xvimage_put ##### -->
+<!-- ##### FUNCTION MPEGNonIntraQuantize ##### -->
<para>
</para>
-@window:
-@gc:
-@image:
-@xsrc:
-@ysrc:
-@wsrc:
-@hsrc:
-@xdest:
-@ydest:
-@wdest:
-@hdest:
+@matrix:
+@qptr:
+@qfact:
-<!-- ##### MACRO VIDEO_LUT4 ##### -->
+<!-- ##### MACRO BufferContents ##### -->
<para>
</para>
+@vs:
-<!-- ##### MACRO IT_QCIF ##### -->
+<!-- ##### MACRO DECODE_MAGIC_NUMBER ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/core.sgml:Long_Description ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/util.sgml:Short_Description ##### -->
-</para>
-<!-- ##### MACRO UNPACK_CPL ##### -->
+<!-- ##### ARG VCDSrc:bytesperread ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_median_new ##### -->
+<!-- ##### FUNCTION head_info ##### -->
<para>
</para>
-@name:
+@buf:
+@n:
+@h:
@Returns:
-<!-- ##### FUNCTION rb_end_read ##### -->
+<!-- ##### MACRO IN_SEQ_PARSE ##### -->
<para>
</para>
-<!-- ##### FUNCTION initme ##### -->
+<!-- ##### MACRO SCREAM ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### SECTION ./tmpl/htable.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/mhead.sgml:Short_Description ##### -->
-<!-- ##### FUNCTION rb_init ##### -->
+<!-- ##### FUNCTION MPEGIntraIQuantize ##### -->
<para>
</para>
+@matrix:
+@qptr:
+@qfact:
-<!-- ##### FUNCTION gst_aviencoder_make_video_header ##### -->
+<!-- ##### MACRO MARKER_DTS ##### -->
<para>
</para>
-@codec:
-@width:
-@height:
-@planes:
-@bit_cnt:
-@Returns:
-<!-- ##### MACRO VIDEO_RGB16_LE ##### -->
+<!-- ##### MACRO TIMESTAMPS_PTS ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_mpegaudio_chain ##### -->
+<!-- ##### MACRO GST_PARSEAVI_STRH_VIDS ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### MACRO ERROR ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/exponent.sgml:Title ##### -->
+exponent
-</para>
+<!-- ##### SECTION ./tmpl/getvlc.sgml:Title ##### -->
+getvlc
-<!-- ##### MACRO SYSTEM_START_CODE ##### -->
+
+<!-- ##### TYPEDEF D9[9] ##### -->
<para>
</para>
-<!-- ##### FUNCTION parser ##### -->
+<!-- ##### FUNCTION gst_riff_next_buffer ##### -->
<para>
</para>
+@riff:
+@buf:
+@off:
+@Returns:
-<!-- ##### MACRO MakeStructure ##### -->
+<!-- ##### ARG GstVuMeter:volumeptr_left ##### -->
<para>
</para>
-@named_st:
-<!-- ##### SECTION ./tmpl/mpg123.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/grab.sgml:Short_Description ##### -->
-<!-- ##### SECTION ./tmpl/jdw.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/gtkoverlayimage.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO GST_PARSEWAV_OTHER ##### -->
+<!-- ##### MACRO MACROBLOCK_LAYER ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpg123_hsstell ##### -->
+<!-- ##### FUNCTION SmpFrqIndex ##### -->
<para>
</para>
+@Param1:
@Returns:
-<!-- ##### FUNCTION HPFastBME ##### -->
+<!-- ##### MACRO POWERNORM ##### -->
<para>
</para>
-@vid_stream:
-@rx:
-@ry:
-@rm:
-@cx:
-@cy:
-@cm:
-@ox:
-@oy:
-<!-- ##### MACRO SEQUENCE_HEADER_CODE ##### -->
+<!-- ##### FUNCTION ReferenceDct ##### -->
<para>
</para>
+@matrix:
+@newmatrix:
-<!-- ##### TYPEDEF IFFT[FFT_SIZE] ##### -->
+<!-- ##### MACRO IFF_ID_MPEG ##### -->
<para>
</para>
-<!-- ##### FUNCTION SM0HInterpolateMem ##### -->
+<!-- ##### MACRO IFF_ID_FORM ##### -->
<para>
</para>
-@Returns:
-
-<!-- ##### SECTION ./tmpl/l2tables.sgml:Title ##### -->
-l2tables
-
-<!-- ##### MACRO T_PPM ##### -->
+<!-- ##### MACRO UBOUND ##### -->
<para>
</para>
+@index:
+@value:
-<!-- ##### FUNCTION audio_decode8_init ##### -->
+<!-- ##### FUNCTION gst_jpeg_new ##### -->
<para>
</para>
-@h:
-@framebytes_arg:
-@reduction_code:
-@transform_code:
-@convert_code:
-@freq_limit:
+@name:
@Returns:
-<!-- ##### SECTION ./tmpl/grab.sgml:Title ##### -->
-grab
-
-
-<!-- ##### FUNCTION WriteMBHeader ##### -->
+<!-- ##### ARG Ac3Parse:skip ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### FUNCTION ac3dec_imdct_init ##### -->
+<!-- ##### MACRO SYSTEM_START_CODE ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_spectrum_new ##### -->
+<!-- ##### SECTION ./tmpl/exponent.sgml:See_Also ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### FUNCTION gst_mpg123_chain ##### -->
+<!-- ##### SECTION ./tmpl/itype.sgml:See_Also ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### FUNCTION RTjpeg_init_Q ##### -->
+<!-- ##### FUNCTION mputb ##### -->
<para>
</para>
-@Q:
+@vid_stream:
+@b:
-<!-- ##### MACRO CHROMA420 ##### -->
+<!-- ##### TYPEDEF VLCtab ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/bitstream.sgml:Title ##### -->
-bitstream
-
-
-<!-- ##### MACRO CHROMA422 ##### -->
+<!-- ##### STRUCT Mpeg1MuxTimecode ##### -->
<para>
</para>
+@length:
+@original_length:
+@frame_type:
+@PTS:
+@DTS:
-<!-- ##### SECTION ./tmpl/exponent.sgml:Title ##### -->
-exponent
+<!-- ##### MACRO VSSC ##### -->
+<para>
+</para>
-<!-- ##### MACRO GTK_OVERLAY_IMAGE_BYTE_ORDER ##### -->
+
+<!-- ##### TYPEDEF UINT32 ##### -->
<para>
</para>
-@obj:
-<!-- ##### TYPEDEF UINT8 ##### -->
+<!-- ##### MACRO sropen ##### -->
<para>
</para>
-<!-- ##### MACRO PICTURE_DISPLAY_EXTENSION_ID ##### -->
+<!-- ##### MACRO EXTENSION_START_CODE ##### -->
<para>
</para>
-<!-- ##### FUNCTION gtk_overlay_image_resize ##### -->
+<!-- ##### FUNCTION EncodeDC ##### -->
<para>
</para>
-@widget:
-@width:
-@height:
+@vid_stream:
+@coef:
+@LocalEHuff:
-<!-- ##### FUNCTION putbits_new_empty_buffer ##### -->
+<!-- ##### MACRO VIDEO_RGB24 ##### -->
<para>
</para>
-@pb:
-@len:
-<!-- ##### MACRO GTK_OVERLAY_IMAGE_DEPTH ##### -->
+<!-- ##### ARG Audioscale:frequency ##### -->
<para>
</para>
-@obj:
-<!-- ##### FUNCTION mpeg1encoder_new_picture ##### -->
+<!-- ##### SECTION ./tmpl/config.sgml:Title ##### -->
+config
+
+
+<!-- ##### FUNCTION RTjpeg_compress8 ##### -->
<para>
</para>
-@vid_stream:
-@data:
-@size:
-@state:
+@sp:
+@bp:
@Returns:
-<!-- ##### MACRO VIDEO_STR_0 ##### -->
+<!-- ##### FUNCTION mputv ##### -->
<para>
</para>
+@vid_stream:
+@n:
+@b:
-<!-- ##### MACRO L_IDBD ##### -->
+<!-- ##### MACRO T_X11HIQ ##### -->
<para>
</para>
-<!-- ##### FUNCTION debug_is_on ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/vlc.sgml:Short_Description ##### -->
-</para>
-@Returns:
-<!-- ##### MACRO CLOCKS ##### -->
+<!-- ##### FUNCTION gdk_xvimage_destroy ##### -->
<para>
</para>
+@image:
-<!-- ##### FUNCTION mem_free ##### -->
+<!-- ##### MACRO MC_FRAME ##### -->
<para>
</para>
-@Param1:
-<!-- ##### SECTION ./tmpl/itype.sgml:Long_Description ##### -->
+<!-- ##### MACRO UNIX ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/uncouple.sgml:Long_Description ##### -->
+<!-- ##### MACRO VIDEO_YUV422 ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/encoder.sgml:Title ##### -->
-encoder
+<!-- ##### MACRO DecodeDCTCoeff ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION XHInterpolateMem ##### -->
+@gb:
+@dct_coeff_tbl:
+@run:
+@level:
+
+<!-- ##### MACRO inline ##### -->
<para>
</para>
-@Returns:
-<!-- ##### FUNCTION readalign ##### -->
+<!-- ##### FUNCTION ReadMBSHeader ##### -->
<para>
</para>
@vid_stream:
-<!-- ##### FUNCTION mpg123_decode_frame ##### -->
+<!-- ##### FUNCTION gst_cobin_new ##### -->
<para>
</para>
-@de:
-@inbuf:
-@inlen:
-@outbuf:
-@outlen:
+@name:
@Returns:
-<!-- ##### MACRO PSC_LENGTH ##### -->
+<!-- ##### FUNCTION gst_win_new ##### -->
<para>
</para>
+@name:
+@Returns:
-<!-- ##### MACRO SC_SNR ##### -->
+<!-- ##### FUNCTION bitstream_done ##### -->
<para>
</para>
+@bs:
+@Returns:
-<!-- ##### MACRO GTK_OVERLAY_IMAGE_WIDTH ##### -->
+<!-- ##### MACRO L_MTYPE ##### -->
<para>
</para>
-@obj:
-<!-- ##### TYPEDEF DFFT2[FFT_SIZE/2] ##### -->
+<!-- ##### FUNCTION JVCVInterpolateMem ##### -->
<para>
</para>
+@Returns:
-<!-- ##### TYPEDEF WINCOEF ##### -->
+<!-- ##### ARG GstVolume:active ##### -->
<para>
</para>
-<!-- ##### MACRO MACRO_BLOCK_ESCAPE ##### -->
+<!-- ##### FUNCTION BoundQuantizeMatrix ##### -->
<para>
</para>
+@matrix:
-<!-- ##### SECTION ./tmpl/mpeg2dec.sgml:Title ##### -->
-mpeg2dec
-
-
-<!-- ##### FUNCTION RTjpeg_yuvrgb16 ##### -->
+<!-- ##### MACRO VIDEO_RGB32 ##### -->
<para>
</para>
-@buf:
-@rgb:
-<!-- ##### SECTION ./tmpl/param.sgml:Title ##### -->
-param
+<!-- ##### TYPEDEF uint_8 ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/dither.sgml:Long_Description ##### -->
+
+<!-- ##### MACRO IFF_ID_AIFF ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_parseavi_winloader_handle ##### -->
+<!-- ##### FUNCTION dprintf ##### -->
<para>
</para>
-@parseavi:
-@buf:
+@fmt:
+@Varargs:
-<!-- ##### MACRO CONST_BITS ##### -->
+<!-- ##### SECTION ./tmpl/dct.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION gtk_xvimage_redraw ##### -->
+<!-- ##### MACRO MPEG2_SYSHEAD ##### -->
<para>
</para>
-@widget:
-<!-- ##### MACRO ERROR_HUFFMAN_ENCODE ##### -->
+<!-- ##### FUNCTION js_bound ##### -->
<para>
</para>
+@Varargs:
+@Varargs:
+@Returns:
-<!-- ##### SECTION ./tmpl/system.sgml:Short_Description ##### -->
+<!-- ##### MACRO M_DECODER ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/huffman.sgml:Short_Description ##### -->
+<!-- ##### MACRO EXP_D15 ##### -->
+<para>
+</para>
-<!-- ##### MACRO STAT ##### -->
+<!-- ##### MACRO SYSTEM_START_CODE_MIN ##### -->
<para>
</para>
-<!-- ##### MACRO FRAME_TYPE_AUDIO ##### -->
+<!-- ##### MACRO MS_DOS ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/gdkxvimage.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/getvlc.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_mpeg2enc_chain ##### -->
+<!-- ##### TYPEDEF INT8 ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### SECTION ./tmpl/parse.sgml:Title ##### -->
-parse
+<!-- ##### SECTION ./tmpl/exponent.sgml:Short_Description ##### -->
-<!-- ##### MACRO NOISY_MIN_MNR ##### -->
+
+<!-- ##### MACRO MACRO_BLOCK_STUFFING ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/dga.sgml:Short_Description ##### -->
+<!-- ##### FUNCTION DecodeAC ##### -->
+<para>
+</para>
+@vid_stream:
+@index:
+@matrix:
-<!-- ##### MACRO IC_ONE_EIGHTH ##### -->
+<!-- ##### MACRO NUM_ATTR ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_synaesthesia_new ##### -->
+<!-- ##### FUNCTION WriteStuff ##### -->
<para>
</para>
-@name:
-@Returns:
+@vid_stream:
-<!-- ##### MACRO SPATSCAL_ID ##### -->
+<!-- ##### FUNCTION mpg123_init_decode_tables ##### -->
<para>
</para>
+@de:
+@scale:
-<!-- ##### FUNCTION VerifyFiles ##### -->
+<!-- ##### MACRO MPG_MD_MONO ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### FUNCTION decode_sanity_check_init ##### -->
+<!-- ##### MACRO GOP_LENGTH ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_mpeg_play_chain ##### -->
+<!-- ##### MACRO T_SIF ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### SECTION ./tmpl/util.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/stream.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### MACRO DecodeDCTDCSizeLum ##### -->
+<!-- ##### MACRO GST_PARSEWAV_UNKNOWN ##### -->
<para>
</para>
-@gb:
-@macro_val:
-<!-- ##### FUNCTION RTjpeg_yuvrgb24 ##### -->
+<!-- ##### SECTION ./tmpl/system.sgml:Title ##### -->
+system
+
+
+<!-- ##### MACRO UNPACK_FBW ##### -->
<para>
</para>
-@buf:
-@rgb:
-<!-- ##### MACRO VIDEO_STREAMS ##### -->
+<!-- ##### STRUCT Mpeg2Meta ##### -->
<para>
</para>
+@packet_length:
+@PES_scrambling_control:
+@PES_priority:
+@data_alignment_indicator:
+@copyright:
+@original_or_copy:
+@PTS_DTS_flags:
+@ESCR_flag:
+@ES_rate_flag:
+@DSM_trick_mode_flag:
+@additional_copy_info_flag:
+@CRC_flag:
+@PES_extension_flag:
+@PES_header_data_length:
+@PTS:
+@DTS:
+@ESCR_base:
+@ESCR_extension:
+@ES_rate:
+@trick_mode_control:
+
+<!-- ##### FUNCTION mpeg1mux_buffer_shrink ##### -->
+<para>
-<!-- ##### SECTION ./tmpl/stats.sgml:Title ##### -->
-stats
+</para>
+@mb:
+@size:
-<!-- ##### MACRO CHROMA444 ##### -->
+<!-- ##### FUNCTION InterpolativeBME ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### MACRO DecodeMBTypeB ##### -->
+<!-- ##### MACRO SC_TEMP ##### -->
<para>
</para>
-@gb:
-@quant:
-@motion_fwd:
-@motion_bwd:
-@pat:
-@intra:
-<!-- ##### SECTION ./tmpl/gtkoverlayimage.sgml:See_Also ##### -->
+<!-- ##### FUNCTION ac3dec_imdct_init ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/globals.sgml:Short_Description ##### -->
+<!-- ##### FUNCTION initparser ##### -->
+<para>
+</para>
-<!-- ##### MACRO NUM_MASK ##### -->
+<!-- ##### ARG GstV4lSrc:mode ##### -->
<para>
</para>
-<!-- ##### MACRO ERROR_INIT_FILE ##### -->
+<!-- ##### MACRO EXP_D25 ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/getvlc.sgml:Short_Description ##### -->
+<!-- ##### MACRO GST_AVIENCODER_MAX_VIDEO_PADS ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/stamp.sgml:Short_Description ##### -->
+<!-- ##### FUNCTION gst_aviencoder_new ##### -->
+<para>
+</para>
+@name:
+@Returns:
-<!-- ##### MACRO DecodeMBTypeI ##### -->
+<!-- ##### FUNCTION read_absthr ##### -->
<para>
</para>
-@gb:
-@quant:
-@motion_fwd:
-@motion_bwd:
-@pat:
-@intra:
+@Param1:
+@Varargs:
-<!-- ##### FUNCTION SM0VDecimateMem ##### -->
+<!-- ##### FUNCTION Integer2TimeCode ##### -->
<para>
</para>
+@vid_stream:
+@fnum:
@Returns:
-<!-- ##### MACRO M_DECODER ##### -->
+<!-- ##### SECTION ./tmpl/debug.sgml:Title ##### -->
+debug
+
+
+<!-- ##### TYPEDEF motion_vectors_entry ##### -->
<para>
</para>
-<!-- ##### MACRO BIG_ENDIAN_ARCHITECTURE ##### -->
+<!-- ##### SECTION ./tmpl/prototypes.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### STRUCT GstRiffChunk ##### -->
<para>
</para>
+@offset:
+@id:
+@size:
-<!-- ##### MACRO FUTURE_LOCK ##### -->
+<!-- ##### MACRO STATUS_AUDIO_TIME_OUT ##### -->
<para>
</para>
-<!-- ##### MACRO DecodeMBTypeP ##### -->
+<!-- ##### MACRO DVDSRC ##### -->
<para>
</para>
-@gb:
-@quant:
-@motion_fwd:
-@motion_bwd:
-@pat:
-@intra:
+@obj:
-<!-- ##### MACRO PACK_START_CODE ##### -->
+<!-- ##### FUNCTION putbits_new_empty_buffer ##### -->
<para>
</para>
+@pb:
+@len:
-<!-- ##### MACRO DVDSRC_BASEOFFSET ##### -->
+<!-- ##### SECTION ./tmpl/htable.sgml:Title ##### -->
+htable
+
+
+<!-- ##### FUNCTION RTjpeg_decompress8 ##### -->
<para>
</para>
+@sp:
+@bp:
-<!-- ##### SECTION ./tmpl/htable.sgml:Long_Description ##### -->
+<!-- ##### MACRO ERROR_MARKER_STRUCTURE ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_stereo_new ##### -->
+<!-- ##### FUNCTION JP0HDecimateMem ##### -->
<para>
</para>
-@name:
@Returns:
-<!-- ##### MACRO MPEG2PLAY_HEIGHT ##### -->
+<!-- ##### MACRO ISO_END_CODE ##### -->
<para>
</para>
-@mp:
-<!-- ##### MACRO IFF_ID_COMM ##### -->
+<!-- ##### MACRO MB_FORWARD ##### -->
<para>
</para>
-<!-- ##### MACRO MB_BACKWARD ##### -->
+<!-- ##### FUNCTION ReadVSHeader ##### -->
<para>
</para>
+@vid_stream:
+@Returns:
-<!-- ##### FUNCTION parse_audblk ##### -->
+<!-- ##### SECTION ./tmpl/bitstream.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/acconfig.sgml:Long_Description ##### -->
<para>
</para>
-@bsi:
-@audblk:
-@gb:
-<!-- ##### FUNCTION RTjpeg_yuvrgb32 ##### -->
+<!-- ##### MACRO SYNA_SIZE ##### -->
<para>
</para>
-@buf:
-@rgb:
-<!-- ##### MACRO ESCAPE ##### -->
+<!-- ##### FUNCTION CopyBlock ##### -->
<para>
</para>
-<!-- ##### MACRO L_BD ##### -->
+<!-- ##### MACRO GRAB_ATTR_VOLUME ##### -->
<para>
</para>
-<!-- ##### MACRO srtell ##### -->
+<!-- ##### MACRO SBLIMIT ##### -->
<para>
</para>
-<!-- ##### MACRO sropen ##### -->
+<!-- ##### MACRO STATUS_AUDIO_END ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/prototypes.sgml:See_Also ##### -->
+<!-- ##### MACRO InBounds ##### -->
<para>
</para>
+@var:
+@lo:
+@hi:
+@str:
+
+<!-- ##### SECTION ./tmpl/musicin.sgml:Title ##### -->
+musicin
+
-<!-- ##### FUNCTION InterpolativeBME ##### -->
+<!-- ##### FUNCTION BruteMotionEstimation ##### -->
<para>
</para>
@vid_stream:
+@pmem:
+@fmem:
-<!-- ##### SECTION ./tmpl/rematrix.sgml:Long_Description ##### -->
+<!-- ##### MACRO PICTURE_LAYER ##### -->
<para>
</para>
-<!-- ##### MACRO UNIX ##### -->
+<!-- ##### FUNCTION BellCoreHInterpolateMem ##### -->
<para>
</para>
+@Returns:
-<!-- ##### MACRO MPG_MD_STEREO ##### -->
+<!-- ##### MACRO MakeStructure ##### -->
<para>
</para>
+@named_st:
-<!-- ##### MACRO TABLES_PATH ##### -->
+<!-- ##### MACRO DecodeCBP ##### -->
<para>
</para>
+@gb:
+@coded_bp:
-<!-- ##### FUNCTION Integer2TimeCode ##### -->
+<!-- ##### MACRO L_SQUANT ##### -->
<para>
</para>
-@vid_stream:
-@fnum:
-@Returns:
-<!-- ##### FUNCTION SM0VInterpolateMem ##### -->
+<!-- ##### TYPEDEF D10[10] ##### -->
<para>
</para>
-@Returns:
-<!-- ##### FUNCTION Encode ##### -->
+<!-- ##### SIGNAL GstVideoSink::frame-displayed ##### -->
<para>
</para>
-@vid_stream:
-@val:
-@huff:
-@Returns:
+@gstvideosink: the object which received the signal.
+@arg1:
-<!-- ##### MACRO PADDING_STR ##### -->
+<!-- ##### MACRO SLICE_MIN_START_CODE ##### -->
<para>
</para>
-<!-- ##### MACRO MAXIMUM_FGROUP ##### -->
+<!-- ##### FUNCTION putbits_new_buffer ##### -->
<para>
</para>
+@pb:
+@buffer:
+@len:
-<!-- ##### SECTION ./tmpl/util.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION HPFastBME ##### -->
<para>
</para>
+@vid_stream:
+@rx:
+@ry:
+@rm:
+@cx:
+@cy:
+@cm:
+@ox:
+@oy:
-<!-- ##### FUNCTION RTjpeg_decompress8 ##### -->
+<!-- ##### TYPEDEF BLOCK ##### -->
<para>
</para>
-@sp:
-@bp:
-<!-- ##### MACRO MACROBLOCK_LAYER ##### -->
+<!-- ##### MACRO GTK_OVERLAY_IMAGE_MEM ##### -->
<para>
</para>
+@obj:
-<!-- ##### MACRO MACROBLOCK_PATTERN ##### -->
+<!-- ##### FUNCTION Decode ##### -->
<para>
</para>
+@vid_stream:
+@huff:
+@Returns:
-<!-- ##### FUNCTION PrintDhuff ##### -->
+<!-- ##### FUNCTION parse_auxdata ##### -->
<para>
</para>
-@huff:
+@syncinfo:
+@gb:
-<!-- ##### MACRO ISO_END_CODE ##### -->
+<!-- ##### MACRO FADE_HEAT ##### -->
<para>
</para>
-<!-- ##### FUNCTION BoundIntegerMatrix ##### -->
+<!-- ##### SECTION ./tmpl/dither.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### FUNCTION parse_bsi ##### -->
<para>
</para>
-@matrix:
+@bsi:
+@gb:
-<!-- ##### MACRO FRAME_TYPE_IFRAME ##### -->
+<!-- ##### SECTION ./tmpl/tableawd.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO WHEREAMI ##### -->
<para>
</para>
-<!-- ##### MACRO PROTO_ARGS ##### -->
+<!-- ##### ARG Mpeg2Parse:mux_rate ##### -->
<para>
</para>
-<!-- ##### MACRO CODING_ID ##### -->
+<!-- ##### MACRO VERSION ##### -->
<para>
</para>
-<!-- ##### MACRO GTK_OVERLAY_IMAGE_HEIGHT ##### -->
+<!-- ##### MACRO EXP_D45 ##### -->
<para>
</para>
-@obj:
-<!-- ##### FUNCTION MpegDecodeSequence ##### -->
+<!-- ##### SECTION ./tmpl/util.sgml:See_Also ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### MACRO MPG_MD_MONO ##### -->
+<!-- ##### MACRO L_FDBD ##### -->
<para>
</para>
-<!-- ##### MACRO ILBOUND ##### -->
+<!-- ##### FUNCTION create_sys_header ##### -->
<para>
</para>
-@ptr:
-@index:
-@value:
-
-<!-- ##### SECTION ./tmpl/gtkxvimage.sgml:Short_Description ##### -->
+@sys_header:
+@rate_bound:
+@audio_bound:
+@fixed:
+@CSPS:
+@audio_lock:
+@video_lock:
+@video_bound:
+@stream1:
+@buffer1_scale:
+@buffer1_size:
+@stream2:
+@buffer2_scale:
+@buffer2_size:
+@which_streams:
+<!-- ##### SECTION ./tmpl/mantissa.sgml:Title ##### -->
+mantissa
-<!-- ##### FUNCTION mpeg2play_new_decoder ##### -->
+<!-- ##### FUNCTION DecodeDC ##### -->
<para>
</para>
+@vid_stream:
+@LocalDHuff:
@Returns:
-<!-- ##### SECTION ./tmpl/l2tables.sgml:Short_Description ##### -->
+<!-- ##### MACRO DC_THREE_EIGHTHS ##### -->
+<para>
+</para>
-<!-- ##### MACRO MPG_MD_DUAL_CHANNEL ##### -->
+<!-- ##### SECTION ./tmpl/video.sgml:Title ##### -->
+video
+
+
+<!-- ##### SECTION ./tmpl/proto.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpegaudio_encode_frame ##### -->
+<!-- ##### FUNCTION TransposeMatrix ##### -->
<para>
</para>
-@enc:
-@inbuf:
-@outbuf:
-@outlen:
-@Returns:
+@matrix:
+@newmatrix:
-<!-- ##### FUNCTION mpg123_synth_ntom_set_step ##### -->
+<!-- ##### SECTION ./tmpl/core.sgml:Long_Description ##### -->
<para>
</para>
-@Param1:
-@Param2:
-<!-- ##### FUNCTION XVInterpolateMem ##### -->
+<!-- ##### MACRO PACK_START ##### -->
<para>
</para>
-@Returns:
-<!-- ##### FUNCTION cvt_to_wave_init ##### -->
+<!-- ##### MACRO GST_AVIENCODER_INITIAL ##### -->
<para>
</para>
-@Varargs:
-<!-- ##### FUNCTION ReadFS ##### -->
+<!-- ##### SECTION ./tmpl/decoders.sgml:Long_Description ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### MACRO sgetb ##### -->
+<!-- ##### MACRO CODING_ID ##### -->
<para>
</para>
-<!-- ##### FUNCTION WriteBitAlloc ##### -->
+<!-- ##### MACRO FUTURE_LOCK ##### -->
<para>
</para>
-<!-- ##### MACRO sgetc ##### -->
+<!-- ##### TYPEDEF DCTELEM ##### -->
<para>
</para>
-<!-- ##### TYPEDEF WININT ##### -->
+<!-- ##### MACRO SLICE_LAYER ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/ac3.sgml:Title ##### -->
-ac3
+<!-- ##### SECTION ./tmpl/gtkoverlayimage.sgml:Short_Description ##### -->
-<!-- ##### SECTION ./tmpl/output.sgml:See_Also ##### -->
-<para>
-</para>
+<!-- ##### SECTION ./tmpl/gstriff.sgml:Short_Description ##### -->
-<!-- ##### MACRO DC_ONE_EIGHTH ##### -->
+
+<!-- ##### FUNCTION crc_init ##### -->
<para>
</para>
-<!-- ##### MACRO DFLT_PSY ##### -->
+<!-- ##### MACRO P_DCINTRA ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/ac3.sgml:See_Also ##### -->
+<!-- ##### FUNCTION gst_v4lsrc_push ##### -->
<para>
</para>
+@src:
-<!-- ##### FUNCTION output_play ##### -->
+<!-- ##### MACRO SSLIMIT ##### -->
<para>
</para>
-@bsi:
-@samples:
-@Returns:
-<!-- ##### MACRO VERSION ##### -->
+<!-- ##### FUNCTION gst_riff_id_to_fourcc ##### -->
<para>
</para>
+@id:
+@Returns:
-<!-- ##### SECTION ./tmpl/l2tables.sgml:See_Also ##### -->
+<!-- ##### TYPEDEF DCTBLOCK[DCTSIZE2] ##### -->
<para>
</para>
-<!-- ##### MACRO sgetv ##### -->
+<!-- ##### MACRO CRC16_POLYNOMIAL ##### -->
<para>
</para>
-<!-- ##### MACRO SKIPPED_PICTURE ##### -->
+<!-- ##### MACRO ASCII ##### -->
<para>
</para>
-<!-- ##### MACRO ERROR_MARKER ##### -->
+<!-- ##### FUNCTION mpg123_hsstell ##### -->
<para>
</para>
+@Returns:
-<!-- ##### FUNCTION LoadPartialMem ##### -->
+<!-- ##### FUNCTION gst_v4lsrc_new ##### -->
<para>
</para>
-@filename:
-@pwidth:
-@pheight:
-@width:
-@height:
-@omem:
+@name:
@Returns:
-<!-- ##### SECTION ./tmpl/musicin.sgml:Short_Description ##### -->
-
+<!-- ##### SECTION ./tmpl/dither.sgml:Title ##### -->
+dither
-<!-- ##### MACRO IC_QUARTER ##### -->
+<!-- ##### FUNCTION WriteBitAlloc ##### -->
<para>
</para>
-<!-- ##### FUNCTION bitstream_done ##### -->
+<!-- ##### FUNCTION SM0HDecimateMem ##### -->
<para>
</para>
-@bs:
@Returns:
-<!-- ##### SECTION ./tmpl/gtkoverlayimage.sgml:Title ##### -->
-GtkOverlayImage
-
-
-<!-- ##### VARIABLE mpg123_conv16to8 ##### -->
+<!-- ##### MACRO BITS_IN_A_BYTE ##### -->
<para>
</para>
-<!-- ##### FUNCTION TransposeMatrix ##### -->
+<!-- ##### FUNCTION InstallFSIob ##### -->
<para>
</para>
-@matrix:
-@newmatrix:
+@vid_stream:
+@fs:
+@index:
-<!-- ##### MACRO GST_PARSEWAV_CHUNK_FMT ##### -->
+<!-- ##### MACRO SCALE_BLOCK ##### -->
<para>
</para>
-<!-- ##### MACRO STREAMS_VIDEO ##### -->
+<!-- ##### MACRO CHARBOUND ##### -->
<para>
</para>
+@value:
-<!-- ##### MACRO END_OF_BLOCK ##### -->
+<!-- ##### FUNCTION putbits ##### -->
<para>
</para>
+@pb:
+@val:
+@n:
-<!-- ##### TYPEDEF uint_8 ##### -->
+<!-- ##### FUNCTION gst_example_chain ##### -->
<para>
</para>
+@pad:
+@buf:
-<!-- ##### MACRO FrameRate ##### -->
+<!-- ##### MACRO SCALE_RANGE ##### -->
<para>
</para>
-@vs:
-<!-- ##### MACRO VIDEO_BGR24 ##### -->
+<!-- ##### FUNCTION ByteAlign ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### MACRO DVDSRC_CLASS ##### -->
+<!-- ##### MACRO DFLT_MOD ##### -->
<para>
</para>
-@klass:
-<!-- ##### FUNCTION gst_smoothwave_chain ##### -->
+<!-- ##### MACRO BUFFER_SIZE ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### FUNCTION gst_median_chain ##### -->
+<!-- ##### MACRO VCDSRC_CLASS ##### -->
<para>
</para>
-@pad:
-@buf:
+@klass:
-<!-- ##### MACRO IQUANT_SCALE_POW2 ##### -->
+<!-- ##### MACRO MPEG1MUX_BUFFER_TYPE ##### -->
<para>
</para>
+@mb:
-<!-- ##### FUNCTION crc_validate ##### -->
+<!-- ##### MACRO READ_IOB ##### -->
<para>
</para>
-@Returns:
-<!-- ##### TYPEDEF mb_type_entry ##### -->
+<!-- ##### MACRO MBSC_LENGTH ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpg123_rewindNbits ##### -->
+<!-- ##### SECTION ./tmpl/mhead.sgml:Title ##### -->
+mhead
+
+
+<!-- ##### MACRO LOGBLKSIZE ##### -->
<para>
</para>
-@fr:
-@bits:
-<!-- ##### MACRO InBounds ##### -->
+<!-- ##### MACRO VCD_BYTES_PER_SECTOR ##### -->
<para>
</para>
-@var:
-@lo:
-@hi:
-@str:
-<!-- ##### FUNCTION mpg123_init_decode_tables ##### -->
+<!-- ##### MACRO DecodeDCTDCSizeLum ##### -->
<para>
</para>
-@de:
-@scale:
+@gb:
+@macro_val:
-<!-- ##### FUNCTION stats_print_audblk ##### -->
+<!-- ##### MACRO ERROR_MARKER ##### -->
<para>
</para>
-@audblk:
-<!-- ##### FUNCTION mpg123_compute_bpf ##### -->
+<!-- ##### FUNCTION mpg123_set_pointer ##### -->
<para>
</para>
@fr:
-@Returns:
+@Param2:
-<!-- ##### FUNCTION head_info2 ##### -->
+<!-- ##### MACRO BEGIN ##### -->
<para>
</para>
-@buf:
-@n:
-@h:
-@br:
-@Returns:
+@name:
-<!-- ##### FUNCTION head_info3 ##### -->
+<!-- ##### TYPEDEF DFFT[FFT_SIZE] ##### -->
<para>
</para>
-@buf:
-@n:
-@h:
-@br:
-@searchForward:
-@Returns:
-<!-- ##### FUNCTION WriteScale ##### -->
+<!-- ##### MACRO NO_VID_STREAM ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/mem.sgml:Short_Description ##### -->
+<!-- ##### MACRO DefaultIDct ##### -->
+<para>
+</para>
+@vs:
+@o:
+@i:
-<!-- ##### MACRO CHARBOUND ##### -->
+<!-- ##### MACRO MPEGVER25 ##### -->
<para>
</para>
-@value:
-<!-- ##### MACRO TONE ##### -->
+<!-- ##### FUNCTION PrintDhuff ##### -->
<para>
</para>
+@huff:
+
+<!-- ##### SECTION ./tmpl/mantissa.sgml:Short_Description ##### -->
-<!-- ##### MACRO VIDEO_BGR32 ##### -->
+
+
+<!-- ##### MACRO P_TYPE ##### -->
<para>
</para>
-<!-- ##### MACRO PACKET_HEADER_SIZE ##### -->
+<!-- ##### MACRO EXSC ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/downmix.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/mpeg2enc.sgml:Short_Description ##### -->
-<!-- ##### MACRO MAC_WINDOW_SIZE ##### -->
+<!-- ##### MACRO SC_SNR ##### -->
<para>
</para>
-<!-- ##### FUNCTION MakeBlock ##### -->
+<!-- ##### SECTION ./tmpl/htable.sgml:Long_Description ##### -->
<para>
</para>
-@Returns:
-<!-- ##### MACRO DEFAULT_QUANTIZATION ##### -->
+<!-- ##### MACRO EVENT_LAYER ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/config.sgml:Short_Description ##### -->
+<!-- ##### MACRO SYS_HEADER_START ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION SaveMem ##### -->
+<!-- ##### SECTION ./tmpl/musicin.sgml:Long_Description ##### -->
<para>
</para>
-@filename:
-@mem:
-@Returns:
-<!-- ##### FUNCTION gdk_xvimage_check_xvideo ##### -->
+<!-- ##### MACRO MV_FIELD ##### -->
<para>
</para>
-@Returns:
-<!-- ##### ENUM DVDSrcFlags ##### -->
+<!-- ##### FUNCTION RTjpeg_mcompress8 ##### -->
<para>
</para>
-@DVDSRC_OPEN:
+@sp:
+@bp:
+@lmask:
+@Returns:
-<!-- ##### SECTION ./tmpl/mantissa.sgml:Short_Description ##### -->
+<!-- ##### FUNCTION stats_print_audblk ##### -->
+<para>
+</para>
+@audblk:
-<!-- ##### FUNCTION dprintf ##### -->
+<!-- ##### MACRO PSC ##### -->
<para>
</para>
-@fmt:
-@Varargs:
-<!-- ##### SECTION ./tmpl/marker.sgml:Short_Description ##### -->
+<!-- ##### MACRO MPG_MD_DUAL_CHANNEL ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION mpeg2enc_new_encoder ##### -->
+<!-- ##### MACRO DCTSIZE ##### -->
<para>
</para>
-@Returns:
-<!-- ##### MACRO SIXTYFOUR_BIT ##### -->
+<!-- ##### MACRO DFLT_BRT ##### -->
<para>
</para>
-<!-- ##### FUNCTION PrintEhuff ##### -->
+<!-- ##### SECTION ./tmpl/stream.sgml:See_Also ##### -->
<para>
</para>
-@huff:
-<!-- ##### MACRO L_PTYPE ##### -->
+<!-- ##### FUNCTION gtk_xvimage_redraw ##### -->
<para>
</para>
+@widget:
-<!-- ##### TYPEDEF DCTELEM ##### -->
+<!-- ##### SECTION ./tmpl/core.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/mpeg2enc.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/mpg123.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION ChenIDct ##### -->
+<!-- ##### FUNCTION BellCoreVInterpolateMem ##### -->
<para>
</para>
-@x:
-@y:
+@Returns:
-<!-- ##### SECTION ./tmpl/stream.sgml:Short_Description ##### -->
+<!-- ##### MACRO PACKET_HEADER_SIZE ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION gst_riff_id_to_fourcc ##### -->
+<!-- ##### FUNCTION seof ##### -->
<para>
</para>
-@id:
+@vid_stream:
@Returns:
-<!-- ##### MACRO BLOCKSIZE ##### -->
+<!-- ##### FUNCTION ZigzagMatrix ##### -->
<para>
</para>
+@imatrix:
+@omatrix:
-<!-- ##### SECTION ./tmpl/crc.sgml:See_Also ##### -->
+<!-- ##### FUNCTION decode_sanity_check_init ##### -->
<para>
</para>
-<!-- ##### MACRO MAX_LENGTH ##### -->
+<!-- ##### MACRO SEQUENCE_SCALABLE_EXTENSION_ID ##### -->
<para>
</para>
-<!-- ##### FUNCTION mputb ##### -->
+<!-- ##### SECTION ./tmpl/stream.sgml:Title ##### -->
+stream
+
+
+<!-- ##### MACRO PADDING_STR ##### -->
<para>
</para>
-@vid_stream:
-@b:
-<!-- ##### FUNCTION gst_windec_chain ##### -->
+<!-- ##### FUNCTION mrtell ##### -->
<para>
</para>
-@pad:
-@buf:
-
-<!-- ##### SECTION ./tmpl/decode.sgml:Title ##### -->
-decode
-
+@vid_stream:
+@Returns:
-<!-- ##### MACRO MPEG2_PACKHEAD ##### -->
+<!-- ##### FUNCTION MakeStat ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### MACRO DFLT_EMP ##### -->
+<!-- ##### SECTION ./tmpl/common.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO DCTBITS ##### -->
+<!-- ##### TYPEDEF SBS[2][3][SCALE_BLOCK][SBLIMIT] ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/video.sgml:Short_Description ##### -->
+<!-- ##### ARG GstWinEnc:last_frame_size ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/common.sgml:Title ##### -->
-common
+<!-- ##### SECTION ./tmpl/imdct.sgml:See_Also ##### -->
+<para>
+</para>
-<!-- ##### MACRO UDSC_LENGTH ##### -->
+
+<!-- ##### SECTION ./tmpl/proto.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO GST_PARSEAVI_UNKNOWN ##### -->
+<!-- ##### MACRO swseek ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/decoders.sgml:See_Also ##### -->
+<!-- ##### MACRO GST_PARSEAVI_HDRL ##### -->
<para>
</para>
-<!-- ##### FUNCTION PrintFrame ##### -->
+<!-- ##### SECTION ./tmpl/bit_allocate.sgml:Title ##### -->
+bit_allocate
+
+
+<!-- ##### FUNCTION WriteGOPHeader ##### -->
<para>
</para>
@vid_stream:
-<!-- ##### MACRO FAR ##### -->
+<!-- ##### SECTION ./tmpl/ctables.sgml:Title ##### -->
+ctables
+
+
+<!-- ##### MACRO MPEG1MUX_BUFFER_SPACE ##### -->
<para>
</para>
+@mb:
-<!-- ##### MACRO OK ##### -->
+<!-- ##### FUNCTION gst_parseavi_winloader_chain ##### -->
<para>
</para>
+@pad:
+@buf:
-<!-- ##### MACRO SLICE_MAX_START_CODE ##### -->
+<!-- ##### FUNCTION rb_init ##### -->
<para>
</para>
-<!-- ##### FUNCTION mputv ##### -->
+<!-- ##### FUNCTION gdk_xvimage_init ##### -->
<para>
</para>
-@vid_stream:
-@n:
-@b:
-<!-- ##### MACRO PAST_LOCK ##### -->
+<!-- ##### FUNCTION mpg123_do_layer1 ##### -->
<para>
</para>
+@fr:
+@Returns:
-<!-- ##### SECTION ./tmpl/mhead.sgml:Title ##### -->
-mhead
-
-
-<!-- ##### SECTION ./tmpl/param.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION gst_stereo_new ##### -->
<para>
</para>
+@name:
+@Returns:
-<!-- ##### FUNCTION bitcount ##### -->
+<!-- ##### FUNCTION mpg123_do_layer2 ##### -->
<para>
</para>
-@pb:
+@fr:
@Returns:
-<!-- ##### SECTION ./tmpl/port.sgml:Title ##### -->
-port
+<!-- ##### SECTION ./tmpl/decode.sgml:Short_Description ##### -->
-<!-- ##### MACRO P_INTRA ##### -->
+
+<!-- ##### FUNCTION mpg123_do_layer3 ##### -->
<para>
</para>
+@fr:
+@Returns:
-<!-- ##### SECTION ./tmpl/mantissa.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/mpg123.sgml:Title ##### -->
+mpg123
+
+
+<!-- ##### MACRO USER_BUF_SIZE ##### -->
<para>
</para>
-<!-- ##### MACRO MACROBLOCK_MOTION_BACKWARD ##### -->
+<!-- ##### MACRO TEMPSCAL_ID ##### -->
<para>
</para>
-<!-- ##### MACRO VSEC_LENGTH ##### -->
+<!-- ##### MACRO ALIGNING ##### -->
<para>
</para>
-<!-- ##### FUNCTION create_pack ##### -->
+<!-- ##### MACRO VOL_REF_NUM ##### -->
<para>
</para>
-@pack:
-@SCR:
-@mux_rate:
-<!-- ##### SECTION ./tmpl/tableawd.sgml:See_Also ##### -->
+<!-- ##### FUNCTION decode_sanity_check ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_videosink_pull ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/putbits.sgml:Short_Description ##### -->
-</para>
-@pad:
-@Returns:
-<!-- ##### MACRO MPEG1MUX_BUFFER_SPACE ##### -->
+<!-- ##### SECTION ./tmpl/dither.sgml:Long_Description ##### -->
<para>
</para>
-@mb:
-<!-- ##### MACRO PI ##### -->
+<!-- ##### FUNCTION UDFOpenDisc ##### -->
<para>
</para>
+@filename:
+@Returns:
-<!-- ##### SECTION ./tmpl/jdw.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/decode.sgml:Long_Description ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/stats.sgml:See_Also ##### -->
+<!-- ##### FUNCTION UDFReadLB ##### -->
<para>
</para>
+@fd:
+@Returns:
-<!-- ##### MACRO BLOCKHEIGHT ##### -->
+<!-- ##### MACRO FINISHED_BLOCK ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_xing_chain ##### -->
+<!-- ##### MACRO ISO11172_END ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### FUNCTION ReadBlock ##### -->
+<!-- ##### ARG GstV4lSrc:tune ##### -->
<para>
</para>
-@vid_stream:
-@store:
-<!-- ##### MACRO GOP_LENGTH ##### -->
+<!-- ##### STRUCT putbits_t ##### -->
<para>
</para>
+@outbfr:
+@outbase:
+@temp:
+@outcnt:
+@bytecnt:
+@len:
+@newlen:
-<!-- ##### SECTION ./tmpl/tables.sgml:See_Also ##### -->
+<!-- ##### FUNCTION quant_weight_coeff_sum ##### -->
<para>
</para>
+@blk:
+@i_quant_mat:
+@Returns:
-<!-- ##### MACRO AFTER_PACKET_LENGTH ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/tables.sgml:Short_Description ##### -->
-</para>
-<!-- ##### MACRO FILETYPE_ENCODE ##### -->
+<!-- ##### SECTION ./tmpl/dvd_udf.sgml:Title ##### -->
+dvd_udf
+
+
+<!-- ##### FUNCTION pick_table ##### -->
<para>
</para>
+@Param1:
+@Returns:
-<!-- ##### MACRO STEREO ##### -->
+<!-- ##### MACRO BLKSIZE ##### -->
<para>
</para>
-<!-- ##### MACRO SCALE_RANGE ##### -->
+<!-- ##### FUNCTION audio_decode8_info ##### -->
<para>
</para>
+@info:
-<!-- ##### MACRO IOBUF ##### -->
+<!-- ##### MACRO GST_AVIENCODER_MOVI ##### -->
<para>
</para>
-<!-- ##### FUNCTION MpegDecodeIPBDFrame ##### -->
+<!-- ##### FUNCTION gst_windec_new ##### -->
<para>
</para>
-@vid_stream:
+@name:
+@Returns:
-<!-- ##### FUNCTION mpg123_huffman_count1 ##### -->
+<!-- ##### FUNCTION MakeSubMem ##### -->
<para>
</para>
-@Varargs:
-@Param2:
+@Returns:
-<!-- ##### MACRO L_BDBD ##### -->
+<!-- ##### FUNCTION gdk_xvimage_put ##### -->
<para>
</para>
+@window:
+@gc:
+@image:
+@xsrc:
+@ysrc:
+@wsrc:
+@hsrc:
+@xdest:
+@ydest:
+@wdest:
+@hdest:
-<!-- ##### MACRO GRAB_ATTR_MODE ##### -->
+<!-- ##### SECTION ./tmpl/gtkxvimage.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION JP0VDecimateMem ##### -->
+<!-- ##### SIGNAL GstWinEnc::frame-encoded ##### -->
<para>
</para>
-@Returns:
+@gstwinenc: the object which received the signal.
+@arg1:
-<!-- ##### MACRO ISO11172_END ##### -->
+<!-- ##### ARG Mp3Parse:skip ##### -->
<para>
</para>
-<!-- ##### MACRO NOISE ##### -->
+<!-- ##### MACRO WINMULT ##### -->
<para>
</para>
+@x:
+@coef:
-<!-- ##### STRUCT GstParseWavFormat ##### -->
+<!-- ##### MACRO LAST ##### -->
<para>
</para>
-@wFormatTag:
-@wChannels:
-@dwSamplesPerSec:
-@dwAvgBytesPerSec:
-@wBlockAlign:
-@wBitsPerSample:
-<!-- ##### MACRO VIDEO_YUV420P ##### -->
+<!-- ##### MACRO EXT_START_CODE ##### -->
<para>
</para>
-<!-- ##### MACRO L_MQUANT ##### -->
+<!-- ##### STRUCT GdkXvImage ##### -->
<para>
</para>
+@type:
+@byte_order:
+@width:
+@height:
+@depth:
+@bpp:
+@bpl:
+@mem:
-<!-- ##### SECTION ./tmpl/dvd_udf.sgml:Title ##### -->
-dvd_udf
+<!-- ##### SECTION ./tmpl/ring_buffer.sgml:Title ##### -->
+ring_buffer
-<!-- ##### MACRO DecodeDCTCoeff ##### -->
+<!-- ##### FUNCTION stats_print_syncinfo ##### -->
<para>
</para>
-@gb:
-@dct_coeff_tbl:
-@run:
-@level:
+@syncinfo:
-<!-- ##### SECTION ./tmpl/RTjpeg.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION gst_xa_new ##### -->
<para>
</para>
+@name:
+@Returns:
-<!-- ##### TYPEDEF sint_16 ##### -->
+<!-- ##### ARG GstWinEnc:compression ##### -->
<para>
</para>
-<!-- ##### FUNCTION ReadMBSHeader ##### -->
+<!-- ##### MACRO DCTSIZE2 ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### MACRO ALL_LAYERS ##### -->
+<!-- ##### FUNCTION WriteMBHeader ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### MACRO I_TYPE ##### -->
+<!-- ##### MACRO OK ##### -->
<para>
</para>
-<!-- ##### FUNCTION Sub2Compensate ##### -->
+<!-- ##### FUNCTION mantissa_unpack ##### -->
<para>
</para>
-@vid_stream:
-@matrix:
-@XIob:
-@YIob:
+@bsi:
+@audblk:
+@gb:
-<!-- ##### MACRO VSEC ##### -->
+<!-- ##### MACRO GST_PARSEAVI_AVIH ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/qtables.sgml:Title ##### -->
-qtables
-
-
-<!-- ##### FUNCTION gtk_overlay_image_new ##### -->
+<!-- ##### FUNCTION ReadHeaderTrailer ##### -->
<para>
</para>
-@Returns:
+@vid_stream:
-<!-- ##### MACRO NOISY ##### -->
+<!-- ##### FUNCTION gst_mpg123_chain ##### -->
<para>
</para>
+@pad:
+@buf:
-<!-- ##### FUNCTION gtk_xvimage_get ##### -->
+<!-- ##### ARG Mpeg2Subt:skip ##### -->
<para>
</para>
-@image:
-@val:
-<!-- ##### MACRO SEQUENCE_DISPLAY_EXTENSION_ID ##### -->
+<!-- ##### FUNCTION mpeg1mux_buffer_update_queued ##### -->
<para>
</para>
+@mb:
+@scr:
+@Returns:
-<!-- ##### FUNCTION ParityMem ##### -->
+<!-- ##### SECTION ./tmpl/mpeg2enc.sgml:Title ##### -->
+mpeg2enc
+
+
+<!-- ##### MACRO PICTURE_TEMPORAL_SCALABLE_EXTENSION_ID ##### -->
<para>
</para>
-@Returns:
-<!-- ##### FUNCTION SubCompensate ##### -->
+<!-- ##### FUNCTION MPEGIntraQuantize ##### -->
<para>
</para>
-@vid_stream:
@matrix:
-@XIob:
+@qptr:
+@qfact:
-<!-- ##### SECTION ./tmpl/musicin.sgml:Title ##### -->
-musicin
+<!-- ##### SECTION ./tmpl/port.sgml:Title ##### -->
+port
-<!-- ##### FUNCTION LoadMem ##### -->
+<!-- ##### FUNCTION Statistics ##### -->
<para>
</para>
-@filename:
-@width:
-@height:
-@omem:
-@Returns:
+@vid_stream:
+@RefFS:
+@NewFS:
-<!-- ##### MACRO SEQUENCE_EXTENSION_ID ##### -->
+<!-- ##### MACRO STOP ##### -->
<para>
</para>
-<!-- ##### MACRO MACRO_BLOCK_STUFFING ##### -->
+<!-- ##### VARIABLE global_prefs ##### -->
<para>
</para>
-<!-- ##### MACRO CRC16_POLYNOMIAL ##### -->
+<!-- ##### SECTION ./tmpl/csize.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO ASM_X86_OLD ##### -->
+<!-- ##### MACRO MARKER_JUST_PTS ##### -->
<para>
</para>
-<!-- ##### MACRO TEMPSCAL_ID ##### -->
+<!-- ##### SECTION ./tmpl/proto.sgml:Title ##### -->
+proto
+
+
+<!-- ##### SECTION ./tmpl/ring_buffer.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/acconfig.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/dvd_udf.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### MACRO ASCII ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gstriff.sgml:Title ##### -->
+gstriff
-</para>
+<!-- ##### SECTION ./tmpl/marker.sgml:Short_Description ##### -->
-<!-- ##### SECTION ./tmpl/size.sgml:See_Also ##### -->
+
+
+<!-- ##### MACRO MAX_SNR ##### -->
<para>
</para>
-<!-- ##### MACRO L_QOFFS ##### -->
+<!-- ##### MACRO PI ##### -->
<para>
</para>
-<!-- ##### MACRO BUFFER_TYPE_AUDIO ##### -->
+<!-- ##### TYPEDEF frame_params ##### -->
<para>
</para>
-<!-- ##### FUNCTION InstallIob ##### -->
+<!-- ##### SECTION ./tmpl/stats.sgml:See_Also ##### -->
<para>
</para>
-@vid_stream:
-@index:
-<!-- ##### MACRO SKIP_PICTURE ##### -->
+<!-- ##### MACRO MPG_VER_25 ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/dither.sgml:Short_Description ##### -->
+<!-- ##### FUNCTION CopyMem ##### -->
+<para>
+</para>
+@m1:
+@m2:
-<!-- ##### FUNCTION parse_bsi ##### -->
+<!-- ##### FUNCTION LoadFGroup ##### -->
<para>
</para>
-@bsi:
-@gb:
+@vid_stream:
+@index:
-<!-- ##### MACRO BOTTOM_FIELD ##### -->
+<!-- ##### FUNCTION TimeCode2Integer ##### -->
<para>
</para>
+@vid_stream:
+@tc:
+@Returns:
-<!-- ##### FUNCTION ChenDct ##### -->
+<!-- ##### ARG GstSpectrum:width ##### -->
<para>
</para>
-@x:
-@y:
-<!-- ##### MACRO MC_FRAME ##### -->
+<!-- ##### MACRO MPG_VER_1 ##### -->
<para>
</para>
-<!-- ##### FUNCTION audio_decode_info ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/gtkxvimage.sgml:Short_Description ##### -->
-</para>
-@info:
-<!-- ##### FUNCTION MPEGIntraIQuantize ##### -->
+<!-- ##### MACRO MPG_VER_2 ##### -->
<para>
</para>
-@matrix:
-@qptr:
-@qfact:
-<!-- ##### TYPEDEF sint_32 ##### -->
+<!-- ##### ARG Videoscale:height ##### -->
<para>
</para>
-<!-- ##### MACRO VIDEO_YUV422P ##### -->
+<!-- ##### FUNCTION hdr_to_frps ##### -->
<para>
</para>
+@Param1:
-<!-- ##### MACRO WRITE_IOB ##### -->
+<!-- ##### MACRO GRAB_ATTR_MUTE ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpg123_set_pointer ##### -->
+<!-- ##### FUNCTION ClearFS ##### -->
<para>
</para>
-@fr:
-@Param2:
+@vid_stream:
-<!-- ##### MACRO PICTURE_SPATIAL_SCALABLE_EXTENSION_ID ##### -->
+<!-- ##### MACRO MACROBLOCK_INTRA ##### -->
<para>
</para>
-<!-- ##### MACRO TIMESTAMPS_PTS_DTS ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/huffman.sgml:Short_Description ##### -->
-</para>
-<!-- ##### MACRO DecodeMBAddrInc ##### -->
+<!-- ##### FUNCTION OpenTableFile ##### -->
<para>
</para>
-@gb:
-@val:
+@Param1:
+@Returns:
-<!-- ##### MACRO DC_THREE_EIGHTHS ##### -->
+<!-- ##### SECTION ./tmpl/marker.sgml:Title ##### -->
+marker
+
+
+<!-- ##### TYPEDEF D1408[1408] ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/parse.sgml:See_Also ##### -->
+<!-- ##### MACRO VIDEO_GRAY ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_riff_next_buffer ##### -->
+<!-- ##### FUNCTION audio_decode8_init ##### -->
<para>
</para>
-@riff:
-@buf:
-@off:
+@h:
+@framebytes_arg:
+@reduction_code:
+@transform_code:
+@convert_code:
+@freq_limit:
@Returns:
-<!-- ##### MACRO CONTINUE_BLOCK ##### -->
+<!-- ##### MACRO L_IVAR ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_smooth_new ##### -->
+<!-- ##### ARG GstSpindentity:control ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### MACRO HAN_SIZE ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/dga.sgml:Short_Description ##### -->
-</para>
-<!-- ##### FUNCTION WriteMBSHeader ##### -->
+<!-- ##### FUNCTION WriteBlock ##### -->
<para>
</para>
@vid_stream:
+@store:
-<!-- ##### MACRO DELTA_BIT_NONE ##### -->
+<!-- ##### USER_FUNCTION Ifunc ##### -->
<para>
</para>
+@Returns:
-<!-- ##### MACRO SLICE_START_CODE_MAX ##### -->
+<!-- ##### ENUM GstV4lSrcFlags ##### -->
<para>
</para>
+@GST_V4LSRC_OPEN:
-<!-- ##### SECTION ./tmpl/exponent.sgml:See_Also ##### -->
+<!-- ##### FUNCTION dither_gen ##### -->
<para>
</para>
+@Returns:
-<!-- ##### SECTION ./tmpl/common.sgml:Short_Description ##### -->
-
-
-
-<!-- ##### FUNCTION mpg123_decode_header ##### -->
+<!-- ##### MACRO NOISE ##### -->
<para>
</para>
-@fr:
-@header:
-@Returns:
-<!-- ##### MACRO GST_PARSEAVI_MAX_AUDIO_PADS ##### -->
+<!-- ##### SECTION ./tmpl/port.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION MakeDHUFF ##### -->
+<!-- ##### MACRO STARTCODE_FOUND ##### -->
<para>
</para>
-@Returns:
-<!-- ##### MACRO REGULAR_PARSE ##### -->
+<!-- ##### SECTION ./tmpl/RTjpeg.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION mwseek ##### -->
+<!-- ##### FUNCTION MakeFGroup ##### -->
<para>
</para>
@vid_stream:
-@distance:
-<!-- ##### TYPEDEF TimeStamp ##### -->
+<!-- ##### FUNCTION MakeImage ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### FUNCTION PrintTable ##### -->
+<!-- ##### MACRO MB_QUANT ##### -->
<para>
</para>
-@table:
-<!-- ##### MACRO IN_GOP_PARSE ##### -->
+<!-- ##### FUNCTION SaveMem ##### -->
<para>
</para>
+@filename:
+@mem:
+@Returns:
-<!-- ##### FUNCTION SonyHInterpolateMem ##### -->
+<!-- ##### FUNCTION gst_riff_get_chunk ##### -->
<para>
</para>
+@riff:
+@fourcc:
@Returns:
-<!-- ##### MACRO IN_SEQ_PARSE ##### -->
+<!-- ##### MACRO L_BUFFERSIZE ##### -->
<para>
</para>
-<!-- ##### ENUM GstV4lSrcFlags ##### -->
+<!-- ##### MACRO DCT_COEFF_NEXT ##### -->
<para>
</para>
-@GST_V4LSRC_OPEN:
-<!-- ##### FUNCTION dither_gen ##### -->
+<!-- ##### MACRO VIDEO_BGR24 ##### -->
<para>
</para>
-@Returns:
-<!-- ##### MACRO ERROR_NONE ##### -->
+<!-- ##### MACRO NOISY ##### -->
<para>
</para>
-<!-- ##### FUNCTION mwclose ##### -->
+<!-- ##### FUNCTION bitstream_get ##### -->
<para>
</para>
-@vid_stream:
+@bs:
+@num_bits:
+@Returns:
-<!-- ##### MACRO SCREAM ##### -->
+<!-- ##### MACRO MINIMUM ##### -->
<para>
</para>
-<!-- ##### STRUCT GdkXvImagePrivate ##### -->
+<!-- ##### SECTION ./tmpl/ac3.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO BS_FORMAT ##### -->
<para>
</para>
-@image:
-@x_shm_info:
-@im_adaptor:
-@im_port:
-@im_format:
-<!-- ##### MACRO BINARY ##### -->
+<!-- ##### FUNCTION WriteHdr ##### -->
<para>
</para>
+@Param1:
+@Param2:
-<!-- ##### SECTION ./tmpl/stats.sgml:Short_Description ##### -->
+<!-- ##### ARG Videoscale:width ##### -->
+<para>
+</para>
-<!-- ##### MACRO STOP ##### -->
+<!-- ##### MACRO BOOLEAN ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/musicin.sgml:See_Also ##### -->
+<!-- ##### MACRO PACK_START_CODE ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_mpeg1encoder_chain ##### -->
+<!-- ##### FUNCTION gst_mpegaudio_chain ##### -->
<para>
</para>
@@ -3351,2076 +3517,2186 @@ musicin
@pad:
@buf:
-<!-- ##### SECTION ./tmpl/ac3.sgml:Long_Description ##### -->
+<!-- ##### TYPEDEF DFFT2[FFT_SIZE/2] ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/dct.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/buffer.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO SYS_HEADER_LENGTH ##### -->
<para>
</para>
-<!-- ##### TYPEDEF mb_addr_inc_entry ##### -->
+<!-- ##### FUNCTION RTjpeg_compressYUV420 ##### -->
<para>
</para>
+@sp:
+@bp:
+@Returns:
-<!-- ##### MACRO SBLIMIT ##### -->
+<!-- ##### FUNCTION RTjpeg_compressYUV422 ##### -->
<para>
</para>
+@sp:
+@bp:
+@Returns:
-<!-- ##### FUNCTION js_bound ##### -->
+<!-- ##### MACRO DFLT_SFQ ##### -->
<para>
</para>
-@Varargs:
-@Varargs:
-@Returns:
-<!-- ##### MACRO GROUP_START_CODE ##### -->
+<!-- ##### TYPEDEF JSBS[3][SCALE_BLOCK][SBLIMIT] ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpg123_synth_1to1_486 ##### -->
+<!-- ##### FUNCTION head_info2 ##### -->
<para>
</para>
-@fr:
-@bandPtr:
-@channel:
-@out:
-@nb_blocks:
+@buf:
+@n:
+@h:
+@br:
@Returns:
-<!-- ##### FUNCTION mpeg2enc_new_picture ##### -->
+<!-- ##### FUNCTION head_info3 ##### -->
<para>
</para>
-@vid_stream:
-@inbuf:
-@size:
-@encoder_state:
+@buf:
+@n:
+@h:
+@br:
+@searchForward:
@Returns:
-<!-- ##### MACRO GRAB_ATTR_HUE ##### -->
+<!-- ##### MACRO MEM ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_parsewav_chain ##### -->
+<!-- ##### TYPEDEF IFFT[FFT_SIZE] ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### SECTION ./tmpl/huffman.sgml:Long_Description ##### -->
+<!-- ##### MACRO VIDEO_BGR32 ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/system.sgml:Long_Description ##### -->
+<!-- ##### MACRO MUTE ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/debug.sgml:Short_Description ##### -->
-
+<!-- ##### SECTION ./tmpl/tables.sgml:Title ##### -->
+tables
-<!-- ##### MACRO USER_DATA_START_CODE ##### -->
+<!-- ##### MACRO START_BLOCK ##### -->
<para>
</para>
-<!-- ##### MACRO DefaultDct ##### -->
+<!-- ##### ARG GstV4lSrc:volume ##### -->
<para>
</para>
-@vs:
-@o:
-@i:
-<!-- ##### MACRO GRAB_ATTR_CONTRAST ##### -->
+<!-- ##### MACRO SEQUENCE_END_CODE ##### -->
<para>
</para>
-<!-- ##### MACRO P_PREDICTED ##### -->
+<!-- ##### SECTION ./tmpl/output.sgml:Title ##### -->
+output
+
+
+<!-- ##### MACRO P_FORBIDDEN ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/stream.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION audio_decode ##### -->
<para>
</para>
+@bs:
+@pcm:
+@Returns:
-<!-- ##### MACRO GST_PARSEWAV_UNKNOWN ##### -->
+<!-- ##### FUNCTION gst_riff_get_nextlikely ##### -->
<para>
</para>
+@riff:
+@Returns:
-<!-- ##### FUNCTION audio_decode_init ##### -->
+<!-- ##### FUNCTION mpg123_synth_1to1 ##### -->
<para>
</para>
-@h:
-@framebytes_arg:
-@reduction_code:
-@transform_code:
-@convert_code:
-@freq_limit:
+@fr:
+@bandPtr:
+@channel:
+@out:
+@pnt:
@Returns:
-<!-- ##### FUNCTION InstallFSIob ##### -->
+<!-- ##### FUNCTION II_CRC_calc ##### -->
<para>
</para>
-@vid_stream:
-@fs:
-@index:
+@Param1:
-<!-- ##### FUNCTION IZigzagMatrix ##### -->
+<!-- ##### SECTION ./tmpl/stats.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/gtkoverlayimage.sgml:Title ##### -->
+GtkOverlayImage
+
+
+<!-- ##### MACRO D_TYPE ##### -->
<para>
</para>
-@imatrix:
-@omatrix:
-<!-- ##### MACRO GST_PARSEAVI_STRL ##### -->
+<!-- ##### ARG GstWinDec:avi_header ##### -->
<para>
</para>
-<!-- ##### MACRO MAXFRAMESIZE ##### -->
+<!-- ##### MACRO SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG ##### -->
<para>
</para>
-<!-- ##### TYPEDEF IFFT2[FFT_SIZE/2] ##### -->
+<!-- ##### FUNCTION PrintEhuff ##### -->
<para>
</para>
+@huff:
-<!-- ##### FUNCTION WriteVEHeader ##### -->
+<!-- ##### FUNCTION MakeFStore ##### -->
<para>
</para>
@vid_stream:
-<!-- ##### MACRO FADE_HEAT ##### -->
+<!-- ##### MACRO MB_PATTERN ##### -->
<para>
</para>
-<!-- ##### ENUM VCDSrcFlags ##### -->
+<!-- ##### FUNCTION gst_spindentity_new ##### -->
<para>
</para>
-@VCDSRC_OPEN:
+@name:
+@Returns:
-<!-- ##### FUNCTION WriteBlock ##### -->
+<!-- ##### SECTION ./tmpl/config.sgml:See_Also ##### -->
<para>
</para>
-@vid_stream:
-@store:
-<!-- ##### SECTION ./tmpl/mpeg2dec.sgml:See_Also ##### -->
+<!-- ##### MACRO P_INTERPOLATED ##### -->
<para>
</para>
-<!-- ##### FUNCTION stats_print_bsi ##### -->
+<!-- ##### MACRO BLOCK_LAYER ##### -->
<para>
</para>
-@bsi:
-<!-- ##### SECTION ./tmpl/rematrix.sgml:See_Also ##### -->
+<!-- ##### MACRO ERROR_WRITE ##### -->
<para>
</para>
-<!-- ##### MACRO VIDEO_RGB15_BE ##### -->
+<!-- ##### SECTION ./tmpl/mantissa.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### MACRO UMASK ##### -->
+<!-- ##### VARIABLE Clip ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_win_new ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/l2tables.sgml:Short_Description ##### -->
-</para>
-@name:
-@Returns:
-<!-- ##### MACRO MARKER_SCR ##### -->
+<!-- ##### FUNCTION SuperSubCompensate ##### -->
<para>
</para>
+@vid_stream:
+@fmcmatrix:
+@bmcmatrix:
+@imcmatrix:
+@XIob:
+@YIob:
-<!-- ##### FUNCTION audio_decode8 ##### -->
+<!-- ##### MACRO STREAM_UNDERFLOW ##### -->
<para>
</para>
-@bs:
-@pcmbuf:
-@Returns:
-<!-- ##### FUNCTION ReadVSHeader ##### -->
+<!-- ##### MACRO FILETYPE_ENCODE ##### -->
<para>
</para>
-@vid_stream:
-@Returns:
-<!-- ##### SECTION ./tmpl/mem.sgml:See_Also ##### -->
+<!-- ##### MACRO SEQUENCE_HEADER_CODE ##### -->
<para>
</para>
-<!-- ##### FUNCTION MakeFStore ##### -->
+<!-- ##### ARG GstVuMeter:volumeptr ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### MACRO FIRST_BLOCK ##### -->
+<!-- ##### SECTION ./tmpl/buffer.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO GST_PARSEAVI_STRH_AUDS ##### -->
+<!-- ##### SECTION ./tmpl/csize.sgml:Title ##### -->
+csize
+
+
+<!-- ##### MACRO DELTA_BIT_NEW ##### -->
<para>
</para>
-<!-- ##### MACRO MONO ##### -->
+<!-- ##### FUNCTION bit_allocate ##### -->
<para>
</para>
+@fscod:
+@bsi:
+@audblk:
+
+<!-- ##### SECTION ./tmpl/downmix.sgml:Short_Description ##### -->
-<!-- ##### MACRO GST_PARSEAVI_REGULAR ##### -->
+
+
+<!-- ##### FUNCTION BitrateIndex ##### -->
<para>
</para>
+@Varargs:
+@Varargs:
+@Returns:
-<!-- ##### FUNCTION mpg123_do_layer1 ##### -->
+<!-- ##### MACRO MAC_WINDOW_SIZE ##### -->
<para>
</para>
-@fr:
-@Returns:
-<!-- ##### MACRO CAN_AUDIO_VOLUME ##### -->
+<!-- ##### SECTION ./tmpl/crc.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpg123_do_layer2 ##### -->
+<!-- ##### FUNCTION RTjpeg_init_mcompress ##### -->
<para>
</para>
-@fr:
-@Returns:
-<!-- ##### FUNCTION CopyMem ##### -->
+<!-- ##### FUNCTION gst_mpeg_play_chain ##### -->
<para>
</para>
-@m1:
-@m2:
+@pad:
+@buf:
-<!-- ##### SECTION ./tmpl/putbits.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/config.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### ARG VCDSrc:track ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpg123_do_layer3 ##### -->
+<!-- ##### SECTION ./tmpl/musicin.sgml:See_Also ##### -->
<para>
</para>
-@fr:
-@Returns:
-<!-- ##### SECTION ./tmpl/decode.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/stats.sgml:Title ##### -->
+stats
+<!-- ##### SECTION ./tmpl/mpeg2dec.sgml:Long_Description ##### -->
+<para>
-<!-- ##### SECTION ./tmpl/globals.sgml:Long_Description ##### -->
+</para>
+
+
+<!-- ##### MACRO FRAME_TYPE_BFRAME ##### -->
<para>
</para>
-<!-- ##### MACRO L_QDFACT ##### -->
+<!-- ##### FUNCTION MakeFileNames ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### MACRO MPG_VER_1 ##### -->
+<!-- ##### MACRO IT_QCIF ##### -->
<para>
</para>
-<!-- ##### MACRO MPG_VER_2 ##### -->
+<!-- ##### ARG GstMpeg2enc:frames_per_second ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_stereo_chain ##### -->
+<!-- ##### MACRO GST_AVIENCODER_MAX_AUDIO_PADS ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### FUNCTION CopyCFS2FS ##### -->
+<!-- ##### FUNCTION WriteVSHeader ##### -->
<para>
</para>
@vid_stream:
-@fs:
-<!-- ##### FUNCTION dvdsrc_get_type ##### -->
+<!-- ##### FUNCTION WriteMBSHeader ##### -->
<para>
</para>
-@Returns:
+@vid_stream:
-<!-- ##### TYPEDEF UINT16 ##### -->
+<!-- ##### SECTION ./tmpl/csize.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpg123_synth_1to1_pent ##### -->
+<!-- ##### ARG GstVideoSink:frames_displayed ##### -->
<para>
</para>
-@bandPtr:
-@channel:
-@out:
-@Returns:
-<!-- ##### SECTION ./tmpl/buffer.sgml:See_Also ##### -->
+<!-- ##### MACRO VCDSRC ##### -->
<para>
</para>
+@obj:
-<!-- ##### FUNCTION putbits ##### -->
+<!-- ##### MACRO STREAMS_BOTH ##### -->
<para>
</para>
-@pb:
-@val:
-@n:
-<!-- ##### FUNCTION MakeEHUFF ##### -->
+<!-- ##### FUNCTION LoadMem ##### -->
<para>
</para>
+@filename:
+@width:
+@height:
+@omem:
@Returns:
-<!-- ##### SECTION ./tmpl/ctables.sgml:See_Also ##### -->
+<!-- ##### FUNCTION ChenIDct ##### -->
<para>
</para>
+@x:
+@y:
-<!-- ##### FUNCTION RTjpeg_compress8 ##### -->
+<!-- ##### MACRO MPEGLAYER1 ##### -->
<para>
</para>
-@sp:
-@bp:
-@Returns:
-<!-- ##### FUNCTION mpeg2play_new_buffer ##### -->
+<!-- ##### MACRO MPEGLAYER2 ##### -->
<para>
</para>
-@vid_stream:
-@inbuf:
-@inlen:
-@first:
-@Returns:
-<!-- ##### USER_FUNCTION Ifunc ##### -->
+<!-- ##### MACRO MPEGLAYER3 ##### -->
<para>
</para>
-@Returns:
-<!-- ##### FUNCTION RTjpeg_set_test ##### -->
+<!-- ##### ARG GstV4lSrc:height ##### -->
<para>
</para>
-@i:
-<!-- ##### MACRO MB_WEIGHT ##### -->
+<!-- ##### MACRO WRITE_MODE ##### -->
<para>
</para>
-<!-- ##### MACRO DVD_UDF_VERSION ##### -->
+<!-- ##### MACRO ERROR_HUFFMAN_READ ##### -->
<para>
</para>
-<!-- ##### FUNCTION cvt_to_wave ##### -->
+<!-- ##### FUNCTION gst_windec_chain ##### -->
<para>
</para>
-@Param1:
-@Param2:
-@Returns:
+@pad:
+@buf:
-<!-- ##### FUNCTION SonyVInterpolateMem ##### -->
+<!-- ##### MACRO CONST_BITS ##### -->
<para>
</para>
-@Returns:
-<!-- ##### MACRO DVDSRC ##### -->
+<!-- ##### MACRO sgetb ##### -->
<para>
</para>
-@obj:
-<!-- ##### MACRO FRAME_PICTURE ##### -->
+<!-- ##### MACRO sgetc ##### -->
<para>
</para>
-<!-- ##### MACRO DELTA_BIT_RESERVED ##### -->
+<!-- ##### SECTION ./tmpl/stats.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_mpeg2enc_new ##### -->
+<!-- ##### FUNCTION seek_sync ##### -->
<para>
</para>
-@name:
@Returns:
-<!-- ##### FUNCTION MakeSubMem ##### -->
+<!-- ##### ARG GstV4lSrc:color ##### -->
<para>
</para>
-@Returns:
-<!-- ##### FUNCTION bitstream_get ##### -->
+<!-- ##### SECTION ./tmpl/size.sgml:Title ##### -->
+size
+
+
+<!-- ##### ARG GstSmooth:tolerance ##### -->
<para>
</para>
-@bs:
-@num_bits:
-@Returns:
-<!-- ##### MACRO GST_PARSEAVI_MAX_VIDEO_PADS ##### -->
+<!-- ##### MACRO MC_FIELD ##### -->
<para>
</para>
-<!-- ##### MACRO SYNA_BITS ##### -->
+<!-- ##### ARG GstVideoSink:xv_enabled ##### -->
<para>
</para>
-<!-- ##### MACRO PACK_START ##### -->
+<!-- ##### MACRO sgetv ##### -->
<para>
</para>
-<!-- ##### MACRO GRAB_ATTR_BRIGHT ##### -->
+<!-- ##### FUNCTION SetPointerBlock ##### -->
<para>
</para>
-<!-- ##### MACRO EXT_START_CODE ##### -->
+<!-- ##### FUNCTION bitcount ##### -->
<para>
</para>
+@pb:
+@Returns:
-<!-- ##### MACRO DFLT_EXT ##### -->
+<!-- ##### MACRO DEFAULT_QUANTIZATION ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/gdkxvimage.sgml:Short_Description ##### -->
+<!-- ##### ARG GstVuMeter:volumeptr_right ##### -->
+<para>
+</para>
-<!-- ##### MACRO IMAGE ##### -->
+<!-- ##### ARG GstSynaesthesia:widget ##### -->
<para>
</para>
-<!-- ##### MACRO LITTLE_SHORT16 ##### -->
+<!-- ##### FUNCTION dct64_486 ##### -->
<para>
</para>
+@a:
+@b:
+@samples:
-<!-- ##### TYPEDEF UINT32 ##### -->
+<!-- ##### MACRO DFLT_LAY ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/stats.sgml:Long_Description ##### -->
+<!-- ##### MACRO ERROR_INIT_FILE ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_volume_chain ##### -->
+<!-- ##### MACRO GST_PARSEAVI_MAX_VIDEO_PADS ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### SECTION ./tmpl/imdct.sgml:Short_Description ##### -->
+<!-- ##### MACRO SEQSCAL_ID ##### -->
+<para>
+</para>
-<!-- ##### MACRO STDC_HEADERS ##### -->
+<!-- ##### MACRO SYNA_BITS ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/vlc.sgml:Title ##### -->
-vlc
+<!-- ##### FUNCTION downmix ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION seof ##### -->
+@Param1:
+@Param2:
+
+<!-- ##### FUNCTION gst_spindentity_chain ##### -->
<para>
</para>
-@vid_stream:
-@Returns:
+@pad:
+@buf:
-<!-- ##### MACRO GST_PARSEAVI_AVIH ##### -->
+<!-- ##### FUNCTION MakeFrame ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### MACRO ERROR_BOUNDS ##### -->
+<!-- ##### SECTION ./tmpl/itype.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/ctables.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/gstriff.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### TYPEDEF coded_block_pattern_entry ##### -->
+<!-- ##### MACRO DHUFF ##### -->
<para>
</para>
-<!-- ##### MACRO MB_CLASS4 ##### -->
+<!-- ##### FUNCTION gst_volume_new ##### -->
<para>
</para>
+@name:
+@Returns:
-<!-- ##### MACRO ZERO_STUFFING_BYTE ##### -->
+<!-- ##### SECTION ./tmpl/putbits.sgml:Title ##### -->
+putbits
+
+
+<!-- ##### SECTION ./tmpl/downmix.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION new_ext ##### -->
+<!-- ##### FUNCTION mpg123_compute_tpf ##### -->
<para>
</para>
-@filename:
-@extname:
+@fr:
@Returns:
-<!-- ##### MACRO STATUS_VIDEO_TIME_OUT ##### -->
+<!-- ##### SECTION ./tmpl/itype.sgml:Title ##### -->
+itype
+
+
+<!-- ##### MACRO GST_RIFF_ENOTRIFF ##### -->
<para>
</para>
-<!-- ##### MACRO PI64 ##### -->
+<!-- ##### SECTION ./tmpl/crc.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO IFF_LONG ##### -->
+<!-- ##### SECTION ./tmpl/decode.sgml:Title ##### -->
+decode
+
+
+<!-- ##### FUNCTION MakeFS ##### -->
<para>
</para>
+@vid_stream:
+@flag:
-<!-- ##### MACRO MPEGVER1 ##### -->
+<!-- ##### SECTION ./tmpl/globals.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO MPEGVER2 ##### -->
+<!-- ##### MACRO L_BD ##### -->
<para>
</para>
-<!-- ##### MACRO DELTA_BIT_REUSE ##### -->
+<!-- ##### MACRO GRAB_ATTR_CONTRAST ##### -->
<para>
</para>
-<!-- ##### MACRO SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG ##### -->
+<!-- ##### FUNCTION gst_smooth_chain ##### -->
<para>
</para>
+@pad:
+@buf:
-<!-- ##### FUNCTION extended_to_double ##### -->
+<!-- ##### MACRO MPG_MD_JOINT_STEREO ##### -->
<para>
</para>
-@Param1:
-@Param2:
-<!-- ##### MACRO GOP_START_CODE ##### -->
+<!-- ##### MACRO FRAME_TYPE_AUDIO ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpg123_get_songlen ##### -->
+<!-- ##### MACRO MB_STUFFING ##### -->
<para>
</para>
-@fr:
-@no:
-@Returns:
-<!-- ##### MACRO MPG_LAYER_1 ##### -->
+<!-- ##### MACRO FAR ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/putbits.sgml:Title ##### -->
-putbits
-
-
-<!-- ##### MACRO MPG_LAYER_2 ##### -->
+<!-- ##### TYPEDEF GdkXvImageType ##### -->
<para>
</para>
-<!-- ##### MACRO MPG_LAYER_3 ##### -->
+<!-- ##### ARG GstAviEncoder:audio ##### -->
<para>
</para>
-<!-- ##### TYPEDEF vFunc() ##### -->
+<!-- ##### SECTION ./tmpl/output.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/system.sgml:See_Also ##### -->
+<!-- ##### MACRO srseek ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/huffman.sgml:See_Also ##### -->
+<!-- ##### FUNCTION gst_synaesthesia_new ##### -->
<para>
</para>
+@name:
+@Returns:
-<!-- ##### MACRO AUDIO_STR_0 ##### -->
+<!-- ##### FUNCTION VerifyFiles ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### SECTION ./tmpl/itype.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/ctables.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/uncouple.sgml:See_Also ##### -->
+<!-- ##### MACRO TABLES_PATH ##### -->
<para>
</para>
-<!-- ##### MACRO SLICE_START_CODE_MIN ##### -->
+<!-- ##### MACRO VIDEO_YUV420P ##### -->
<para>
</para>
-<!-- ##### FUNCTION RTjpeg_mcompress8 ##### -->
+<!-- ##### SECTION ./tmpl/rematrix.sgml:See_Also ##### -->
<para>
</para>
-@sp:
-@bp:
-@lmask:
-@Returns:
-<!-- ##### TYPEDEF VLCtab ##### -->
+<!-- ##### SECTION ./tmpl/bit_allocate.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/l2tables.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO CREATOR_ENCODE ##### -->
+<!-- ##### FUNCTION mpeg1mux_buffer_queue ##### -->
<para>
</para>
+@mb:
+@buf:
-<!-- ##### FUNCTION putbits_init ##### -->
+<!-- ##### MACRO CHROMA420 ##### -->
<para>
</para>
-@pb:
-<!-- ##### MACRO UNPACK_FBW ##### -->
+<!-- ##### SECTION ./tmpl/bitstream.sgml:Title ##### -->
+bitstream
+
+
+<!-- ##### MACRO CHROMA422 ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/marker.sgml:Title ##### -->
-marker
+<!-- ##### MACRO swtell ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/mpg123.sgml:See_Also ##### -->
+
+<!-- ##### FUNCTION PrintIob ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### MACRO VIDEO_GRAY ##### -->
+<!-- ##### MACRO IFF_ID_SSND ##### -->
<para>
</para>
-<!-- ##### MACRO SC_TEMP ##### -->
+<!-- ##### FUNCTION gst_win_chain ##### -->
<para>
</para>
+@pad:
+@buf:
-<!-- ##### FUNCTION gdk_xvimage_destroy ##### -->
+<!-- ##### MACRO LN_TO_LOG10 ##### -->
<para>
</para>
-@image:
-<!-- ##### MACRO L_BUFFERCONTENTS ##### -->
+<!-- ##### FUNCTION WriteSamples ##### -->
<para>
</para>
+@Varargs:
-<!-- ##### FUNCTION Bpos ##### -->
+<!-- ##### FUNCTION rb_begin_read ##### -->
<para>
</para>
-@vid_stream:
-@hp:
-@vp:
-@h:
-@v:
@Returns:
-<!-- ##### MACRO READ_IOB ##### -->
+<!-- ##### MACRO T_X11 ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/mhead.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/prototypes.sgml:Title ##### -->
+prototypes
+<!-- ##### FUNCTION mgetb ##### -->
+<para>
-<!-- ##### SECTION ./tmpl/output.sgml:Title ##### -->
-output
+</para>
+@vid_stream:
+@Returns:
-<!-- ##### FUNCTION RTjpeg_init_mcompress ##### -->
+<!-- ##### SECTION ./tmpl/L3.sgml:Title ##### -->
+L3
+
+
+<!-- ##### FUNCTION crc_process ##### -->
<para>
</para>
+@data:
-<!-- ##### FUNCTION mpeg1mux_buffer_update_queued ##### -->
+<!-- ##### MACRO L_IDBD ##### -->
<para>
</para>
-@mb:
-@scr:
-@Returns:
-<!-- ##### MACRO SEQUENCE_SCALABLE_EXTENSION_ID ##### -->
+<!-- ##### MACRO MACROBLOCK_PATTERN ##### -->
<para>
</para>
-<!-- ##### MACRO swtell ##### -->
+<!-- ##### FUNCTION gst_videosink_pull ##### -->
<para>
</para>
+@pad:
+@Returns:
-<!-- ##### MACRO L_FDBD ##### -->
+<!-- ##### MACRO DVDSRC_CLASS ##### -->
<para>
</para>
+@klass:
-<!-- ##### FUNCTION gst_riff_get_nextlikely ##### -->
+<!-- ##### MACRO DELTA_BIT_REUSE ##### -->
<para>
</para>
-@riff:
-@Returns:
-<!-- ##### MACRO swopen ##### -->
+<!-- ##### SECTION ./tmpl/qtables.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/gtkxvimage.sgml:Title ##### -->
-GtkXvImage
+<!-- ##### FUNCTION gst_median_new ##### -->
+<para>
+</para>
-<!-- ##### MACRO MPEG1MUX_BUFFER_FIRST_TIMECODE ##### -->
+@name:
+@Returns:
+
+<!-- ##### MACRO AUSHIFT ##### -->
<para>
</para>
-@mb:
-<!-- ##### MACRO PICTURE_TEMPORAL_SCALABLE_EXTENSION_ID ##### -->
+<!-- ##### MACRO MAX_SECTOR_SIZE ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/L3.sgml:Title ##### -->
-L3
+<!-- ##### SECTION ./tmpl/encoder.sgml:Title ##### -->
+encoder
-<!-- ##### FUNCTION vcdsrc_get_type ##### -->
+<!-- ##### FUNCTION mpg123_decode_frame ##### -->
<para>
</para>
+@de:
+@inbuf:
+@inlen:
+@outbuf:
+@outlen:
@Returns:
-<!-- ##### SECTION ./tmpl/gtkxvimage.sgml:See_Also ##### -->
+<!-- ##### FUNCTION mpg123_rewindNbits ##### -->
+<para>
+
+</para>
+
+@fr:
+@bits:
+
+<!-- ##### MACRO SCALE ##### -->
<para>
</para>
-<!-- ##### TYPEDEF uint_16 ##### -->
+<!-- ##### FUNCTION PrintMatrix ##### -->
<para>
</para>
+@matrix:
-<!-- ##### STRUCT Mpeg1Stream ##### -->
+<!-- ##### ARG GstV4lSrc:norm ##### -->
<para>
</para>
-@stream_id:
-@STD_buffer_bound_scale:
-@STD_buffer_size_bound:
-<!-- ##### FUNCTION MakeFrame ##### -->
+<!-- ##### FUNCTION mwopen ##### -->
<para>
</para>
@vid_stream:
+@filename:
-<!-- ##### MACRO MPEG2_SYSHEAD ##### -->
+<!-- ##### FUNCTION mgetv ##### -->
<para>
</para>
+@vid_stream:
+@n:
+@Returns:
-<!-- ##### TYPEDEF D2SBL[2][SBLIMIT] ##### -->
+<!-- ##### SECTION ./tmpl/marker.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_parseavi_winloader_chain ##### -->
+<!-- ##### ARG GstMedian:active ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### SECTION ./tmpl/dga.sgml:Title ##### -->
-dga
+<!-- ##### FUNCTION zeroflush ##### -->
+<para>
+</para>
-<!-- ##### MACRO LAST ##### -->
+@vid_stream:
+
+<!-- ##### MACRO MAXFRAMESIZE ##### -->
<para>
</para>
-<!-- ##### MACRO L_VAROR ##### -->
+<!-- ##### MACRO AUDIO_STREAMS ##### -->
<para>
</para>
-<!-- ##### MACRO VOL_REF_NUM ##### -->
+<!-- ##### MACRO UNPACK_LFE ##### -->
<para>
</para>
-<!-- ##### MACRO PATH_SEPARATOR ##### -->
+<!-- ##### SECTION ./tmpl/parse.sgml:Title ##### -->
+parse
+
+
+<!-- ##### FUNCTION gst_parseau_chain ##### -->
<para>
</para>
+@pad:
+@buf:
-<!-- ##### FUNCTION ClearFS ##### -->
+<!-- ##### MACRO CBANDS ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### MACRO GST_PARSEAVI_MOVI ##### -->
+<!-- ##### FUNCTION stats_print_bsi ##### -->
<para>
</para>
+@bsi:
-<!-- ##### FUNCTION seek_sync ##### -->
+<!-- ##### MACRO MB_WEIGHT ##### -->
<para>
</para>
-@Returns:
-<!-- ##### MACRO NO_STARTCODE ##### -->
+<!-- ##### MACRO FSTORE ##### -->
<para>
</para>
-<!-- ##### ARG VCDSrc:offset ##### -->
+<!-- ##### SECTION ./tmpl/tableawd.sgml:Title ##### -->
+tableawd
+
+
+<!-- ##### MACRO SLICE_MAX_START ##### -->
<para>
</para>
-<!-- ##### MACRO USER_START_CODE ##### -->
+<!-- ##### MACRO VIDEO_YUV422P ##### -->
<para>
</para>
-<!-- ##### TYPEDEF GdkXvImageType ##### -->
+<!-- ##### MACRO IC_QUARTER ##### -->
<para>
</para>
-<!-- ##### MACRO SC_DP ##### -->
+<!-- ##### MACRO TIMESTAMPS_PTS_DTS ##### -->
<para>
</para>
-<!-- ##### MACRO DC_QUARTER ##### -->
+<!-- ##### FUNCTION Add2Compensate ##### -->
<para>
</para>
+@vid_stream:
+@matrix:
+@XIob:
+@YIob:
-<!-- ##### MACRO srseek ##### -->
+<!-- ##### MACRO CHROMA444 ##### -->
<para>
</para>
-<!-- ##### MACRO VIDEO_YUV422 ##### -->
+<!-- ##### SECTION ./tmpl/parse.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO MC_FIELD ##### -->
+<!-- ##### FUNCTION BoundIQuantizeMatrix ##### -->
<para>
</para>
+@matrix:
-<!-- ##### MACRO VCD_BYTES_PER_SECTOR ##### -->
+<!-- ##### SECTION ./tmpl/stamp.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO CLOCKS ##### -->
<para>
</para>
-<!-- ##### MACRO PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS ##### -->
+<!-- ##### FUNCTION MPEGNonIntraIQuantize ##### -->
<para>
</para>
+@matrix:
+@qptr:
+@qfact:
-<!-- ##### FUNCTION create_sys_header ##### -->
+<!-- ##### MACRO SEEK_END ##### -->
<para>
</para>
-@sys_header:
-@rate_bound:
-@audio_bound:
-@fixed:
-@CSPS:
-@audio_lock:
-@video_lock:
-@video_bound:
-@stream1:
-@buffer1_scale:
-@buffer1_size:
-@stream2:
-@buffer2_scale:
-@buffer2_size:
-@which_streams:
-<!-- ##### SECTION ./tmpl/RTjpeg.sgml:See_Also ##### -->
+<!-- ##### FUNCTION mpg123_synth_1to1_486 ##### -->
<para>
</para>
+@fr:
+@bandPtr:
+@channel:
+@out:
+@nb_blocks:
+@Returns:
-<!-- ##### FUNCTION II_CRC_calc ##### -->
+<!-- ##### FUNCTION YUVSaveMem ##### -->
<para>
</para>
-@Param1:
-<!-- ##### SECTION ./tmpl/vlc.sgml:Long_Description ##### -->
+<!-- ##### MACRO IQUANT_SCALE_POW2 ##### -->
<para>
</para>
-<!-- ##### MACRO HBLKSIZE ##### -->
+<!-- ##### MACRO PICTURE_START_CODE ##### -->
<para>
</para>
-<!-- ##### MACRO GST_PARSEAVI_STRH_VIDS ##### -->
+<!-- ##### MACRO MPEG2PLAY_HEIGHT ##### -->
<para>
</para>
+@mp:
-<!-- ##### FUNCTION gst_win_chain ##### -->
+<!-- ##### MACRO CAN_AUDIO_VOLUME ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### FUNCTION WriteSamples ##### -->
+<!-- ##### SECTION ./tmpl/bit_allocate.sgml:See_Also ##### -->
<para>
</para>
-@Varargs:
-<!-- ##### SECTION ./tmpl/dct.sgml:Title ##### -->
-dct
+<!-- ##### SECTION ./tmpl/debug.sgml:Short_Description ##### -->
-<!-- ##### FUNCTION rb_begin_write ##### -->
+
+<!-- ##### TYPEDEF IN[2][HAN_SIZE] ##### -->
<para>
</para>
-@Returns:
-<!-- ##### MACRO NEW_DATA ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/common.sgml:Short_Description ##### -->
-</para>
-<!-- ##### TYPEDEF uint_32 ##### -->
+<!-- ##### FUNCTION RTjpeg_init_decompress ##### -->
<para>
</para>
-<!-- ##### MACRO SC_NONE ##### -->
+<!-- ##### MACRO CREATOR_ENCODE ##### -->
<para>
</para>
-<!-- ##### FUNCTION downmix ##### -->
+<!-- ##### FUNCTION gst_spectrum_chain ##### -->
<para>
</para>
-@Param1:
-@Param2:
+@pad:
+@buf:
-<!-- ##### MACRO POWERNORM ##### -->
+<!-- ##### MACRO srclose ##### -->
<para>
</para>
-<!-- ##### MACRO DBMIN ##### -->
+<!-- ##### ARG GstSmooth:active ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/gstriff.sgml:Long_Description ##### -->
+<!-- ##### MACRO DCTBITS ##### -->
<para>
</para>
-<!-- ##### MACRO SLICE_LAYER ##### -->
+<!-- ##### ARG GstMedian:filtersize ##### -->
<para>
</para>
-<!-- ##### MACRO UBOUND ##### -->
+<!-- ##### SIGNAL GstMpeg_play::frame-decoded ##### -->
<para>
</para>
-@index:
-@value:
+@gstmpeg_play: the object which received the signal.
+@arg1:
-<!-- ##### TYPEDEF frame_params ##### -->
+<!-- ##### MACRO ERROR_READ ##### -->
<para>
</para>
-<!-- ##### MACRO STREAMS_AUDIO ##### -->
+<!-- ##### MACRO USER_START_CODE ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/itype.sgml:Title ##### -->
-itype
-
-
-<!-- ##### SECTION ./tmpl/uncouple.sgml:Title ##### -->
-uncouple
+<!-- ##### SECTION Pads ##### -->
+<refsect1>
+ <title>pads</title>
+ <para>
+ test
+ </para>
+</refsect1>
-<!-- ##### MACRO RUN_SHIFT ##### -->
+<!-- ##### FUNCTION mpg123_huffman_count1 ##### -->
<para>
</para>
+@Varargs:
+@Param2:
-<!-- ##### FUNCTION LoadFGroup ##### -->
+<!-- ##### FUNCTION gtk_xvimage_set ##### -->
<para>
</para>
-@vid_stream:
-@index:
+@image:
+@val:
-<!-- ##### FUNCTION gst_mpeg_play_new ##### -->
+<!-- ##### FUNCTION RTjpeg_yuv420rgb ##### -->
<para>
</para>
-@name:
-@Returns:
+@buf:
+@rgb:
-<!-- ##### MACRO USER_BUF_SIZE ##### -->
+<!-- ##### FUNCTION mrclose ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### FUNCTION set_mac_file_attr ##### -->
+<!-- ##### MACRO ZERO_STUFFING_BYTE ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/encoder.sgml:Short_Description ##### -->
+<!-- ##### MACRO COPYRIGHT_EXTENSION_ID ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/marker.sgml:Long_Description ##### -->
+<!-- ##### MACRO WRITE_IOB ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_parseavi_get_video_srcpad ##### -->
+<!-- ##### FUNCTION gst_parseavi_new ##### -->
<para>
</para>
-@parseavi:
-@pad_nr:
-@strf:
+@name:
@Returns:
-<!-- ##### MACRO srclose ##### -->
+<!-- ##### MACRO P_INTRA ##### -->
<para>
</para>
-<!-- ##### FUNCTION memcheck ##### -->
+<!-- ##### FUNCTION gst_mpeg2play_new ##### -->
<para>
</para>
-@Param1:
-@Varargs:
-@Varargs:
+@name:
@Returns:
-<!-- ##### STRUCT Mpeg1MuxTimecode ##### -->
+<!-- ##### MACRO SEEK_CUR ##### -->
<para>
</para>
-@length:
-@original_length:
-@frame_type:
-@PTS:
-@DTS:
-<!-- ##### MACRO MB_ESCAPE ##### -->
+<!-- ##### MACRO VSSC_LENGTH ##### -->
<para>
</para>
-<!-- ##### MACRO VSSC ##### -->
+<!-- ##### ENUM DVDSrcFlags ##### -->
<para>
</para>
+@DVDSRC_OPEN:
-<!-- ##### FUNCTION MPEGNonIntraQuantize ##### -->
+<!-- ##### SECTION ./tmpl/port.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO FrameRate ##### -->
<para>
</para>
-@matrix:
-@qptr:
-@qfact:
+@vs:
-<!-- ##### FUNCTION Decode ##### -->
+<!-- ##### MACRO DBMIN ##### -->
<para>
</para>
-@vid_stream:
-@huff:
-@Returns:
-<!-- ##### MACRO MPEG_AUDIO_ID ##### -->
+<!-- ##### ARG GstVideoSink:widget ##### -->
<para>
</para>
-<!-- ##### MACRO DFLT_MOD ##### -->
+<!-- ##### MACRO GTK_OVERLAY_IMAGE_HEIGHT ##### -->
<para>
</para>
+@obj:
-<!-- ##### SECTION ./tmpl/main.sgml:Title ##### -->
-main
+<!-- ##### MACRO MPEG2PLAY_WIDTH ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION MakeSuperMem ##### -->
+@mp:
+
+<!-- ##### MACRO GTK_OVERLAY_IMAGE_WIDTH ##### -->
<para>
</para>
-@Returns:
+@obj:
-<!-- ##### SECTION ./tmpl/crc.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION PrintImage ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### MACRO BUFFERSIZE ##### -->
+<!-- ##### SECTION ./tmpl/gtkxvimage.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION audio_decode ##### -->
+<!-- ##### FUNCTION gst_xa_chain ##### -->
<para>
</para>
-@bs:
-@pcm:
-@Returns:
+@pad:
+@buf:
-<!-- ##### MACRO LOGBLKSIZE ##### -->
+<!-- ##### MACRO CB_FRACTION ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/video.sgml:Title ##### -->
-video
+<!-- ##### FUNCTION ClearToHeader ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/mpeg2dec.sgml:Long_Description ##### -->
+@vid_stream:
+@Returns:
+
+<!-- ##### FUNCTION mpegaudio_encode_frame ##### -->
<para>
</para>
+@enc:
+@inbuf:
+@outbuf:
+@outlen:
+@Returns:
-<!-- ##### SECTION ./tmpl/rematrix.sgml:Short_Description ##### -->
+<!-- ##### MACRO UDSC_LENGTH ##### -->
+<para>
+</para>
-<!-- ##### MACRO MB_FORWARD ##### -->
+<!-- ##### MACRO BUFFER_TYPE_AUDIO ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/video.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/debug.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### MACRO VIDEO_RGB15_LE ##### -->
+<!-- ##### FUNCTION gst_riff_get_chunk_list ##### -->
<para>
</para>
+@riff:
+@Returns:
-<!-- ##### FUNCTION WriteHdr ##### -->
+<!-- ##### FUNCTION MakeMask ##### -->
<para>
</para>
-@Param1:
-@Param2:
+@x:
+@y:
+@mask:
+@XIob:
-<!-- ##### FUNCTION mpg123_init_conv16to8_table ##### -->
+<!-- ##### MACRO MPEG_AUDIO_ID ##### -->
<para>
</para>
-<!-- ##### FUNCTION crc_init ##### -->
+<!-- ##### FUNCTION RTjpeg_set_test ##### -->
<para>
</para>
+@i:
-<!-- ##### MACRO STATUS_AUDIO_END ##### -->
+<!-- ##### MACRO MAX_U_32_NUM ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/encoder.sgml:See_Also ##### -->
+<!-- ##### MACRO MPEG1MUX_BUFFER_QUEUED ##### -->
<para>
</para>
+@mb:
-<!-- ##### MACRO GST_RIFF_ENOTRIFF ##### -->
+<!-- ##### MACRO I_TYPE ##### -->
<para>
</para>
-<!-- ##### MACRO STATUS_VIDEO_END ##### -->
+<!-- ##### MACRO FADE_STARS ##### -->
<para>
</para>
-<!-- ##### FUNCTION RTjpeg_init_decompress ##### -->
+<!-- ##### MACRO PICTURE_DISPLAY_EXTENSION_ID ##### -->
<para>
</para>
-<!-- ##### MACRO SYS_HEADER_START ##### -->
+<!-- ##### MACRO PI64 ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/mem.sgml:Long_Description ##### -->
+<!-- ##### MACRO MC_DMV ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/mantissa.sgml:Long_Description ##### -->
+<!-- ##### MACRO FRAME_PICTURE ##### -->
<para>
</para>
-<!-- ##### FUNCTION MakeFS ##### -->
+<!-- ##### SECTION ./tmpl/main.sgml:Long_Description ##### -->
<para>
</para>
-@vid_stream:
-@flag:
-<!-- ##### FUNCTION RTjpeg_decompressYUV420 ##### -->
+<!-- ##### FUNCTION mpg123_huffman_decoder ##### -->
<para>
</para>
-@sp:
-@bp:
+@Varargs:
+@Param2:
-<!-- ##### MACRO FFT_SIZE ##### -->
+<!-- ##### MACRO CONTINUE_BLOCK ##### -->
<para>
</para>
-<!-- ##### FUNCTION hdr_to_frps ##### -->
+<!-- ##### MACRO MPEGVER1 ##### -->
<para>
</para>
-@Param1:
-<!-- ##### FUNCTION RTjpeg_decompressYUV422 ##### -->
+<!-- ##### MACRO MPEGVER2 ##### -->
<para>
</para>
-@sp:
-@bp:
-<!-- ##### FUNCTION gst_riff_new ##### -->
+<!-- ##### ARG GstV4lSrc:format ##### -->
<para>
</para>
-@Returns:
-<!-- ##### FUNCTION bitstream_close ##### -->
+<!-- ##### FUNCTION gst_smoothwave_chain ##### -->
<para>
</para>
-@bs:
+@pad:
+@buf:
-<!-- ##### MACRO READ_MODE ##### -->
+<!-- ##### FUNCTION ClearMem ##### -->
<para>
</para>
+@m1:
-<!-- ##### FUNCTION parse_auxdata ##### -->
+<!-- ##### MACRO GROUP_START_CODE ##### -->
<para>
</para>
-@syncinfo:
-@gb:
-<!-- ##### MACRO MBSC ##### -->
+<!-- ##### MACRO STUFFING_BYTE ##### -->
<para>
</para>
-<!-- ##### MACRO MPEG1MUX_BUFFER_DATA ##### -->
+<!-- ##### FUNCTION gst_riff_get_chunk_number ##### -->
<para>
</para>
-@mb:
+@riff:
+@number:
+@Returns:
-<!-- ##### TYPEDEF uint_64 ##### -->
+<!-- ##### SECTION ./tmpl/gstriff.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### MACRO CBANDS ##### -->
+<!-- ##### FUNCTION XHInterpolateMem ##### -->
<para>
</para>
+@Returns:
-<!-- ##### FUNCTION I_CRC_calc ##### -->
+<!-- ##### FUNCTION mpg123_head_check ##### -->
<para>
</para>
@Param1:
+@Returns:
-<!-- ##### MACRO EXSC_LENGTH ##### -->
+<!-- ##### MACRO PACKAGE ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_vumeter_chain ##### -->
+<!-- ##### SECTION ./tmpl/downmix.sgml:Long_Description ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### MACRO VIDEO_ELEMENTARY_STREAM ##### -->
+<!-- ##### SECTION ./tmpl/dga.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO GOPSC ##### -->
+<!-- ##### MACRO QUANT_ID ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/prototypes.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/config.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/imdct.sgml:See_Also ##### -->
+<!-- ##### ARG GstAviEncoder:video ##### -->
<para>
</para>
-<!-- ##### MACRO LAST_SCR_BYTE_IN_PACK ##### -->
+<!-- ##### FUNCTION mpg123_compute_bpf ##### -->
<para>
</para>
+@fr:
+@Returns:
-<!-- ##### SECTION ./tmpl/bitstream.sgml:Short_Description ##### -->
+<!-- ##### ARG GstV4lSrc:input ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/qtables.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/acconfig.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/ctables.sgml:Title ##### -->
-ctables
-
-
-<!-- ##### MACRO GTK_OVERLAY_IMAGE_PIXEL_SIZE ##### -->
+<!-- ##### MACRO FFT_SIZE ##### -->
<para>
</para>
-@obj:
-<!-- ##### FUNCTION gst_v4lsrc_push ##### -->
+<!-- ##### SECTION ./tmpl/common.sgml:Title ##### -->
+common
+
+
+<!-- ##### SECTION ./tmpl/common.sgml:Long_Description ##### -->
<para>
</para>
-@src:
-<!-- ##### MACRO STREAMS_BOTH ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/uncouple.sgml:Short_Description ##### -->
-</para>
-<!-- ##### MACRO ZIG_ZAG ##### -->
+<!-- ##### FUNCTION YUVLoadMem ##### -->
<para>
</para>
-<!-- ##### MACRO SC_SPAT ##### -->
+<!-- ##### FUNCTION bitstream_open ##### -->
<para>
</para>
+@file:
+@Returns:
-<!-- ##### FUNCTION RTjpeg_compressYUV420 ##### -->
+<!-- ##### FUNCTION MpegDecodeIPBDFrame ##### -->
<para>
</para>
-@sp:
-@bp:
-@Returns:
+@vid_stream:
-<!-- ##### FUNCTION RTjpeg_compressYUV422 ##### -->
+<!-- ##### FUNCTION CBPEncodeAC ##### -->
<para>
</para>
-@sp:
-@bp:
-@Returns:
+@vid_stream:
+@index:
+@matrix:
-<!-- ##### MACRO DFLT_SFQ ##### -->
+<!-- ##### MACRO MPEG1MUX_BUFFER_DATA ##### -->
<para>
</para>
+@mb:
-<!-- ##### MACRO T_SIF ##### -->
+<!-- ##### SECTION ./tmpl/rematrix.sgml:Title ##### -->
+rematrix
+
+
+<!-- ##### MACRO GST_PARSEWAV_CHUNK_DATA ##### -->
<para>
</para>
-<!-- ##### MACRO QUANT_ID ##### -->
+<!-- ##### TYPEDEF SUB[2][3][SCALE_BLOCK][SBLIMIT] ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/stream.sgml:See_Also ##### -->
+<!-- ##### MACRO GST_PARSEWAV_DATA ##### -->
<para>
</para>
-<!-- ##### FUNCTION cvt_to_wave_test ##### -->
+<!-- ##### FUNCTION Bpos ##### -->
<para>
</para>
+@vid_stream:
+@hp:
+@vp:
+@h:
+@v:
@Returns:
-<!-- ##### FUNCTION gst_mpeg2play_chain ##### -->
+<!-- ##### FUNCTION imdct ##### -->
<para>
</para>
-@pad:
-@buf:
+@bsi:
+@audblk_t:
+@coeffs:
+@samples:
-<!-- ##### SECTION ./tmpl/tables.sgml:Title ##### -->
-tables
+<!-- ##### SECTION ./tmpl/crc.sgml:Short_Description ##### -->
-<!-- ##### FUNCTION bit_allocate ##### -->
+
+<!-- ##### FUNCTION MpegEncodeIPBDFrame ##### -->
<para>
</para>
-@fscod:
-@bsi:
-@audblk:
+@vid_stream:
-<!-- ##### FUNCTION WriteFS ##### -->
+<!-- ##### MACRO PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### MACRO RING_BUF_SIZE ##### -->
+<!-- ##### MACRO DCT_ERROR ##### -->
<para>
</para>
-<!-- ##### MACRO ERRC_LENGTH ##### -->
+<!-- ##### MACRO IQUANT_SCALE ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/crc.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/proto.sgml:Short_Description ##### -->
-<!-- ##### FUNCTION MakeFGroup ##### -->
+<!-- ##### MACRO VSEC_LENGTH ##### -->
<para>
</para>
-@vid_stream:
-
-<!-- ##### SECTION ./tmpl/stream.sgml:Title ##### -->
-stream
-
-<!-- ##### SECTION ./tmpl/parse.sgml:Short_Description ##### -->
+<!-- ##### FUNCTION vcdsrc_get_type ##### -->
+<para>
+</para>
+@Returns:
-<!-- ##### FUNCTION mpg123_synth_1to1 ##### -->
+<!-- ##### FUNCTION gst_xing_new ##### -->
<para>
</para>
-@fr:
-@bandPtr:
-@channel:
-@out:
-@pnt:
+@name:
@Returns:
-<!-- ##### SECTION ./tmpl/vlc.sgml:See_Also ##### -->
+<!-- ##### FUNCTION InitFS ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### MACRO BLKSIZE ##### -->
+<!-- ##### FUNCTION rb_end_read ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/ctables.sgml:Short_Description ##### -->
+<!-- ##### MACRO IN_SLICE_PARSE ##### -->
+<para>
+</para>
-<!-- ##### MACRO MPEG1MUX_BUFFER_QUEUED ##### -->
+<!-- ##### MACRO L_PTYPE ##### -->
<para>
</para>
-@mb:
-<!-- ##### SECTION ./tmpl/common.sgml:See_Also ##### -->
+<!-- ##### MACRO IC_THREE_EIGHTHS ##### -->
<para>
</para>
-<!-- ##### FUNCTION update_CRC ##### -->
+<!-- ##### SECTION ./tmpl/RTjpeg.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### TYPEDEF mb_type_entry ##### -->
<para>
</para>
-@Param1:
-@Param2:
-@Param3:
-
-<!-- ##### SECTION ./tmpl/port.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/buffer.sgml:Title ##### -->
+buffer
-<!-- ##### SECTION ./tmpl/main.sgml:Long_Description ##### -->
+<!-- ##### MACRO EHUFF ##### -->
<para>
</para>
-<!-- ##### MACRO MPEGVER25 ##### -->
+<!-- ##### SECTION ./tmpl/huffman.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### MACRO MARKER_JUST_PTS ##### -->
+<!-- ##### SECTION ./tmpl/dga.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/gstriff.sgml:See_Also ##### -->
+<!-- ##### FUNCTION gst_videosink_dga_init ##### -->
<para>
</para>
+@sink:
+@Returns:
-<!-- ##### MACRO MARKER_NO_TIMESTAMPS ##### -->
+<!-- ##### MACRO SEQUENCE_EXTENSION_ID ##### -->
<para>
</para>
-<!-- ##### MACRO MACROBLOCK_MOTION_FORWARD ##### -->
+<!-- ##### MACRO USER_DATA_START_CODE ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/mpeg2enc.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/l2tables.sgml:Long_Description ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/output.sgml:Long_Description ##### -->
+<!-- ##### ARG GstSynaesthesia:width ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpg123_head_check ##### -->
+<!-- ##### FUNCTION MakeMem ##### -->
<para>
</para>
-@Param1:
+@width:
+@height:
@Returns:
-<!-- ##### MACRO PACKAGE ##### -->
+<!-- ##### MACRO VIDEO_MJPEG ##### -->
<para>
</para>
-<!-- ##### FUNCTION CreateFrameSizes ##### -->
+<!-- ##### MACRO IT_NTSC ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### MACRO MV_FRAME ##### -->
+<!-- ##### MACRO BoundValue ##### -->
<para>
</para>
+@var:
+@lo:
+@hi:
+@str:
-<!-- ##### SECTION ./tmpl/l2tables.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION gst_parseavi_winloader_handle ##### -->
<para>
</para>
+@parseavi:
+@buf:
-<!-- ##### FUNCTION PrintImage ##### -->
+<!-- ##### FUNCTION cvt_to_wave_init ##### -->
<para>
</para>
-@vid_stream:
+@Varargs:
-<!-- ##### FUNCTION gst_mpg123_new ##### -->
+<!-- ##### SECTION ./tmpl/ring_buffer.sgml:See_Also ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### SECTION ./tmpl/globals.sgml:See_Also ##### -->
+<!-- ##### ARG GstV4lSrc:contrast ##### -->
<para>
</para>
-<!-- ##### TYPEDEF JSBS[3][SCALE_BLOCK][SBLIMIT] ##### -->
+<!-- ##### MACRO T_PPM ##### -->
<para>
</para>
-<!-- ##### MACRO TRAP ##### -->
+<!-- ##### MACRO GST_PARSEAVI_UNKNOWN ##### -->
<para>
</para>
-@txt:
-<!-- ##### MACRO BITS_IN_A_BYTE ##### -->
+<!-- ##### SECTION ./tmpl/decoders.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpeg1mux_buffer_shrink ##### -->
+<!-- ##### ARG GstSmoothWave:width ##### -->
<para>
</para>
-@mb:
-@size:
-<!-- ##### FUNCTION bitstream_open ##### -->
+<!-- ##### MACRO NOISY_MIN_MNR ##### -->
<para>
</para>
-@file:
-@Returns:
-<!-- ##### SECTION ./tmpl/size.sgml:Title ##### -->
-size
+<!-- ##### MACRO DecodeMotionVectors ##### -->
+<para>
+
+</para>
+@gb:
+@value:
-<!-- ##### FUNCTION gst_example_new ##### -->
+<!-- ##### MACRO ERROR_PARAMETER ##### -->
<para>
</para>
-@name:
+
+<!-- ##### FUNCTION SavePartialMem ##### -->
+<para>
+
+</para>
+
+@filename:
+@pwidth:
+@pheight:
+@mem:
@Returns:
-<!-- ##### FUNCTION gst_smoothwave_new ##### -->
+<!-- ##### SECTION ./tmpl/main.sgml:Title ##### -->
+main
+
+
+<!-- ##### FUNCTION MakeSuperMem ##### -->
<para>
</para>
-@name:
@Returns:
<!-- ##### MACRO KB_OK ##### -->
@@ -5429,364 +5705,398 @@ size
</para>
-<!-- ##### MACRO sputc ##### -->
+<!-- ##### FUNCTION SetCCITT ##### -->
<para>
</para>
-@b:
+@vid_stream:
-<!-- ##### SECTION ./tmpl/grab.sgml:Long_Description ##### -->
+<!-- ##### ARG GstV4lSrc:tuned ##### -->
<para>
</para>
-<!-- ##### ARG VCDSrc:track ##### -->
+<!-- ##### FUNCTION LoadPartialMem ##### -->
<para>
</para>
+@filename:
+@pwidth:
+@pheight:
+@width:
+@height:
+@omem:
+@Returns:
-<!-- ##### MACRO PARSE_OK ##### -->
+<!-- ##### FUNCTION ReadHeaderHeader ##### -->
<para>
</para>
+@vid_stream:
+@Returns:
-<!-- ##### MACRO FRAME_TYPE_BFRAME ##### -->
+<!-- ##### MACRO MAXIMUM_SOURCES ##### -->
<para>
</para>
-<!-- ##### MACRO MPEG2PLAY_FORMAT ##### -->
+<!-- ##### SECTION ./tmpl/gtkxvimage.sgml:Title ##### -->
+GtkXvImage
+
+
+<!-- ##### FUNCTION gst_vumeter_chain ##### -->
<para>
</para>
-@mp:
+@pad:
+@buf:
-<!-- ##### MACRO DCT_COEFF_NEXT ##### -->
+<!-- ##### TYPEDEF UINT8 ##### -->
<para>
</para>
-<!-- ##### MACRO ERROR_MARKER_STRUCTURE ##### -->
+<!-- ##### MACRO EXP_REUSE ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_vumeter_new ##### -->
+<!-- ##### FUNCTION mpeg1encoder_new_picture ##### -->
<para>
</para>
-@name:
+@vid_stream:
+@data:
+@size:
+@state:
@Returns:
-<!-- ##### MACRO WINBITS ##### -->
+<!-- ##### SECTION ./tmpl/jdw.sgml:Title ##### -->
+jdw
+
+
+<!-- ##### ARG GstVuMeter:volume_right ##### -->
<para>
</para>
-<!-- ##### MACRO sputv ##### -->
+<!-- ##### SECTION ./tmpl/tables.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### MACRO DCTSATURATE ##### -->
+<!-- ##### FUNCTION readalign ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### MACRO VCDSRC ##### -->
+<!-- ##### FUNCTION parser ##### -->
<para>
</para>
-@obj:
-<!-- ##### MACRO GTK_OVERLAY_IMAGE_TYPE ##### -->
+<!-- ##### ARG GstSmooth:filtersize ##### -->
<para>
</para>
-@obj:
-<!-- ##### MACRO TYPE_FORMAT ##### -->
+<!-- ##### MACRO T_YUV ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/mhead.sgml:See_Also ##### -->
+<!-- ##### MACRO AUDIO_STR_0 ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/gtkxvimage.sgml:Long_Description ##### -->
+<!-- ##### MACRO AFTER_PACKET_LENGTH ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/musicin.sgml:Long_Description ##### -->
+<!-- ##### MACRO PATH_SEPARATOR ##### -->
<para>
</para>
-<!-- ##### MACRO WRITE_MODE ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/video.sgml:Short_Description ##### -->
-</para>
-<!-- ##### FUNCTION ClearToHeader ##### -->
+<!-- ##### FUNCTION uncouple ##### -->
<para>
</para>
-@vid_stream:
-@Returns:
+@bsi:
+@audblk:
+@coeffs:
-<!-- ##### MACRO IT_NTSC ##### -->
+<!-- ##### FUNCTION create_sector ##### -->
<para>
</para>
+@sector:
+@pack:
+@sys_header:
+@packet_size:
+@inputbuffer:
+@type:
+@buffer_scale:
+@buffer_size:
+@buffers:
+@PTS:
+@DTS:
+@timestamps:
+@which_streams:
-<!-- ##### MACRO BoundValue ##### -->
+<!-- ##### FUNCTION XVInterpolateMem ##### -->
<para>
</para>
-@var:
-@lo:
-@hi:
-@str:
+@Returns:
-<!-- ##### MACRO DCTSIZE ##### -->
+<!-- ##### FUNCTION WriteScale ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/ring_buffer.sgml:See_Also ##### -->
+<!-- ##### MACRO ERROR_HUFFMAN_ENCODE ##### -->
<para>
</para>
-<!-- ##### MACRO MACROBLOCK_INTRA ##### -->
+<!-- ##### FUNCTION mpg123_synth_1to1_pent ##### -->
<para>
</para>
+@bandPtr:
+@channel:
+@out:
+@Returns:
-<!-- ##### SECTION ./tmpl/decode.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/mem.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO TONE ##### -->
<para>
</para>
-<!-- ##### FUNCTION ByteAlign ##### -->
+<!-- ##### FUNCTION InstallIob ##### -->
<para>
</para>
@vid_stream:
+@index:
-<!-- ##### MACRO MAX_NAME_SIZE ##### -->
+<!-- ##### MACRO FADE_FLAME ##### -->
<para>
</para>
-<!-- ##### MACRO DecodeMotionVectors ##### -->
+<!-- ##### MACRO MB_QUANTUM ##### -->
<para>
</para>
-@gb:
-@value:
-<!-- ##### FUNCTION ZigzagMatrix ##### -->
+<!-- ##### TYPEDEF DCTCOEF ##### -->
<para>
</para>
-@imatrix:
-@omatrix:
-<!-- ##### FUNCTION mantissa_unpack ##### -->
+<!-- ##### FUNCTION CECASHInterpolateMem ##### -->
<para>
</para>
-@bsi:
-@audblk:
-@gb:
+@Returns:
-<!-- ##### FUNCTION BitrateIndex ##### -->
+<!-- ##### FUNCTION PrintFrame ##### -->
<para>
</para>
-@Varargs:
-@Varargs:
-@Returns:
+@vid_stream:
-<!-- ##### SECTION ./tmpl/mpeg2enc.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/decode.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO SEQUENCE_END_CODE ##### -->
+<!-- ##### ENUM VCDSrcFlags ##### -->
<para>
</para>
+@VCDSRC_OPEN:
-<!-- ##### SECTION ./tmpl/tableawd.sgml:Title ##### -->
-tableawd
-
+<!-- ##### SECTION ./tmpl/port.sgml:See_Also ##### -->
+<para>
-<!-- ##### SECTION ./tmpl/debug.sgml:Title ##### -->
-debug
+</para>
-<!-- ##### FUNCTION pick_table ##### -->
+<!-- ##### MACRO SPATSCAL_ID ##### -->
<para>
</para>
-@Param1:
-@Returns:
-<!-- ##### FUNCTION gst_parseavi_new ##### -->
+<!-- ##### MACRO T_TGA ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### FUNCTION rb_end_write ##### -->
+<!-- ##### TYPEDEF sint_8 ##### -->
<para>
</para>
-<!-- ##### MACRO MC_DMV ##### -->
+<!-- ##### SECTION ./tmpl/param.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### MACRO ERROR_PREMATURE_EOF ##### -->
+<!-- ##### STRUCT GdkXvImagePrivate ##### -->
<para>
</para>
+@image:
+@x_shm_info:
+@im_adaptor:
+@im_port:
+@im_format:
+
+<!-- ##### SECTION ./tmpl/ctables.sgml:Short_Description ##### -->
-<!-- ##### SECTION ./tmpl/proto.sgml:Title ##### -->
-proto
-<!-- ##### MACRO MINIMUM ##### -->
+<!-- ##### SECTION ./tmpl/util.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/decoders.sgml:Long_Description ##### -->
+<!-- ##### MACRO MPEG2PLAY_FORMAT ##### -->
<para>
</para>
+@mp:
-<!-- ##### SECTION ./tmpl/acconfig.sgml:Title ##### -->
-acconfig
-
-
-<!-- ##### MACRO RUN_MASK ##### -->
+<!-- ##### FUNCTION CBPDecodeAC ##### -->
<para>
</para>
+@vid_stream:
+@index:
+@matrix:
-<!-- ##### MACRO IN_SLICE_PARSE ##### -->
+<!-- ##### FUNCTION mpeg1encoder_new_encoder ##### -->
<para>
</para>
+@Returns:
-<!-- ##### MACRO SKIP_TO_START_CODE ##### -->
+<!-- ##### FUNCTION gst_smooth_new ##### -->
<para>
</para>
+@name:
+@Returns:
-<!-- ##### SECTION ./tmpl/gtkoverlayimage.sgml:Short_Description ##### -->
+<!-- ##### TYPEDEF uint_16 ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/RTjpeg.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/prototypes.sgml:Long_Description ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION read_bit_alloc ##### -->
+<!-- ##### MACRO L_BVAR ##### -->
<para>
</para>
-@Varargs:
-@Param2:
-@Returns:
-<!-- ##### SECTION ./tmpl/config.sgml:See_Also ##### -->
+<!-- ##### MACRO GST_PARSEAVI_STRH_AUDS ##### -->
<para>
</para>
-<!-- ##### MACRO BLOCK_LAYER ##### -->
+<!-- ##### FUNCTION read_bit_alloc ##### -->
<para>
</para>
+@Varargs:
+@Param2:
+@Returns:
-<!-- ##### MACRO SCALE ##### -->
+<!-- ##### MACRO BUFFER_TYPE_VIDEO ##### -->
<para>
</para>
-<!-- ##### MACRO SYS_HEADER_LENGTH ##### -->
+<!-- ##### SECTION ./tmpl/huffman.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION TimeCode2Integer ##### -->
+<!-- ##### MACRO DVD_VIDEO_LB_LEN ##### -->
<para>
</para>
-@vid_stream:
-@tc:
-@Returns:
-<!-- ##### TYPEDEF IN[2][HAN_SIZE] ##### -->
+<!-- ##### MACRO RUN_SHIFT ##### -->
<para>
</para>
@@ -5798,322 +6108,315 @@ acconfig
</para>
-<!-- ##### MACRO ERRC ##### -->
+<!-- ##### SECTION ./tmpl/uncouple.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_v4lsrc_new ##### -->
+<!-- ##### MACRO ILBOUND ##### -->
<para>
</para>
-@name:
-@Returns:
+@ptr:
+@index:
+@value:
-<!-- ##### SECTION ./tmpl/core.sgml:See_Also ##### -->
+<!-- ##### MACRO MARKER_PTS ##### -->
<para>
</para>
-<!-- ##### MACRO VIDEO_RGB08 ##### -->
+<!-- ##### FUNCTION parse_syncinfo ##### -->
<para>
</para>
+@syncinfo:
+@gb:
-<!-- ##### FUNCTION OpenTableFile ##### -->
+<!-- ##### FUNCTION memcheck ##### -->
<para>
</para>
@Param1:
+@Varargs:
+@Varargs:
@Returns:
-<!-- ##### FUNCTION gst_example_chain ##### -->
+<!-- ##### MACRO srtell ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### MACRO MUTE ##### -->
+<!-- ##### FUNCTION IZigzagMatrix ##### -->
<para>
</para>
+@imatrix:
+@omatrix:
-<!-- ##### MACRO L_IVAR ##### -->
+<!-- ##### FUNCTION SM0HInterpolateMem ##### -->
<para>
</para>
+@Returns:
-<!-- ##### FUNCTION initparser ##### -->
+<!-- ##### ARG GstVolume:volume ##### -->
<para>
</para>
-<!-- ##### FUNCTION gtk_xvimage_set ##### -->
+<!-- ##### MACRO DC_ONE_EIGHTH ##### -->
<para>
</para>
-@image:
-@val:
-<!-- ##### FUNCTION RTjpeg_yuvrgb8 ##### -->
+<!-- ##### FUNCTION JP0VDecimateMem ##### -->
<para>
</para>
-@buf:
-@rgb:
+@Returns:
-<!-- ##### FUNCTION i_audio_decode_info ##### -->
+<!-- ##### SECTION ./tmpl/L3.sgml:Long_Description ##### -->
<para>
</para>
-@info:
-<!-- ##### FUNCTION gst_parseavi_chain ##### -->
+<!-- ##### SECTION ./tmpl/vlc.sgml:See_Also ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### FUNCTION ReadGOPHeader ##### -->
+<!-- ##### MACRO MAXIMUM_FGROUP ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION mropen ##### -->
<para>
</para>
@vid_stream:
+@filename:
-<!-- ##### MACRO MARKER_DTS ##### -->
+<!-- ##### VARIABLE mpg123_conv16to8 ##### -->
<para>
</para>
-<!-- ##### MACRO PI4 ##### -->
+<!-- ##### MACRO IT_CIF ##### -->
<para>
</para>
-<!-- ##### FUNCTION ReadHeaderHeader ##### -->
+<!-- ##### FUNCTION gst_jpegdec_chain ##### -->
<para>
</para>
-@vid_stream:
-@Returns:
+@pad:
+@buf:
-<!-- ##### FUNCTION mrtell ##### -->
+<!-- ##### TYPEDEF uint_32 ##### -->
<para>
</para>
-@vid_stream:
-@Returns:
-<!-- ##### MACRO SEQ_START_CODE ##### -->
+<!-- ##### ARG GstSmoothWave:widget ##### -->
<para>
</para>
-<!-- ##### FUNCTION mropen ##### -->
+<!-- ##### MACRO SIXTYFOUR_BIT ##### -->
<para>
</para>
-@vid_stream:
-@filename:
-<!-- ##### FUNCTION EncodeAC ##### -->
+<!-- ##### FUNCTION extended_to_double ##### -->
<para>
</para>
-@vid_stream:
-@index:
-@matrix:
+@Param1:
+@Param2:
-<!-- ##### FUNCTION ReferenceIDct ##### -->
+<!-- ##### SECTION ./tmpl/acconfig.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO RESERVED_BYTE ##### -->
<para>
</para>
-@matrix:
-@newmatrix:
-<!-- ##### SECTION ./tmpl/main.sgml:See_Also ##### -->
+<!-- ##### MACRO SEQ_ID ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_jpeg_chain ##### -->
+<!-- ##### SECTION ./tmpl/dct.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/stamp.sgml:See_Also ##### -->
<para>
</para>
-@pad:
-@buf:
-<!-- ##### SECTION ./tmpl/htable.sgml:Title ##### -->
-htable
+<!-- ##### SECTION ./tmpl/downmix.sgml:Title ##### -->
+downmix
-<!-- ##### SECTION ./tmpl/L3.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/core.sgml:Short_Description ##### -->
-<!-- ##### MACRO PICTURE_CODING_EXTENSION_ID ##### -->
+<!-- ##### MACRO swclose ##### -->
<para>
</para>
-<!-- ##### FUNCTION MoveTo ##### -->
+<!-- ##### FUNCTION mpeg2play_new_decoder ##### -->
<para>
</para>
-@vid_stream:
-@hp:
-@vp:
-@h:
-@v:
+@Returns:
-<!-- ##### SECTION ./tmpl/bit_allocate.sgml:Long_Description ##### -->
+<!-- ##### MACRO MPEG2_PACKHEAD ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/gstriff.sgml:Title ##### -->
-gstriff
-
-
-<!-- ##### FUNCTION WriteVSHeader ##### -->
+<!-- ##### MACRO GST_PARSEAVI_MAX_AUDIO_PADS ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### MACRO BS_FORMAT ##### -->
+<!-- ##### MACRO P_PREDICTED ##### -->
<para>
</para>
-<!-- ##### MACRO SEEK_END ##### -->
+<!-- ##### MACRO PACKET_START ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/crc.sgml:Title ##### -->
-crc
-
-
-<!-- ##### MACRO PICTURE_START_CODE ##### -->
+<!-- ##### MACRO L_QOFFS ##### -->
<para>
</para>
-<!-- ##### MACRO MS_DOS ##### -->
+<!-- ##### ARG GstV4lSrc:mute ##### -->
<para>
</para>
-<!-- ##### MACRO SSLIMIT ##### -->
+<!-- ##### MACRO MB_ESCAPE ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/exponent.sgml:Short_Description ##### -->
+<!-- ##### MACRO LITTLE_ENDIAN_ARCHITECTURE ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/dct.sgml:See_Also ##### -->
+<!-- ##### ARG GstVuMeter:volume_left ##### -->
<para>
</para>
-<!-- ##### MACRO NUM_ATTR ##### -->
+<!-- ##### FUNCTION exponent_unpack ##### -->
<para>
</para>
+@bsi:
+@audblk:
+@coeffs:
-<!-- ##### SECTION ./tmpl/downmix.sgml:Title ##### -->
-downmix
-
-
-<!-- ##### SECTION ./tmpl/config.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION WriteFS ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### SECTION ./tmpl/video.sgml:Long_Description ##### -->
+<!-- ##### MACRO RING_BUF_SIZE ##### -->
<para>
</para>
-<!-- ##### FUNCTION UDFOpenDisc ##### -->
+<!-- ##### FUNCTION mwclose ##### -->
<para>
</para>
-@filename:
-@Returns:
+@vid_stream:
-<!-- ##### MACRO T_Y_U_V ##### -->
+<!-- ##### MACRO SLICE_MIN_START ##### -->
<para>
</para>
-<!-- ##### MACRO VIDEO_RGB24 ##### -->
+<!-- ##### ARG GstVideoSink:frame_time ##### -->
<para>
</para>
-<!-- ##### MACRO UNPACK_LFE ##### -->
+<!-- ##### MACRO DecodeDCTCoeffNext ##### -->
<para>
</para>
+@gb:
+@runval:
+@levelval:
-<!-- ##### MACRO MB_QUANTUM ##### -->
+<!-- ##### MACRO VIDEO_RGB15_BE ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/config.sgml:Title ##### -->
-config
-
-
-<!-- ##### FUNCTION RTjpeg_yuv420rgb ##### -->
+<!-- ##### FUNCTION RTjpeg_yuv422rgb ##### -->
<para>
</para>
@@ -6121,679 +6424,684 @@ config
@buf:
@rgb:
-<!-- ##### FUNCTION gst_parseau_chain ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/size.sgml:Short_Description ##### -->
-</para>
-@pad:
-@buf:
-<!-- ##### SECTION ./tmpl/bitstream.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION CECASVInterpolateMem ##### -->
<para>
</para>
+@Returns:
-<!-- ##### MACRO STARTCODE_FOUND ##### -->
+<!-- ##### MACRO ALL_LAYERS ##### -->
<para>
</para>
-<!-- ##### MACRO MBSC_LENGTH ##### -->
+<!-- ##### ARG GstV4lSrc:width ##### -->
<para>
</para>
-<!-- ##### FUNCTION quant_weight_coeff_sum ##### -->
+<!-- ##### FUNCTION RTjpeg_mcompress ##### -->
<para>
</para>
-@blk:
-@i_quant_mat:
+@sp:
+@bp:
+@lmask:
+@cmask:
@Returns:
-<!-- ##### SECTION ./tmpl/param.sgml:Short_Description ##### -->
+<!-- ##### MACRO BINARY ##### -->
+<para>
+</para>
-<!-- ##### TYPEDEF dct_dc_size_entry ##### -->
+<!-- ##### MACRO DVD_UDF_VERSION ##### -->
<para>
</para>
-<!-- ##### TYPEDEF motion_vectors_entry ##### -->
+<!-- ##### SECTION ./tmpl/stamp.sgml:Title ##### -->
+stamp
+
+
+<!-- ##### MACRO DecodeMBTypeB ##### -->
<para>
</para>
+@gb:
+@quant:
+@motion_fwd:
+@motion_bwd:
+@pat:
+@intra:
-<!-- ##### SECTION ./tmpl/gdkxvimage.sgml:Title ##### -->
-gdkxvimage
+<!-- ##### SECTION ./tmpl/dct.sgml:Title ##### -->
+dct
-<!-- ##### TYPEDEF SAMPLEINT ##### -->
+<!-- ##### FUNCTION stats_print_banner ##### -->
<para>
</para>
+@syncinfo:
+@bsi:
-<!-- ##### STRUCT GstRiffChunk ##### -->
+<!-- ##### MACRO GTK_OVERLAY_IMAGE_DEPTH ##### -->
<para>
</para>
-@offset:
-@id:
-@size:
+@obj:
-<!-- ##### TYPEDEF INT16 ##### -->
+<!-- ##### MACRO UNPACK_CPL ##### -->
<para>
</para>
-<!-- ##### FUNCTION rb_begin_read ##### -->
+<!-- ##### MACRO DecodeMBTypeI ##### -->
<para>
</para>
-@Returns:
+@gb:
+@quant:
+@motion_fwd:
+@motion_bwd:
+@pat:
+@intra:
-<!-- ##### TYPEDEF SBS[2][3][SCALE_BLOCK][SBLIMIT] ##### -->
+<!-- ##### MACRO GTK_OVERLAY_IMAGE_PIXEL_SIZE ##### -->
<para>
</para>
+@obj:
-<!-- ##### MACRO LEVEL_SHIFT ##### -->
+<!-- ##### FUNCTION gst_median_chain ##### -->
<para>
</para>
+@pad:
+@buf:
-<!-- ##### MACRO VIDEO_RGB32 ##### -->
+<!-- ##### FUNCTION SM0VDecimateMem ##### -->
<para>
</para>
+@Returns:
+
+<!-- ##### SECTION ./tmpl/output.sgml:Short_Description ##### -->
-<!-- ##### FUNCTION crc_process ##### -->
+
+
+<!-- ##### SECTION ./tmpl/buffer.sgml:Long_Description ##### -->
<para>
</para>
-@data:
-<!-- ##### MACRO SEQSCAL_ID ##### -->
+<!-- ##### MACRO DecodeMBTypeP ##### -->
<para>
</para>
+@gb:
+@quant:
+@motion_fwd:
+@motion_bwd:
+@pat:
+@intra:
-<!-- ##### FUNCTION WriteGOPHeader ##### -->
+<!-- ##### FUNCTION CreateFrameSizes ##### -->
<para>
</para>
@vid_stream:
-<!-- ##### MACRO BOOLEAN ##### -->
+<!-- ##### MACRO FRAME_TYPE_PFRAME ##### -->
<para>
</para>
-<!-- ##### MACRO AIX ##### -->
+<!-- ##### MACRO IFF_ID_COMM ##### -->
<para>
</para>
-<!-- ##### MACRO TIMESTAMPS_NO ##### -->
+<!-- ##### FUNCTION parse_audblk ##### -->
<para>
</para>
+@bsi:
+@audblk:
+@gb:
-<!-- ##### TYPEDEF DCTBLOCK[DCTSIZE2] ##### -->
+<!-- ##### MACRO PACK_HEADER_SIZE ##### -->
<para>
</para>
-<!-- ##### TYPEDEF iFunc() ##### -->
+<!-- ##### SECTION ./tmpl/tables.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO FRAME_TYPE_PFRAME ##### -->
+<!-- ##### SECTION ./tmpl/huffman.sgml:Title ##### -->
+huffman
+
+
+<!-- ##### FUNCTION RTjpeg_init_compress ##### -->
<para>
</para>
-<!-- ##### FUNCTION DecodeAC ##### -->
+<!-- ##### SECTION ./tmpl/param.sgml:Title ##### -->
+param
+
+
+<!-- ##### MACRO GLOBAL ##### -->
<para>
</para>
-@vid_stream:
-@index:
-@matrix:
-<!-- ##### MACRO ERROR_HUFFMAN_READ ##### -->
+<!-- ##### MACRO STEREO ##### -->
<para>
</para>
-<!-- ##### FUNCTION aiff_read_headers ##### -->
+<!-- ##### SECTION ./tmpl/system.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/l2tables.sgml:Title ##### -->
+l2tables
+
+
+<!-- ##### MACRO IOBUF ##### -->
<para>
</para>
-@Param1:
-@Param2:
-@Returns:
-<!-- ##### FUNCTION putbits_new_buffer ##### -->
+<!-- ##### FUNCTION SetMem ##### -->
<para>
</para>
-@pb:
-@buffer:
-@len:
+@value:
+@m1:
-<!-- ##### MACRO GRAB_ATTR_MUTE ##### -->
+<!-- ##### MACRO SLICE_MAX_START_CODE ##### -->
<para>
</para>
-<!-- ##### FUNCTION i_audio_decode_init ##### -->
+<!-- ##### FUNCTION SonyHInterpolateMem ##### -->
<para>
</para>
-@h:
-@framebytes_arg:
-@reduction_code:
-@transform_code:
-@convert_code:
-@freq_limit:
@Returns:
-<!-- ##### MACRO GLOBAL ##### -->
+<!-- ##### TYPEDEF uint_64 ##### -->
<para>
</para>
-<!-- ##### FUNCTION get_number_of_input_bytes ##### -->
+<!-- ##### SECTION ./tmpl/rematrix.sgml:Long_Description ##### -->
<para>
</para>
-@enc:
-@Returns:
-<!-- ##### MACRO DFLT_BRT ##### -->
+<!-- ##### MACRO ERROR_BOUNDS ##### -->
<para>
</para>
-<!-- ##### FUNCTION SM0HDecimateMem ##### -->
+<!-- ##### MACRO L_MQUANT ##### -->
<para>
</para>
-@Returns:
-<!-- ##### FUNCTION EncodeDC ##### -->
+<!-- ##### MACRO TOP_FIELD ##### -->
<para>
</para>
-@vid_stream:
-@coef:
-@LocalEHuff:
-<!-- ##### MACRO L_RATE ##### -->
+<!-- ##### FUNCTION I_CRC_calc ##### -->
<para>
</para>
+@Param1:
-<!-- ##### MACRO NULL_CHAR ##### -->
+<!-- ##### FUNCTION SM0VInterpolateMem ##### -->
<para>
</para>
+@Returns:
-<!-- ##### TYPEDEF DCTCOEF ##### -->
+<!-- ##### FUNCTION MakeBlock ##### -->
<para>
</para>
+@Returns:
-<!-- ##### MACRO START_BLOCK ##### -->
+<!-- ##### FUNCTION NumericQ ##### -->
<para>
</para>
+@Param1:
+@Returns:
-<!-- ##### MACRO GetFlag ##### -->
+<!-- ##### TYPEDEF SAMPLEINT ##### -->
<para>
</para>
-@value:
-@flag:
-<!-- ##### MACRO MAIN_LEVEL ##### -->
+<!-- ##### SECTION ./tmpl/grab.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION inithuff ##### -->
+<!-- ##### MACRO MPEG1MUX_BUFFER_FIRST_TIMECODE ##### -->
<para>
</para>
-@vid_stream:
+@mb:
-<!-- ##### FUNCTION head_info ##### -->
+<!-- ##### SECTION ./tmpl/vlc.sgml:Long_Description ##### -->
<para>
</para>
-@buf:
-@n:
-@h:
-@Returns:
-<!-- ##### MACRO SLICE_MIN_START ##### -->
+<!-- ##### SECTION ./tmpl/main.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO B_TYPE ##### -->
+<!-- ##### FUNCTION gst_mpeg1encoder_chain ##### -->
<para>
</para>
+@pad:
+@buf:
-<!-- ##### SECTION ./tmpl/exponent.sgml:Long_Description ##### -->
+<!-- ##### MACRO GST_PARSEWAV_CHUNK_FMT ##### -->
<para>
</para>
-<!-- ##### MACRO IN_PICTURE_PARSE ##### -->
+<!-- ##### MACRO VIDEO_LUT2 ##### -->
<para>
</para>
-<!-- ##### MACRO TALK ##### -->
+<!-- ##### MACRO MC_16X8 ##### -->
<para>
</para>
-<!-- ##### MACRO SKIP_JUNK ##### -->
+<!-- ##### MACRO VIDEO_LUT4 ##### -->
<para>
</para>
-<!-- ##### TYPEDEF INT32 ##### -->
+<!-- ##### SECTION ./tmpl/putbits.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_windec_new ##### -->
+<!-- ##### FUNCTION BoundIntegerMatrix ##### -->
<para>
</para>
-@name:
-@Returns:
+@matrix:
-<!-- ##### VARIABLE global_prefs ##### -->
+<!-- ##### TYPEDEF vFunc() ##### -->
<para>
</para>
-<!-- ##### MACRO SEEK_CUR ##### -->
+<!-- ##### MACRO TYPE_FORMAT ##### -->
<para>
</para>
-<!-- ##### FUNCTION MakeFileNames ##### -->
+<!-- ##### SECTION ./tmpl/stamp.sgml:Long_Description ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### FUNCTION mpg123_huffman_decoder ##### -->
+<!-- ##### MACRO FADE_WAVE ##### -->
<para>
</para>
-@Varargs:
-@Param2:
-<!-- ##### SECTION ./tmpl/grab.sgml:Short_Description ##### -->
+<!-- ##### FUNCTION set_mac_file_attr ##### -->
+<para>
+</para>
-<!-- ##### MACRO IFF_ID_AIFF ##### -->
+<!-- ##### MACRO BLOCKHEIGHT ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/buffer.sgml:Title ##### -->
-buffer
+<!-- ##### SECTION ./tmpl/mpg123.sgml:Short_Description ##### -->
-<!-- ##### MACRO gst_cobin_destroy ##### -->
+
+<!-- ##### MACRO ASM_X86_OLD ##### -->
<para>
</para>
-@cobin:
-<!-- ##### FUNCTION gst_videosink_new ##### -->
+<!-- ##### MACRO LEVEL_MASK ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### TYPEDEF INT8 ##### -->
+<!-- ##### MACRO IMAGE ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/dga.sgml:Long_Description ##### -->
+<!-- ##### MACRO DISPLAY_LOCK ##### -->
<para>
</para>
-<!-- ##### MACRO L_SQUANT ##### -->
+<!-- ##### FUNCTION ReadFS ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### MACRO ALIGNING ##### -->
-<para>
-
-</para>
+<!-- ##### SECTION ./tmpl/mem.sgml:Title ##### -->
+mem
-<!-- ##### FUNCTION gdk_xvimage_new ##### -->
+<!-- ##### FUNCTION WriteVEHeader ##### -->
<para>
</para>
-@type:
-@width:
-@height:
-@Returns:
+@vid_stream:
-<!-- ##### MACRO SCALE_BLOCK ##### -->
+<!-- ##### ARG GstSynaesthesia:height ##### -->
<para>
</para>
-<!-- ##### MACRO FADE_FLAME ##### -->
+<!-- ##### SECTION ./tmpl/grab.sgml:Title ##### -->
+grab
+
+
+<!-- ##### FUNCTION PrintTable ##### -->
<para>
</para>
+@table:
-<!-- ##### TYPEDEF D1408[1408] ##### -->
+<!-- ##### MACRO GRAB_ATTR_MODE ##### -->
<para>
</para>
-<!-- ##### MACRO NO_LAYER ##### -->
+<!-- ##### SECTION ./tmpl/encoder.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### FUNCTION SavePartialMem ##### -->
+<!-- ##### FUNCTION i_audio_decode ##### -->
<para>
</para>
-@filename:
-@pwidth:
-@pheight:
-@mem:
+@bs:
+@pcm:
@Returns:
-<!-- ##### SECTION ./tmpl/vlc.sgml:Short_Description ##### -->
+<!-- ##### FUNCTION alignbits ##### -->
+<para>
+</para>
+@pb:
-<!-- ##### FUNCTION i_audio_decode ##### -->
+<!-- ##### SECTION ./tmpl/parse.sgml:Long_Description ##### -->
<para>
</para>
-@bs:
-@pcm:
-@Returns:
-<!-- ##### FUNCTION FreeMem ##### -->
+<!-- ##### MACRO PAST_LOCK ##### -->
<para>
</para>
-@mem:
-<!-- ##### FUNCTION Add2Compensate ##### -->
+<!-- ##### STRUCT GstParseWavFormat ##### -->
<para>
</para>
-@vid_stream:
-@matrix:
-@XIob:
-@YIob:
+@wFormatTag:
+@wChannels:
+@dwSamplesPerSec:
+@dwAvgBytesPerSec:
+@wBlockAlign:
+@wBitsPerSample:
-<!-- ##### FUNCTION Statistics ##### -->
+<!-- ##### MACRO DecodeDCTDCSizeChrom ##### -->
<para>
</para>
-@vid_stream:
-@RefFS:
-@NewFS:
+@gb:
+@macro_val:
-<!-- ##### FUNCTION DecodeDC ##### -->
+<!-- ##### MACRO FLOAT ##### -->
<para>
</para>
-@vid_stream:
-@LocalDHuff:
-@Returns:
-<!-- ##### FUNCTION gst_riff_get_chunk ##### -->
+<!-- ##### FUNCTION cvt_to_wave ##### -->
<para>
</para>
-@riff:
-@fourcc:
+@Param1:
+@Param2:
@Returns:
-<!-- ##### MACRO RATE ##### -->
+<!-- ##### SECTION ./tmpl/tableawd.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### TYPEDEF D9[9] ##### -->
+<!-- ##### FUNCTION gtk_xvimage_new ##### -->
<para>
</para>
+@val:
+@Returns:
-<!-- ##### STRUCT Mpeg1MuxBuffer ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/decoders.sgml:Short_Description ##### -->
-</para>
-@buffer:
-@length:
-@base:
-@scan_pos:
-@last_pos:
-@current_start:
-@buffer_type:
-@stream_id:
-@new_frame:
-@next_frame_time:
-<!-- ##### MACRO DFLT_LAY ##### -->
+<!-- ##### SECTION ./tmpl/mantissa.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION stats_print_banner ##### -->
+<!-- ##### MACRO ERROR_PREMATURE_EOF ##### -->
<para>
</para>
-@syncinfo:
-@bsi:
-<!-- ##### MACRO EXP_REUSE ##### -->
+<!-- ##### SECTION ./tmpl/grab.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### TYPEDEF DCTtab ##### -->
+<!-- ##### MACRO LEVEL_SHIFT ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_parseavi_get_audio_srcpad ##### -->
+<!-- ##### FUNCTION rb_begin_write ##### -->
<para>
</para>
-@parseavi:
-@pad_nr:
-@strf:
@Returns:
-<!-- ##### MACRO GLOBAL_GAIN_SCALE ##### -->
+<!-- ##### MACRO ERROR_MEMORY ##### -->
<para>
</para>
-<!-- ##### MACRO MAX_SNR ##### -->
+<!-- ##### SECTION ./tmpl/mem.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO STUFFING_BYTE ##### -->
+<!-- ##### FUNCTION gst_parseau_new ##### -->
<para>
</para>
+@name:
+@Returns:
-<!-- ##### SECTION ./tmpl/qtables.sgml:See_Also ##### -->
+<!-- ##### MACRO WINBITS ##### -->
<para>
</para>
-<!-- ##### FUNCTION ClearMatrix ##### -->
+<!-- ##### TYPEDEF mb_addr_inc_entry ##### -->
<para>
</para>
-@matrix:
-<!-- ##### FUNCTION mpg123_compute_tpf ##### -->
+<!-- ##### MACRO SKIP_TO_START_CODE ##### -->
<para>
</para>
-@fr:
-@Returns:
-<!-- ##### MACRO FADE_WAVE ##### -->
+<!-- ##### FUNCTION ParityMem ##### -->
<para>
</para>
+@Returns:
-<!-- ##### FUNCTION PrintMatrix ##### -->
+<!-- ##### MACRO MPG_LAYER_1 ##### -->
<para>
</para>
-@matrix:
-<!-- ##### MACRO NEW_PICTURE ##### -->
+<!-- ##### MACRO MPG_LAYER_2 ##### -->
<para>
</para>
-<!-- ##### MACRO QUANT_MATRIX_EXTENSION_ID ##### -->
+<!-- ##### MACRO GRAB_ATTR_HUE ##### -->
<para>
</para>
-<!-- ##### MACRO MV_FIELD ##### -->
+<!-- ##### MACRO MPG_LAYER_3 ##### -->
<para>
</para>
-<!-- ##### VARIABLE Clip ##### -->
+<!-- ##### MACRO UDSC ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_xa_chain ##### -->
+<!-- ##### FUNCTION gst_videosink_chain ##### -->
<para>
</para>
@@ -6801,259 +7109,267 @@ buffer
@pad:
@buf:
-<!-- ##### MACRO VIDEO_MJPEG ##### -->
+<!-- ##### MACRO gst_cobin_destroy ##### -->
<para>
</para>
+@cobin:
-<!-- ##### SECTION ./tmpl/huffman.sgml:Title ##### -->
-huffman
+<!-- ##### FUNCTION gst_videosink_new ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/system.sgml:Title ##### -->
-system
+@name:
+@Returns:
+<!-- ##### SECTION ./tmpl/param.sgml:See_Also ##### -->
+<para>
-<!-- ##### SECTION ./tmpl/ring_buffer.sgml:Title ##### -->
-ring_buffer
+</para>
-<!-- ##### TYPEDEF DSBL[SBLIMIT] ##### -->
+<!-- ##### MACRO COEFFSUM_SCALE ##### -->
<para>
</para>
-<!-- ##### FUNCTION ReadMBHeader ##### -->
+<!-- ##### FUNCTION ReadBlock ##### -->
<para>
</para>
@vid_stream:
-@Returns:
+@store:
-<!-- ##### MACRO MB_STUFFING ##### -->
-<para>
+<!-- ##### SECTION ./tmpl/ring_buffer.sgml:Short_Description ##### -->
-</para>
-<!-- ##### MACRO SEQUENCE_LAYER ##### -->
+<!-- ##### ARG VCDSrc:location ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/mhead.sgml:Long_Description ##### -->
+<!-- ##### MACRO MACROBLOCK_QUANT ##### -->
<para>
</para>
-<!-- ##### FUNCTION AddCompensate ##### -->
+<!-- ##### SECTION ./tmpl/video.sgml:Long_Description ##### -->
<para>
</para>
-@vid_stream:
-@matrix:
-@XIob:
-<!-- ##### SECTION ./tmpl/tableawd.sgml:Short_Description ##### -->
+<!-- ##### MACRO DFLT_EMP ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION alignbits ##### -->
+<!-- ##### FUNCTION mpg123_decode_header ##### -->
<para>
</para>
-@pb:
+@fr:
+@header:
+@Returns:
-<!-- ##### MACRO COPYRIGHT_EXTENSION_ID ##### -->
+<!-- ##### MACRO T_Y_U_V ##### -->
<para>
</para>
-<!-- ##### MACRO DecodeDCTCoeffNext ##### -->
+<!-- ##### TYPEDEF DSBL[SBLIMIT] ##### -->
<para>
</para>
-@gb:
-@runval:
-@levelval:
-<!-- ##### MACRO SLICE_MAX_START ##### -->
+<!-- ##### MACRO NO_STARTCODE ##### -->
<para>
</para>
-<!-- ##### FUNCTION RTjpeg_yuv422rgb ##### -->
+<!-- ##### MACRO SC_DP ##### -->
<para>
</para>
-@buf:
-@rgb:
-<!-- ##### SECTION ./tmpl/gtkoverlayimage.sgml:Long_Description ##### -->
+<!-- ##### MACRO DCT_COEFF_FIRST ##### -->
<para>
</para>
-<!-- ##### FUNCTION SetCCITT ##### -->
+<!-- ##### MACRO L_BDBD ##### -->
<para>
</para>
-@vid_stream:
-<!-- ##### MACRO LBOUND ##### -->
+<!-- ##### FUNCTION gst_smoothwave_new ##### -->
<para>
</para>
-@index:
-@value:
-
-<!-- ##### SECTION ./tmpl/util.sgml:Title ##### -->
-util
-
+@name:
+@Returns:
-<!-- ##### FUNCTION PrintIob ##### -->
+<!-- ##### FUNCTION RTjpeg_yuvrgb8 ##### -->
<para>
</para>
-@vid_stream:
+@buf:
+@rgb:
-<!-- ##### FUNCTION gst_jpegdec_new ##### -->
+<!-- ##### MACRO IC_ONE_EIGHTH ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### MACRO NO_VID_STREAM ##### -->
+<!-- ##### MACRO IUBOUND ##### -->
<para>
</para>
+@ptr:
+@index:
+@value:
-<!-- ##### SECTION ./tmpl/getvlc.sgml:Title ##### -->
-getvlc
+<!-- ##### ARG GstWinEnc:bitrate ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/proto.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/RTjpeg.sgml:Title ##### -->
+RTjpeg
-<!-- ##### SECTION ./tmpl/proto.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION new_ext ##### -->
<para>
</para>
+@filename:
+@extname:
+@Returns:
-<!-- ##### SECTION ./tmpl/stamp.sgml:Title ##### -->
-stamp
-
-
-<!-- ##### MACRO IT_CIF ##### -->
+<!-- ##### SECTION ./tmpl/htable.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION mgetb ##### -->
+<!-- ##### FUNCTION gst_riff_fourcc_to_id ##### -->
<para>
</para>
-@vid_stream:
+@fourcc:
@Returns:
-<!-- ##### SECTION ./tmpl/prototypes.sgml:Title ##### -->
-prototypes
+<!-- ##### MACRO VIDEO_RGB16_BE ##### -->
+<para>
+
+</para>
-<!-- ##### MACRO swseek ##### -->
+<!-- ##### FUNCTION gst_jpegdec_new ##### -->
<para>
</para>
+@name:
+@Returns:
-<!-- ##### SECTION ./tmpl/dvd_udf.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION SonyVInterpolateMem ##### -->
<para>
</para>
+@Returns:
-<!-- ##### MACRO SYNA_SIZE ##### -->
+<!-- ##### FUNCTION gtk_overlay_image_resize ##### -->
<para>
</para>
+@widget:
+@width:
+@height:
-<!-- ##### MACRO GST_AVIENCODER_INITIAL ##### -->
+<!-- ##### MACRO END_OF_BLOCK ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_videosink_chain ##### -->
+<!-- ##### SECTION ./tmpl/globals.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### FUNCTION audio_decode8 ##### -->
<para>
</para>
-@pad:
-@buf:
+@bs:
+@pcmbuf:
+@Returns:
-<!-- ##### FUNCTION gst_jpeg_new ##### -->
+<!-- ##### MACRO MARKER_NO_TIMESTAMPS ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### MACRO DVD_VIDEO_LB_LEN ##### -->
+<!-- ##### FUNCTION ClearMatrix ##### -->
<para>
</para>
+@matrix:
+
+<!-- ##### FUNCTION WritePictureHeader ##### -->
+<para>
-<!-- ##### SECTION ./tmpl/mpg123.sgml:Title ##### -->
-mpg123
+</para>
+@vid_stream:
-<!-- ##### MACRO LEVEL_MASK ##### -->
+<!-- ##### MACRO STATUS_VIDEO_END ##### -->
<para>
</para>
-<!-- ##### FUNCTION mgetv ##### -->
+<!-- ##### SECTION ./tmpl/mem.sgml:Long_Description ##### -->
<para>
</para>
-@vid_stream:
-@n:
-@Returns:
-<!-- ##### MACRO MACROBLOCK_QUANT ##### -->
+<!-- ##### FUNCTION putbits_init ##### -->
<para>
</para>
+@pb:
-<!-- ##### FUNCTION gst_smooth_chain ##### -->
+<!-- ##### FUNCTION gst_stereo_chain ##### -->
<para>
</para>
@@ -7061,244 +7377,273 @@ mpg123
@pad:
@buf:
-<!-- ##### FUNCTION RTjpeg_init_compress ##### -->
+<!-- ##### MACRO GST_PARSEAVI_MOVI ##### -->
<para>
</para>
-<!-- ##### TYPEDEF BLOCK ##### -->
+<!-- ##### SECTION ./tmpl/prototypes.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION uncouple ##### -->
+<!-- ##### FUNCTION mwseek ##### -->
<para>
</para>
-@bsi:
-@audblk:
-@coeffs:
+@vid_stream:
+@distance:
<!-- ##### SECTION ./tmpl/core.sgml:Title ##### -->
core
-<!-- ##### FUNCTION gst_xa_new ##### -->
+<!-- ##### ARG GstWinEnc:avi_header ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### MACRO AUDIO_STREAMS ##### -->
+<!-- ##### FUNCTION dct64 ##### -->
<para>
</para>
+@dt:
+@out0:
+@out1:
+@samples:
+
+<!-- ##### FUNCTION double_to_extended ##### -->
+<para>
-<!-- ##### SECTION ./tmpl/util.sgml:Short_Description ##### -->
+</para>
+@Param1:
+@Param2:
+<!-- ##### SECTION ./tmpl/vlc.sgml:Title ##### -->
+vlc
-<!-- ##### SECTION ./tmpl/encoder.sgml:Long_Description ##### -->
+
+<!-- ##### MACRO ERROR_NONE ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpg123_init_layer1 ##### -->
+<!-- ##### FUNCTION mpg123_synth_1to1_mono ##### -->
<para>
</para>
-@Param1:
+@fr:
+@bandPtr:
+@samples:
+@pnt:
+@Returns:
-<!-- ##### MACRO VCDSRC_CLASS ##### -->
+<!-- ##### ARG GstStereo:active ##### -->
<para>
</para>
-@klass:
-<!-- ##### MACRO DISP_ID ##### -->
+<!-- ##### SECTION ./tmpl/ac3.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION mpg123_init_layer3 ##### -->
+<!-- ##### SECTION ./tmpl/mpeg2dec.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO LITTLE_ENDIAN ##### -->
<para>
</para>
-@Param1:
-@Varargs:
-<!-- ##### SECTION ./tmpl/port.sgml:Long_Description ##### -->
+<!-- ##### MACRO MB_CLASS4 ##### -->
<para>
</para>
-<!-- ##### STRUCT putbits_t ##### -->
+<!-- ##### SECTION ./tmpl/exponent.sgml:Long_Description ##### -->
<para>
</para>
-@outbfr:
-@outbase:
-@temp:
-@outcnt:
-@bytecnt:
-@len:
-@newlen:
-<!-- ##### SECTION ./tmpl/mpeg2dec.sgml:Short_Description ##### -->
+<!-- ##### MACRO SEQ_END_CODE ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION read_absthr ##### -->
+<!-- ##### MACRO SKIPPED_PICTURE ##### -->
<para>
</para>
-@Param1:
-@Varargs:
-<!-- ##### FUNCTION MpegEncodeIPBDFrame ##### -->
+<!-- ##### FUNCTION Encode ##### -->
<para>
</para>
@vid_stream:
+@val:
+@huff:
+@Returns:
-<!-- ##### FUNCTION MakeImage ##### -->
+<!-- ##### FUNCTION convertRGBtoYUV ##### -->
<para>
</para>
@vid_stream:
+@source:
+@dest:
-<!-- ##### FUNCTION gst_riff_fourcc_to_id ##### -->
+<!-- ##### FUNCTION gst_mpeg2enc_new ##### -->
<para>
</para>
-@fourcc:
+@name:
@Returns:
-<!-- ##### FUNCTION NumericQ ##### -->
+<!-- ##### MACRO PICTURE_CODING_EXTENSION_ID ##### -->
<para>
</para>
-@Param1:
-@Returns:
-<!-- ##### MACRO BEGIN ##### -->
+<!-- ##### FUNCTION gst_cobin_iterate ##### -->
<para>
</para>
-@name:
+@cobin:
-<!-- ##### SECTION ./tmpl/mantissa.sgml:Title ##### -->
-mantissa
+<!-- ##### MACRO NUM_MASK ##### -->
+<para>
+</para>
-<!-- ##### MACRO GST_AVIENCODER_MOVI ##### -->
+
+<!-- ##### SECTION ./tmpl/qtables.sgml:Title ##### -->
+qtables
+
+
+<!-- ##### FUNCTION gtk_overlay_image_new ##### -->
<para>
</para>
+@Returns:
-<!-- ##### MACRO PROFILE_422 ##### -->
+<!-- ##### SECTION ./tmpl/ac3.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/grab.sgml:See_Also ##### -->
+<!-- ##### MACRO RUN_MASK ##### -->
<para>
</para>
-<!-- ##### MACRO T_X11 ##### -->
+<!-- ##### FUNCTION initme ##### -->
<para>
</para>
+@vid_stream:
-<!-- ##### SECTION ./tmpl/csize.sgml:See_Also ##### -->
+<!-- ##### MACRO BIG_ENDIAN_ARCHITECTURE ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/dither.sgml:See_Also ##### -->
+<!-- ##### MACRO DCTSATURATE ##### -->
<para>
</para>
-<!-- ##### TYPEDEF D640[640] ##### -->
+<!-- ##### SECTION ./tmpl/dvd_udf.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO P_TYPE ##### -->
+<!-- ##### MACRO HUFFMAN_ESCAPE ##### -->
<para>
</para>
-<!-- ##### MACRO GST_PARSEAVI_HDRL ##### -->
+<!-- ##### SECTION ./tmpl/dvd_udf.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO GRAB_ATTR_BRIGHT ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/acconfig.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/debug.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO L_BVAR ##### -->
+<!-- ##### MACRO AIX ##### -->
<para>
</para>
-<!-- ##### MACRO ERROR_UNRECOVERABLE ##### -->
+<!-- ##### FUNCTION MpegDecodeSequence ##### -->
<para>
</para>
+@vid_stream:
+
+<!-- ##### SECTION ./tmpl/gdkxvimage.sgml:See_Also ##### -->
+<para>
-<!-- ##### SECTION ./tmpl/imdct.sgml:Title ##### -->
-imdct
+</para>
-<!-- ##### MACRO P_INTERPOLATED ##### -->
+<!-- ##### MACRO L_DVAR ##### -->
<para>
</para>
-<!-- ##### MACRO EVENT_LAYER ##### -->
+<!-- ##### SECTION ./tmpl/mpeg2dec.sgml:Title ##### -->
+mpeg2dec
+
+
+<!-- ##### SECTION ./tmpl/dct.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_synaesthesia_chain ##### -->
+<!-- ##### FUNCTION gst_xing_chain ##### -->
<para>
</para>
@@ -7306,350 +7651,352 @@ imdct
@pad:
@buf:
-<!-- ##### SECTION ./tmpl/param.sgml:See_Also ##### -->
+<!-- ##### TYPEDEF ID[4] ##### -->
<para>
</para>
-<!-- ##### MACRO PSC ##### -->
+<!-- ##### FUNCTION RTjpeg_decompressYUV420 ##### -->
<para>
</para>
+@sp:
+@bp:
-<!-- ##### MACRO MPG_MD_JOINT_STEREO ##### -->
+<!-- ##### FUNCTION mpg123_synth_ntom_set_step ##### -->
<para>
</para>
+@Param1:
+@Param2:
-<!-- ##### FUNCTION SuperSubCompensate ##### -->
+<!-- ##### FUNCTION RTjpeg_decompressYUV422 ##### -->
<para>
</para>
-@vid_stream:
-@fmcmatrix:
-@bmcmatrix:
-@imcmatrix:
-@XIob:
-@YIob:
+@sp:
+@bp:
-<!-- ##### FUNCTION Help ##### -->
+<!-- ##### FUNCTION MakeDHUFF ##### -->
<para>
</para>
-@vid_stream:
+@Returns:
-<!-- ##### MACRO DecodeDCTCoeffFirst ##### -->
+<!-- ##### MACRO REGULAR_PARSE ##### -->
<para>
</para>
-@gb:
-@runval:
-@levelval:
-<!-- ##### SECTION ./tmpl/L3.sgml:See_Also ##### -->
+<!-- ##### SECTION ./tmpl/ctables.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_mpeg1encoder_new ##### -->
+<!-- ##### SECTION ./tmpl/imdct.sgml:Long_Description ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### MACRO DELTA_BIT_NEW ##### -->
+<!-- ##### TYPEDEF TimeStamp ##### -->
<para>
</para>
-<!-- ##### FUNCTION exponent_unpack ##### -->
+<!-- ##### MACRO IN_GOP_PARSE ##### -->
<para>
</para>
-@bsi:
-@audblk:
-@coeffs:
-<!-- ##### SECTION ./tmpl/decode.sgml:See_Also ##### -->
+<!-- ##### STRUCT GstRiff ##### -->
<para>
</para>
+@form:
+@chunks:
+@state:
+@curoffset:
+@nextlikely:
-<!-- ##### FUNCTION ReadHeaderTrailer ##### -->
+<!-- ##### FUNCTION mpg123_init_layer1 ##### -->
<para>
</para>
-@vid_stream:
+@Param1:
-<!-- ##### FUNCTION aiff_write_headers ##### -->
+<!-- ##### MACRO FRAME ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### MACRO MPG_MD_STEREO ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION mpg123_init_layer3 ##### -->
<para>
</para>
@Param1:
-@Param2:
-@Returns:
+@Varargs:
-<!-- ##### MACRO LITTLE_ENDIAN ##### -->
+<!-- ##### FUNCTION FreeMem ##### -->
<para>
</para>
+@mem:
-<!-- ##### SECTION ./tmpl/main.sgml:Short_Description ##### -->
+<!-- ##### FUNCTION RTjpeg_init_Q ##### -->
+<para>
+</para>
+@Q:
-<!-- ##### SECTION ./tmpl/htable.sgml:See_Also ##### -->
+<!-- ##### MACRO BUFFERSIZE ##### -->
<para>
</para>
-<!-- ##### FUNCTION RTjpeg_mcompress ##### -->
+<!-- ##### MACRO EXSC_LENGTH ##### -->
<para>
</para>
-@sp:
-@bp:
-@lmask:
-@cmask:
-@Returns:
-<!-- ##### MACRO DCT_ERROR ##### -->
+<!-- ##### SECTION ./tmpl/util.sgml:Title ##### -->
+util
+
+
+<!-- ##### ARG GstVideoSink:height ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_mpeg2play_new ##### -->
+<!-- ##### TYPEDEF dct_dc_size_entry ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### FUNCTION JP0HDecimateMem ##### -->
+<!-- ##### MACRO UMASK ##### -->
<para>
</para>
-@Returns:
-<!-- ##### MACRO SYSTEM_START_CODE_MAX ##### -->
+<!-- ##### MACRO RATE ##### -->
<para>
</para>
-<!-- ##### FUNCTION SmpFrqIndex ##### -->
+<!-- ##### FUNCTION update_CRC ##### -->
<para>
</para>
@Param1:
-@Returns:
+@Param2:
+@Param3:
-<!-- ##### MACRO EXSC ##### -->
+<!-- ##### MACRO VSEC ##### -->
<para>
</para>
-<!-- ##### MACRO IFF_ID_FORM ##### -->
+<!-- ##### STRUCT Mpeg1Stream ##### -->
<para>
</para>
+@stream_id:
+@STD_buffer_bound_scale:
+@STD_buffer_size_bound:
-<!-- ##### MACRO AUSHIFT ##### -->
+<!-- ##### SECTION ./tmpl/getvlc.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/rematrix.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO HAN_SIZE ##### -->
<para>
</para>
-<!-- ##### MACRO SEQ_ID ##### -->
+<!-- ##### MACRO MB_INTRA ##### -->
<para>
</para>
-<!-- ##### MACRO HUFFMAN_ESCAPE ##### -->
+<!-- ##### MACRO LAST_SCR_BYTE_IN_PACK ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/csize.sgml:Long_Description ##### -->
+<!-- ##### MACRO GLOBAL_GAIN_SCALE ##### -->
<para>
</para>
-<!-- ##### MACRO EXP_D15 ##### -->
+<!-- ##### MACRO VIDEO_RGB15_LE ##### -->
<para>
</para>
-<!-- ##### FUNCTION gdk_xvimage_init ##### -->
+<!-- ##### TYPEDEF D2SBL[2][SBLIMIT] ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/getvlc.sgml:Long_Description ##### -->
+<!-- ##### ARG GstVideoSink:width ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/stamp.sgml:Long_Description ##### -->
+<!-- ##### MACRO SC_SPAT ##### -->
<para>
</para>
-<!-- ##### MACRO COEFFSUM_SCALE ##### -->
+<!-- ##### MACRO L_VAROR ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/ring_buffer.sgml:Short_Description ##### -->
+<!-- ##### SECTION ./tmpl/encoder.sgml:Short_Description ##### -->
-<!-- ##### STRUCT Mpeg1Meta ##### -->
+<!-- ##### SECTION ./tmpl/size.sgml:See_Also ##### -->
<para>
</para>
-@packet_length:
-@PES_scrambling_control:
-@PES_priority:
-@data_alignment_indicator:
-@copyright:
-@original_or_copy:
-@PTS_DTS_flags:
-@ESCR_flag:
-@ES_rate_flag:
-@DSM_trick_mode_flag:
-@additional_copy_info_flag:
-@CRC_flag:
-@PES_extension_flag:
-@PES_header_data_length:
-@PTS:
-@DTS:
-@ESCR_base:
-@ESCR_extension:
-@ES_rate:
-@trick_mode_control:
-<!-- ##### FUNCTION gst_spectrum_chain ##### -->
+<!-- ##### FUNCTION gst_riff_new ##### -->
<para>
</para>
-@pad:
-@buf:
+@Returns:
-<!-- ##### MACRO PACKET_START ##### -->
+<!-- ##### SECTION ./tmpl/imdct.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### FUNCTION aiff_seek_to_sound_data ##### -->
<para>
</para>
+@Param1:
+@Returns:
-<!-- ##### STRUCT GdkXvImage ##### -->
+<!-- ##### SECTION ./tmpl/L3.sgml:See_Also ##### -->
<para>
</para>
-@type:
-@byte_order:
-@width:
-@height:
-@depth:
-@bpp:
-@bpl:
-@mem:
-<!-- ##### MACRO EXT_BUF_SIZE ##### -->
+<!-- ##### FUNCTION cvt_to_wave_test ##### -->
<para>
</para>
+@Returns:
-<!-- ##### FUNCTION double_to_extended ##### -->
+<!-- ##### MACRO SKIP_PICTURE ##### -->
<para>
</para>
-@Param1:
-@Param2:
-<!-- ##### SECTION ./tmpl/rematrix.sgml:Title ##### -->
-rematrix
+<!-- ##### FUNCTION gst_mpeg1encoder_new ##### -->
+<para>
+</para>
-<!-- ##### MACRO FINISHED_BLOCK ##### -->
+@name:
+@Returns:
+
+<!-- ##### FUNCTION gst_mpeg2enc_chain ##### -->
<para>
</para>
+@pad:
+@buf:
-<!-- ##### STRUCT GstRiff ##### -->
+<!-- ##### MACRO NO_LAYER ##### -->
<para>
</para>
-@form:
-@chunks:
-@state:
-@curoffset:
-@nextlikely:
-<!-- ##### TYPEDEF SUB[2][3][SCALE_BLOCK][SBLIMIT] ##### -->
+<!-- ##### FUNCTION mpeg2play_new_buffer ##### -->
<para>
</para>
+@vid_stream:
+@inbuf:
+@inlen:
+@first:
+@Returns:
-<!-- ##### MACRO IUBOUND ##### -->
+<!-- ##### FUNCTION ChenDct ##### -->
<para>
</para>
-@ptr:
-@index:
-@value:
+@x:
+@y:
-<!-- ##### MACRO EXP_D25 ##### -->
+<!-- ##### MACRO B_TYPE ##### -->
<para>
</para>
-<!-- ##### MACRO P_FORBIDDEN ##### -->
+<!-- ##### FUNCTION i_audio_decode_info ##### -->
<para>
</para>
+@info:
<!-- ##### FUNCTION gst_parsewav_new ##### -->
<para>
@@ -7659,341 +8006,396 @@ rematrix
@name:
@Returns:
-<!-- ##### MACRO inline ##### -->
+<!-- ##### MACRO swopen ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/prototypes.sgml:Short_Description ##### -->
+<!-- ##### MACRO IN_PICTURE_PARSE ##### -->
+<para>
+</para>
-<!-- ##### MACRO MAXIMUM_SOURCES ##### -->
+<!-- ##### MACRO SEQ_START_CODE ##### -->
<para>
</para>
-<!-- ##### MACRO D_TYPE ##### -->
+<!-- ##### SECTION ./tmpl/bitstream.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION dct64_486 ##### -->
+<!-- ##### MACRO SKIP_JUNK ##### -->
<para>
</para>
-@a:
-@b:
-@samples:
-<!-- ##### MACRO DefaultIDct ##### -->
+<!-- ##### MACRO GTK_OVERLAY_IMAGE_BYTE_ORDER ##### -->
<para>
</para>
-@vs:
-@o:
-@i:
+@obj:
-<!-- ##### MACRO MB_INTRA ##### -->
+<!-- ##### TYPEDEF INT16 ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_xing_new ##### -->
+<!-- ##### MACRO MACROBLOCK_MOTION_BACKWARD ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### FUNCTION mpg123_bpf_from_header ##### -->
+<!-- ##### MACRO DELTA_BIT_RESERVED ##### -->
<para>
</para>
-@header:
+
+<!-- ##### SECTION ./tmpl/tableawd.sgml:See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### FUNCTION gst_parseavi_get_audio_srcpad ##### -->
+<para>
+
+</para>
+
+@parseavi:
+@pad_nr:
+@strf:
@Returns:
-<!-- ##### SECTION ./tmpl/ac3.sgml:Short_Description ##### -->
+<!-- ##### MACRO FIRST_BLOCK ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/decoders.sgml:Title ##### -->
-decoders
+<!-- ##### MACRO LXMIN ##### -->
+<para>
+</para>
-<!-- ##### MACRO WINMULT ##### -->
+
+<!-- ##### SECTION ./tmpl/htable.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### SECTION ./tmpl/jdw.sgml:Short_Description ##### -->
+
+
+
+<!-- ##### MACRO STREAMS_AUDIO ##### -->
<para>
</para>
-@x:
-@coef:
-<!-- ##### FUNCTION YUVSaveMem ##### -->
+<!-- ##### SECTION ./tmpl/dga.sgml:Title ##### -->
+dga
+
+
+<!-- ##### SECTION ./tmpl/encoder.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### MACRO RESERVED_BYTE ##### -->
+<!-- ##### SECTION ./tmpl/putbits.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### FUNCTION gst_riff_get_chunk_number ##### -->
+<!-- ##### TYPEDEF WINCOEF ##### -->
<para>
</para>
-@riff:
-@number:
-@Returns:
-<!-- ##### MACRO P_DCINTRA ##### -->
+<!-- ##### MACRO MV_FRAME ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/downmix.sgml:See_Also ##### -->
+<!-- ##### MACRO PANSCAN_ID ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/debug.sgml:See_Also ##### -->
+<!-- ##### MACRO BLOCKSIZE ##### -->
<para>
</para>
-<!-- ##### MACRO PICTURE_LAYER ##### -->
+<!-- ##### MACRO ERRC ##### -->
<para>
</para>
-<!-- ##### TYPEDEF D10[10] ##### -->
+<!-- ##### FUNCTION aiff_read_headers ##### -->
<para>
</para>
+@Param1:
+@Param2:
+@Returns:
-<!-- ##### MACRO swclose ##### -->
+<!-- ##### MACRO ESCAPE ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/core.sgml:Short_Description ##### -->
+<!-- ##### ARG GstV4lSrc:hue ##### -->
+<para>
+</para>
-<!-- ##### MACRO PACK_HEADER_SIZE ##### -->
+<!-- ##### FUNCTION gdk_xvimage_new ##### -->
<para>
</para>
+@type:
+@width:
+@height:
+@Returns:
-<!-- ##### SECTION ./tmpl/putbits.sgml:Short_Description ##### -->
+<!-- ##### MACRO SEQUENCE_LAYER ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION parse_syncinfo ##### -->
+<!-- ##### MACRO MBSC ##### -->
<para>
</para>
-@syncinfo:
-@gb:
-<!-- ##### SECTION ./tmpl/dither.sgml:Title ##### -->
-dither
+<!-- ##### MACRO L_BUFFERCONTENTS ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION CECASHInterpolateMem ##### -->
+
+<!-- ##### MACRO DFLT_PSY ##### -->
<para>
</para>
-@Returns:
-<!-- ##### FUNCTION JVCHInterpolateMem ##### -->
+<!-- ##### FUNCTION audio_decode_info ##### -->
<para>
</para>
-@Returns:
+@info:
-<!-- ##### MACRO BUFFER_SIZE ##### -->
+<!-- ##### SECTION ./tmpl/gtkoverlayimage.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/port.sgml:See_Also ##### -->
+<!-- ##### ARG GstVuMeter:volume ##### -->
<para>
</para>
-<!-- ##### MACRO EXP_D45 ##### -->
+<!-- ##### ARG GstWinEnc:quality ##### -->
<para>
</para>
-<!-- ##### MACRO DecodeDCTDCSizeChrom ##### -->
+<!-- ##### MACRO TALK ##### -->
<para>
</para>
-@gb:
-@macro_val:
-<!-- ##### SECTION ./tmpl/bit_allocate.sgml:Short_Description ##### -->
+<!-- ##### MACRO PICTURE_SPATIAL_SCALABLE_EXTENSION_ID ##### -->
+<para>
+</para>
-<!-- ##### MACRO WORD ##### -->
+<!-- ##### MACRO VIDEO_STREAMS ##### -->
<para>
</para>
-<!-- ##### MACRO VIDEO_RGB16_BE ##### -->
+<!-- ##### STRUCT Mpeg1MuxBuffer ##### -->
<para>
</para>
+@buffer:
+@length:
+@base:
+@scan_pos:
+@last_pos:
+@current_start:
+@buffer_type:
+@stream_id:
+@new_frame:
+@next_frame_time:
-<!-- ##### FUNCTION gst_cobin_new ##### -->
+<!-- ##### TYPEDEF INT32 ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### FUNCTION convertRGBtoYUV ##### -->
+<!-- ##### FUNCTION gst_jpeg_chain ##### -->
<para>
</para>
-@vid_stream:
-@source:
-@dest:
+@pad:
+@buf:
-<!-- ##### MACRO MC_16X8 ##### -->
+<!-- ##### SECTION ./tmpl/bit_allocate.sgml:Long_Description ##### -->
<para>
</para>
-<!-- ##### MACRO MPEGTABENV ##### -->
+<!-- ##### TYPEDEF D640[640] ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/jdw.sgml:Title ##### -->
-jdw
+<!-- ##### FUNCTION gtk_xvimage_get ##### -->
+<para>
+</para>
-<!-- ##### FUNCTION InitFS ##### -->
+@image:
+@val:
+
+<!-- ##### FUNCTION SubCompensate ##### -->
<para>
</para>
@vid_stream:
+@matrix:
+@XIob:
-<!-- ##### FUNCTION gst_spindentity_new ##### -->
+<!-- ##### MACRO DELTA_BIT_NONE ##### -->
<para>
</para>
-@name:
-@Returns:
-<!-- ##### SECTION ./tmpl/buffer.sgml:Long_Description ##### -->
+<!-- ##### SECTION ./tmpl/qtables.sgml:See_Also ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/acconfig.sgml:Short_Description ##### -->
+<!-- ##### FUNCTION mpg123_init_conv16to8_table ##### -->
+<para>
+</para>
-<!-- ##### SECTION ./tmpl/tables.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION gst_aviencoder_make_video_header ##### -->
<para>
</para>
+@codec:
+@width:
+@height:
+@planes:
+@bit_cnt:
+@Returns:
-<!-- ##### SECTION ./tmpl/dvd_udf.sgml:Short_Description ##### -->
+<!-- ##### FUNCTION rematrix ##### -->
+<para>
+</para>
+@audblk:
+@coeffs:
-<!-- ##### FUNCTION BruteMotionEstimation ##### -->
+<!-- ##### FUNCTION crc_validate ##### -->
<para>
</para>
-@vid_stream:
-@pmem:
-@fmem:
+@Returns:
-<!-- ##### MACRO MPG_VER_25 ##### -->
+<!-- ##### MACRO ZIG_ZAG ##### -->
<para>
</para>
-<!-- ##### MACRO MPEGLAYER1 ##### -->
+<!-- ##### MACRO SLICE_START_CODE_MAX ##### -->
<para>
</para>
-<!-- ##### MACRO L_DVAR ##### -->
+<!-- ##### TYPEDEF iFunc() ##### -->
<para>
</para>
-<!-- ##### MACRO MPEGLAYER2 ##### -->
+<!-- ##### FUNCTION gst_mpg123_new ##### -->
<para>
</para>
+@name:
+@Returns:
-<!-- ##### MACRO DecodeCBP ##### -->
+<!-- ##### FUNCTION gst_synaesthesia_chain ##### -->
<para>
</para>
-@gb:
-@coded_bp:
+@pad:
+@buf:
-<!-- ##### MACRO MPEGLAYER3 ##### -->
+<!-- ##### ARG System_Encode:audio ##### -->
<para>
</para>
-<!-- ##### SECTION ./tmpl/downmix.sgml:Long_Description ##### -->
+<!-- ##### FUNCTION CopyCFS2FS ##### -->
<para>
</para>
+@vid_stream:
+@fs:
diff --git a/docs/plugins/tmpl/gstspectrum.sgml b/docs/plugins/tmpl/gstspectrum.sgml
index feebe84b6e..a3dc5d38b3 100644
--- a/docs/plugins/tmpl/gstspectrum.sgml
+++ b/docs/plugins/tmpl/gstspectrum.sgml
@@ -14,8 +14,3 @@ GstSpectrum
</para>
-<!-- ##### ARG GstSpectrum:width ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/gstv4lsrc.sgml b/docs/plugins/tmpl/gstv4lsrc.sgml
index cece4f3cdb..ba14a4f02a 100644
--- a/docs/plugins/tmpl/gstv4lsrc.sgml
+++ b/docs/plugins/tmpl/gstv4lsrc.sgml
@@ -14,73 +14,3 @@ GstV4lSrc
</para>
-<!-- ##### ARG GstV4lSrc:width ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:height ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:format ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:tune ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:tuned ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:input ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:norm ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:volume ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:mute ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:mode ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:color ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:bright ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:hue ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstV4lSrc:contrast ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/gstwindec.sgml b/docs/plugins/tmpl/gstwindec.sgml
index b3e9fc4613..e4f1e667f7 100644
--- a/docs/plugins/tmpl/gstwindec.sgml
+++ b/docs/plugins/tmpl/gstwindec.sgml
@@ -14,13 +14,3 @@ GstWinDec
</para>
-<!-- ##### ARG GstWinDec:avi_header ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstWinDec:bitdepth ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/gstwinenc.sgml b/docs/plugins/tmpl/gstwinenc.sgml
index 2a4997b045..8e8fe36422 100644
--- a/docs/plugins/tmpl/gstwinenc.sgml
+++ b/docs/plugins/tmpl/gstwinenc.sgml
@@ -14,36 +14,3 @@ GstWinEnc
</para>
-<!-- ##### SIGNAL GstWinEnc::frame-encoded ##### -->
-<para>
-
-</para>
-
-@gstwinenc: the object which received the signal.
-@arg1:
-
-<!-- ##### ARG GstWinEnc:avi_header ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstWinEnc:bitrate ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstWinEnc:quality ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstWinEnc:compression ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstWinEnc:last_frame_size ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/median.sgml b/docs/plugins/tmpl/median.sgml
index aa35882720..1408d68318 100644
--- a/docs/plugins/tmpl/median.sgml
+++ b/docs/plugins/tmpl/median.sgml
@@ -14,13 +14,3 @@ GstMedian
</para>
-<!-- ##### ARG GstMedian:active ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstMedian:filtersize ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/mp3parse.sgml b/docs/plugins/tmpl/mp3parse.sgml
index 6836a94154..07d6078e59 100644
--- a/docs/plugins/tmpl/mp3parse.sgml
+++ b/docs/plugins/tmpl/mp3parse.sgml
@@ -14,8 +14,3 @@ Mp3Parse
</para>
-<!-- ##### ARG Mp3Parse:skip ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/mpeg1parse.sgml b/docs/plugins/tmpl/mpeg1parse.sgml
index a77682a3d2..de8497daff 100644
--- a/docs/plugins/tmpl/mpeg1parse.sgml
+++ b/docs/plugins/tmpl/mpeg1parse.sgml
@@ -14,8 +14,3 @@ Mpeg1Parse
</para>
-<!-- ##### ARG Mpeg1Parse:mux_rate ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/mpeg2parse.sgml b/docs/plugins/tmpl/mpeg2parse.sgml
index fafd52ecf5..a2533ccd79 100644
--- a/docs/plugins/tmpl/mpeg2parse.sgml
+++ b/docs/plugins/tmpl/mpeg2parse.sgml
@@ -14,8 +14,3 @@ Mpeg2Parse
</para>
-<!-- ##### ARG Mpeg2Parse:mux_rate ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/mpeg2subt.sgml b/docs/plugins/tmpl/mpeg2subt.sgml
index b70dee2bb3..1ce7894105 100644
--- a/docs/plugins/tmpl/mpeg2subt.sgml
+++ b/docs/plugins/tmpl/mpeg2subt.sgml
@@ -14,8 +14,3 @@ Mpeg2Subt
</para>
-<!-- ##### ARG Mpeg2Subt:skip ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/smooth.sgml b/docs/plugins/tmpl/smooth.sgml
index f4ee1d3066..0828169db4 100644
--- a/docs/plugins/tmpl/smooth.sgml
+++ b/docs/plugins/tmpl/smooth.sgml
@@ -14,18 +14,3 @@ GstSmooth
</para>
-<!-- ##### ARG GstSmooth:active ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstSmooth:tolerance ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstSmooth:filtersize ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/smoothwave.sgml b/docs/plugins/tmpl/smoothwave.sgml
index c9e149c7c5..be5c975f52 100644
--- a/docs/plugins/tmpl/smoothwave.sgml
+++ b/docs/plugins/tmpl/smoothwave.sgml
@@ -14,18 +14,3 @@ GstSmoothWave
</para>
-<!-- ##### ARG GstSmoothWave:width ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstSmoothWave:height ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstSmoothWave:widget ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/stereo.sgml b/docs/plugins/tmpl/stereo.sgml
index 09f343c3f8..9f1ed2f8f6 100644
--- a/docs/plugins/tmpl/stereo.sgml
+++ b/docs/plugins/tmpl/stereo.sgml
@@ -14,13 +14,3 @@ GstStereo
</para>
-<!-- ##### ARG GstStereo:active ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstStereo:stereo ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/synaesthesia.sgml b/docs/plugins/tmpl/synaesthesia.sgml
index ac866565bc..40f34470c6 100644
--- a/docs/plugins/tmpl/synaesthesia.sgml
+++ b/docs/plugins/tmpl/synaesthesia.sgml
@@ -14,18 +14,3 @@ GstSynaesthesia
</para>
-<!-- ##### ARG GstSynaesthesia:width ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstSynaesthesia:height ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstSynaesthesia:widget ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/system_encode.sgml b/docs/plugins/tmpl/system_encode.sgml
index 497a7934a8..e342229525 100644
--- a/docs/plugins/tmpl/system_encode.sgml
+++ b/docs/plugins/tmpl/system_encode.sgml
@@ -14,13 +14,3 @@ System_Encode
</para>
-<!-- ##### ARG System_Encode:video ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG System_Encode:audio ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/videoscale.sgml b/docs/plugins/tmpl/videoscale.sgml
index b3b8699d84..f7a0f27634 100644
--- a/docs/plugins/tmpl/videoscale.sgml
+++ b/docs/plugins/tmpl/videoscale.sgml
@@ -14,13 +14,3 @@ Videoscale
</para>
-<!-- ##### ARG Videoscale:width ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG Videoscale:height ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/videosink.sgml b/docs/plugins/tmpl/videosink.sgml
index 0dfafbac05..010558b36a 100644
--- a/docs/plugins/tmpl/videosink.sgml
+++ b/docs/plugins/tmpl/videosink.sgml
@@ -14,42 +14,3 @@ GstVideoSink
</para>
-<!-- ##### SIGNAL GstVideoSink::frame-displayed ##### -->
-<para>
-
-</para>
-
-@gstvideosink: the object which received the signal.
-<!-- # Unused Parameters # -->
-@arg1:
-
-<!-- ##### ARG GstVideoSink:width ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstVideoSink:height ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstVideoSink:widget ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstVideoSink:frames_displayed ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstVideoSink:frame_time ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstVideoSink:xv_enabled ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/volume.sgml b/docs/plugins/tmpl/volume.sgml
index d285c5c442..cff4b422d8 100644
--- a/docs/plugins/tmpl/volume.sgml
+++ b/docs/plugins/tmpl/volume.sgml
@@ -14,13 +14,3 @@ GstVolume
</para>
-<!-- ##### ARG GstVolume:active ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstVolume:volume ##### -->
-<para>
-
-</para>
-
diff --git a/docs/plugins/tmpl/vumeter.sgml b/docs/plugins/tmpl/vumeter.sgml
index 34abf7a5c8..3816526fa8 100644
--- a/docs/plugins/tmpl/vumeter.sgml
+++ b/docs/plugins/tmpl/vumeter.sgml
@@ -14,33 +14,3 @@ GstVuMeter
</para>
-<!-- ##### ARG GstVuMeter:volume ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstVuMeter:volumeptr ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstVuMeter:volume_left ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstVuMeter:volumeptr_left ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstVuMeter:volume_right ##### -->
-<para>
-
-</para>
-
-<!-- ##### ARG GstVuMeter:volumeptr_right ##### -->
-<para>
-
-</para>
-
diff --git a/docs/random/NOTES-0.1.1 b/docs/random/NOTES-0.1.1
new file mode 100644
index 0000000000..348bb74a90
--- /dev/null
+++ b/docs/random/NOTES-0.1.1
@@ -0,0 +1,36 @@
+
+compile fixes:
+
+ - BSD compatibility fixes (MAP_ANON)
+ - libxml compile problems fix
+ - compile fixes for non x86 architectures
+ (mpg123, mpeg_play, getbits, videoscale, ac3dec)
+ - mpeg2enc asm comment fixes
+
+bug fixes:
+
+ - videoscaler/colorconversion fixes
+ - OSS audiosink bug fix
+ - reworked the queue threading code
+ - fixed the /etc/gstreamer permissions problem
+ - various minor bug fixes
+
+changes:
+
+ - state change modifications
+ - _request pad implemented for muxer/mixer/aggregator
+ elements. also _request_compatible additions.
+ - massive ghostpad changes
+ - EOS handling (not for gstmediaplay)
+ - icecast send plugin using libshout
+ - lots of GstObject changes (XML save, name, parent
+ properties fixes)
+ - preliminary XML namespaces.
+ - added support for custom app tags in the XML save/load
+ routines (preliminary support)
+ - cothreads updates for ALPHA/ARM
+ - asyncdisksrc is gone in favor of a better disksrc
+ - getregion rework
+ - videoscaler/colorconversion updates
+ - manual/docs updates
+
diff --git a/docs/random/caps.dia b/docs/random/caps.dia
new file mode 100644
index 0000000000..b511083c7a
--- /dev/null
+++ b/docs/random/caps.dia
@@ -0,0 +1,1132 @@
+<?xml version="1.0"?>
+<diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
+ <diagramdata>
+ <attribute name="background">
+ <color val="#ffffff"/>
+ </attribute>
+ <attribute name="paper">
+ <composite type="paper">
+ <attribute name="name">
+ <string>#A4#</string>
+ </attribute>
+ <attribute name="tmargin">
+ <real val="2.82"/>
+ </attribute>
+ <attribute name="bmargin">
+ <real val="2.82"/>
+ </attribute>
+ <attribute name="lmargin">
+ <real val="2.82"/>
+ </attribute>
+ <attribute name="rmargin">
+ <real val="2.82"/>
+ </attribute>
+ <attribute name="is_portrait">
+ <boolean val="true"/>
+ </attribute>
+ <attribute name="scaling">
+ <real val="1"/>
+ </attribute>
+ <attribute name="fitto">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <attribute name="grid">
+ <composite type="grid">
+ <attribute name="width_x">
+ <real val="1"/>
+ </attribute>
+ <attribute name="width_y">
+ <real val="1"/>
+ </attribute>
+ <attribute name="visible_x">
+ <int val="1"/>
+ </attribute>
+ <attribute name="visible_y">
+ <int val="1"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <attribute name="guides">
+ <composite type="guides">
+ <attribute name="hguides"/>
+ <attribute name="vguides"/>
+ </composite>
+ </attribute>
+ </diagramdata>
+ <layer name="Background" visible="true">
+ <object type="UML - Class" version="0" id="O0">
+ <attribute name="obj_pos">
+ <point val="0.75,5.55"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="0.7,5.5;12.7504,9.6"/>
+ </attribute>
+ <attribute name="elem_corner">
+ <point val="0.75,5.55"/>
+ </attribute>
+ <attribute name="elem_width">
+ <real val="11.9504"/>
+ </attribute>
+ <attribute name="elem_height">
+ <real val="4"/>
+ </attribute>
+ <attribute name="name">
+ <string>#GstCaps#</string>
+ </attribute>
+ <attribute name="stereotype">
+ <string/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_attributes">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="visible_attributes">
+ <boolean val="true"/>
+ </attribute>
+ <attribute name="visible_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="attributes">
+ <composite type="umlattribute">
+ <attribute name="name">
+ <string>#name#</string>
+ </attribute>
+ <attribute name="type">
+ <string>#gchar *#</string>
+ </attribute>
+ <attribute name="value">
+ <string/>
+ </attribute>
+ <attribute name="visibility">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="class_scope">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ <composite type="umlattribute">
+ <attribute name="name">
+ <string>#id#</string>
+ </attribute>
+ <attribute name="type">
+ <string>#guint16#</string>
+ </attribute>
+ <attribute name="value">
+ <string/>
+ </attribute>
+ <attribute name="visibility">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="class_scope">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ <composite type="umlattribute">
+ <attribute name="name">
+ <string>#properties#</string>
+ </attribute>
+ <attribute name="type">
+ <string>#GstProps *#</string>
+ </attribute>
+ <attribute name="value">
+ <string/>
+ </attribute>
+ <attribute name="visibility">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="class_scope">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <attribute name="operations"/>
+ <attribute name="template">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="templates"/>
+ </object>
+ <object type="UML - Class" version="0" id="O1">
+ <attribute name="obj_pos">
+ <point val="16.35,9.65"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="16.3,9.6;26.896,12.1"/>
+ </attribute>
+ <attribute name="elem_corner">
+ <point val="16.35,9.65"/>
+ </attribute>
+ <attribute name="elem_width">
+ <real val="10.496"/>
+ </attribute>
+ <attribute name="elem_height">
+ <real val="2.4"/>
+ </attribute>
+ <attribute name="name">
+ <string>#GstProps#</string>
+ </attribute>
+ <attribute name="stereotype">
+ <string/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_attributes">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="visible_attributes">
+ <boolean val="true"/>
+ </attribute>
+ <attribute name="visible_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="attributes">
+ <composite type="umlattribute">
+ <attribute name="name">
+ <string>#properties#</string>
+ </attribute>
+ <attribute name="type">
+ <string>#GList *#</string>
+ </attribute>
+ <attribute name="value">
+ <string/>
+ </attribute>
+ <attribute name="visibility">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="class_scope">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <attribute name="operations"/>
+ <attribute name="template">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="templates"/>
+ </object>
+ <object type="UML - Association" version="0" id="O2">
+ <attribute name="obj_pos">
+ <point val="12.7004,9.05"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="11.2504,7.6;18.4892,11.8"/>
+ </attribute>
+ <attribute name="orth_points">
+ <point val="12.7004,9.05"/>
+ <point val="14.15,9.05"/>
+ <point val="14.15,10.35"/>
+ <point val="16.35,10.35"/>
+ </attribute>
+ <attribute name="orth_orient">
+ <enum val="0"/>
+ <enum val="1"/>
+ <enum val="0"/>
+ </attribute>
+ <attribute name="name">
+ <string/>
+ </attribute>
+ <attribute name="direction">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="ends">
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string>#1#</string>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="2"/>
+ </attribute>
+ </composite>
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string>#0..1#</string>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="0"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <connections>
+ <connection handle="0" to="O0" connection="13"/>
+ <connection handle="1" to="O1" connection="3"/>
+ </connections>
+ </object>
+ <object type="UML - Class" version="0" id="O3">
+ <attribute name="obj_pos">
+ <point val="14.75,13.45"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="14.7,13.4;26.2656,16.7"/>
+ </attribute>
+ <attribute name="elem_corner">
+ <point val="14.75,13.45"/>
+ </attribute>
+ <attribute name="elem_width">
+ <real val="11.4656"/>
+ </attribute>
+ <attribute name="elem_height">
+ <real val="3.2"/>
+ </attribute>
+ <attribute name="name">
+ <string>#GstPropsEntry#</string>
+ </attribute>
+ <attribute name="stereotype">
+ <string/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="true"/>
+ </attribute>
+ <attribute name="suppress_attributes">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="visible_attributes">
+ <boolean val="true"/>
+ </attribute>
+ <attribute name="visible_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="attributes">
+ <composite type="umlattribute">
+ <attribute name="name">
+ <string>#propid#</string>
+ </attribute>
+ <attribute name="type">
+ <string>#GQuark#</string>
+ </attribute>
+ <attribute name="value">
+ <string/>
+ </attribute>
+ <attribute name="visibility">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="class_scope">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ <composite type="umlattribute">
+ <attribute name="name">
+ <string>#propstype#</string>
+ </attribute>
+ <attribute name="type">
+ <string>#GstPropsId#</string>
+ </attribute>
+ <attribute name="value">
+ <string/>
+ </attribute>
+ <attribute name="visibility">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="class_scope">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <attribute name="operations"/>
+ <attribute name="template">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="templates"/>
+ </object>
+ <object type="UML - Association" version="0" id="O4">
+ <attribute name="obj_pos">
+ <point val="16.35,11.55"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="11.25,10.1;17.8,15.6"/>
+ </attribute>
+ <attribute name="orth_points">
+ <point val="16.35,11.55"/>
+ <point val="12.7,11.55"/>
+ <point val="12.7,14.15"/>
+ <point val="14.75,14.15"/>
+ </attribute>
+ <attribute name="orth_orient">
+ <enum val="0"/>
+ <enum val="1"/>
+ <enum val="0"/>
+ </attribute>
+ <attribute name="name">
+ <string/>
+ </attribute>
+ <attribute name="direction">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="ends">
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string>#1#</string>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="2"/>
+ </attribute>
+ </composite>
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string>#*#</string>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="0"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <connections>
+ <connection handle="0" to="O1" connection="8"/>
+ <connection handle="1" to="O3" connection="3"/>
+ </connections>
+ </object>
+ <object type="UML - Class" version="0" id="O5">
+ <attribute name="obj_pos">
+ <point val="4.45,19.05"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="4.4,19;14.996,21.5"/>
+ </attribute>
+ <attribute name="elem_corner">
+ <point val="4.45,19.05"/>
+ </attribute>
+ <attribute name="elem_width">
+ <real val="10.496"/>
+ </attribute>
+ <attribute name="elem_height">
+ <real val="2.4"/>
+ </attribute>
+ <attribute name="name">
+ <string>#boolean#</string>
+ </attribute>
+ <attribute name="stereotype">
+ <string/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_attributes">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="visible_attributes">
+ <boolean val="true"/>
+ </attribute>
+ <attribute name="visible_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="attributes">
+ <composite type="umlattribute">
+ <attribute name="name">
+ <string>#bool_data#</string>
+ </attribute>
+ <attribute name="type">
+ <string>#gboolean#</string>
+ </attribute>
+ <attribute name="value">
+ <string/>
+ </attribute>
+ <attribute name="visibility">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="class_scope">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <attribute name="operations"/>
+ <attribute name="template">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="templates"/>
+ </object>
+ <object type="UML - Class" version="0" id="O6">
+ <attribute name="obj_pos">
+ <point val="10.55,22.4"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="10.5,22.35;21.5808,24.85"/>
+ </attribute>
+ <attribute name="elem_corner">
+ <point val="10.55,22.4"/>
+ </attribute>
+ <attribute name="elem_width">
+ <real val="10.9808"/>
+ </attribute>
+ <attribute name="elem_height">
+ <real val="2.4"/>
+ </attribute>
+ <attribute name="name">
+ <string>#fourcc#</string>
+ </attribute>
+ <attribute name="stereotype">
+ <string/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_attributes">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="visible_attributes">
+ <boolean val="true"/>
+ </attribute>
+ <attribute name="visible_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="attributes">
+ <composite type="umlattribute">
+ <attribute name="name">
+ <string>#fourcc_data#</string>
+ </attribute>
+ <attribute name="type">
+ <string>#guint32#</string>
+ </attribute>
+ <attribute name="value">
+ <string/>
+ </attribute>
+ <attribute name="visibility">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="class_scope">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <attribute name="operations"/>
+ <attribute name="template">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="templates"/>
+ </object>
+ <object type="UML - Class" version="0" id="O7">
+ <attribute name="obj_pos">
+ <point val="16.8,19.2"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="16.75,19.15;24.922,21.65"/>
+ </attribute>
+ <attribute name="elem_corner">
+ <point val="16.8,19.2"/>
+ </attribute>
+ <attribute name="elem_width">
+ <real val="8.072"/>
+ </attribute>
+ <attribute name="elem_height">
+ <real val="2.4"/>
+ </attribute>
+ <attribute name="name">
+ <string>#int#</string>
+ </attribute>
+ <attribute name="stereotype">
+ <string/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_attributes">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="visible_attributes">
+ <boolean val="true"/>
+ </attribute>
+ <attribute name="visible_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="attributes">
+ <composite type="umlattribute">
+ <attribute name="name">
+ <string>#int_data#</string>
+ </attribute>
+ <attribute name="type">
+ <string>#gint#</string>
+ </attribute>
+ <attribute name="value">
+ <string/>
+ </attribute>
+ <attribute name="visibility">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="class_scope">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <attribute name="operations"/>
+ <attribute name="template">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="templates"/>
+ </object>
+ <object type="UML - Class" version="0" id="O8">
+ <attribute name="obj_pos">
+ <point val="22.5,22.55"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="22.45,22.5;31.5916,25"/>
+ </attribute>
+ <attribute name="elem_corner">
+ <point val="22.5,22.55"/>
+ </attribute>
+ <attribute name="elem_width">
+ <real val="9.0416"/>
+ </attribute>
+ <attribute name="elem_height">
+ <real val="2.4"/>
+ </attribute>
+ <attribute name="name">
+ <string>#list#</string>
+ </attribute>
+ <attribute name="stereotype">
+ <string/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_attributes">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="visible_attributes">
+ <boolean val="true"/>
+ </attribute>
+ <attribute name="visible_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="attributes">
+ <composite type="umlattribute">
+ <attribute name="name">
+ <string>#entries#</string>
+ </attribute>
+ <attribute name="type">
+ <string>#GList *#</string>
+ </attribute>
+ <attribute name="value">
+ <string/>
+ </attribute>
+ <attribute name="visibility">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="class_scope">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <attribute name="operations"/>
+ <attribute name="template">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="templates"/>
+ </object>
+ <object type="UML - Class" version="0" id="O9">
+ <attribute name="obj_pos">
+ <point val="27.9,18.85"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="27.85,18.8;33.598,22.1"/>
+ </attribute>
+ <attribute name="elem_corner">
+ <point val="27.9,18.85"/>
+ </attribute>
+ <attribute name="elem_width">
+ <real val="5.648"/>
+ </attribute>
+ <attribute name="elem_height">
+ <real val="3.2"/>
+ </attribute>
+ <attribute name="name">
+ <string>#int_range#</string>
+ </attribute>
+ <attribute name="stereotype">
+ <string/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_attributes">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="suppress_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="visible_attributes">
+ <boolean val="true"/>
+ </attribute>
+ <attribute name="visible_operations">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="attributes">
+ <composite type="umlattribute">
+ <attribute name="name">
+ <string>#min#</string>
+ </attribute>
+ <attribute name="type">
+ <string>#gint#</string>
+ </attribute>
+ <attribute name="value">
+ <string/>
+ </attribute>
+ <attribute name="visibility">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="class_scope">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ <composite type="umlattribute">
+ <attribute name="name">
+ <string>#max#</string>
+ </attribute>
+ <attribute name="type">
+ <string>#gint#</string>
+ </attribute>
+ <attribute name="value">
+ <string/>
+ </attribute>
+ <attribute name="visibility">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="abstract">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="class_scope">
+ <boolean val="false"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <attribute name="operations"/>
+ <attribute name="template">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="templates"/>
+ </object>
+ <object type="UML - Association" version="0" id="O10">
+ <attribute name="obj_pos">
+ <point val="30.724,18.85"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="19.0328,15.2;32.174,20.45"/>
+ </attribute>
+ <attribute name="orth_points">
+ <point val="30.724,18.85"/>
+ <point val="30.724,18.25"/>
+ <point val="20.4828,18.25"/>
+ <point val="20.4828,16.65"/>
+ </attribute>
+ <attribute name="orth_orient">
+ <enum val="1"/>
+ <enum val="0"/>
+ <enum val="1"/>
+ </attribute>
+ <attribute name="name">
+ <string/>
+ </attribute>
+ <attribute name="direction">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="ends">
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string/>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="0"/>
+ </attribute>
+ </composite>
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string/>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="1"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <connections>
+ <connection handle="0" to="O9" connection="1"/>
+ <connection handle="1" to="O3" connection="6"/>
+ </connections>
+ </object>
+ <object type="UML - Association" version="0" id="O11">
+ <attribute name="obj_pos">
+ <point val="20.836,19.2"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="19.0328,15.2;22.286,20.8"/>
+ </attribute>
+ <attribute name="orth_points">
+ <point val="20.836,19.2"/>
+ <point val="20.836,18.25"/>
+ <point val="20.4828,18.25"/>
+ <point val="20.4828,16.65"/>
+ </attribute>
+ <attribute name="orth_orient">
+ <enum val="1"/>
+ <enum val="0"/>
+ <enum val="1"/>
+ </attribute>
+ <attribute name="name">
+ <string/>
+ </attribute>
+ <attribute name="direction">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="ends">
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string/>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="0"/>
+ </attribute>
+ </composite>
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string/>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="1"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <connections>
+ <connection handle="0" to="O7" connection="1"/>
+ <connection handle="1" to="O3" connection="6"/>
+ </connections>
+ </object>
+ <object type="UML - Association" version="0" id="O12">
+ <attribute name="obj_pos">
+ <point val="9.698,19.05"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="8.248,15.2;21.9328,20.65"/>
+ </attribute>
+ <attribute name="orth_points">
+ <point val="9.698,19.05"/>
+ <point val="9.698,18.25"/>
+ <point val="20.4828,18.25"/>
+ <point val="20.4828,16.65"/>
+ </attribute>
+ <attribute name="orth_orient">
+ <enum val="1"/>
+ <enum val="0"/>
+ <enum val="1"/>
+ </attribute>
+ <attribute name="name">
+ <string/>
+ </attribute>
+ <attribute name="direction">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="ends">
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string/>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="0"/>
+ </attribute>
+ </composite>
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string/>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="1"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <connections>
+ <connection handle="0" to="O5" connection="1"/>
+ <connection handle="1" to="O3" connection="6"/>
+ </connections>
+ </object>
+ <object type="UML - Association" version="0" id="O13">
+ <attribute name="obj_pos">
+ <point val="16.0404,22.4"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="14.5904,15.2;21.9328,24"/>
+ </attribute>
+ <attribute name="orth_points">
+ <point val="16.0404,22.4"/>
+ <point val="16.0404,18.25"/>
+ <point val="20.4828,18.25"/>
+ <point val="20.4828,16.65"/>
+ </attribute>
+ <attribute name="orth_orient">
+ <enum val="1"/>
+ <enum val="0"/>
+ <enum val="1"/>
+ </attribute>
+ <attribute name="name">
+ <string/>
+ </attribute>
+ <attribute name="direction">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="ends">
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string/>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="0"/>
+ </attribute>
+ </composite>
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string/>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="1"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <connections>
+ <connection handle="0" to="O6" connection="1"/>
+ <connection handle="1" to="O3" connection="6"/>
+ </connections>
+ </object>
+ <object type="UML - Association" version="0" id="O14">
+ <attribute name="obj_pos">
+ <point val="27.0208,22.55"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="19.0328,15.2;28.4708,24.15"/>
+ </attribute>
+ <attribute name="orth_points">
+ <point val="27.0208,22.55"/>
+ <point val="27.0208,18.25"/>
+ <point val="20.4828,18.25"/>
+ <point val="20.4828,16.65"/>
+ </attribute>
+ <attribute name="orth_orient">
+ <enum val="1"/>
+ <enum val="0"/>
+ <enum val="1"/>
+ </attribute>
+ <attribute name="name">
+ <string>#union#</string>
+ </attribute>
+ <attribute name="direction">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="ends">
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string/>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="0"/>
+ </attribute>
+ </composite>
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string/>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="1"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <connections>
+ <connection handle="0" to="O8" connection="1"/>
+ <connection handle="1" to="O3" connection="6"/>
+ </connections>
+ </object>
+ <object type="UML - Association" version="0" id="O15">
+ <attribute name="obj_pos">
+ <point val="31.5416,24.45"/>
+ </attribute>
+ <attribute name="obj_bb">
+ <rectangle val="24.7656,12.7;36.3,25.9"/>
+ </attribute>
+ <attribute name="orth_points">
+ <point val="31.5416,24.45"/>
+ <point val="34.85,24.45"/>
+ <point val="34.85,14.15"/>
+ <point val="26.2156,14.15"/>
+ </attribute>
+ <attribute name="orth_orient">
+ <enum val="0"/>
+ <enum val="1"/>
+ <enum val="0"/>
+ </attribute>
+ <attribute name="name">
+ <string/>
+ </attribute>
+ <attribute name="direction">
+ <enum val="0"/>
+ </attribute>
+ <attribute name="ends">
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string>#1#</string>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="2"/>
+ </attribute>
+ </composite>
+ <composite>
+ <attribute name="role">
+ <string/>
+ </attribute>
+ <attribute name="multiplicity">
+ <string>#*#</string>
+ </attribute>
+ <attribute name="arrow">
+ <boolean val="false"/>
+ </attribute>
+ <attribute name="aggregate">
+ <enum val="0"/>
+ </attribute>
+ </composite>
+ </attribute>
+ <connections>
+ <connection handle="0" to="O8" connection="9"/>
+ <connection handle="1" to="O3" connection="4"/>
+ </connections>
+ </object>
+ </layer>
+</diagram>
diff --git a/docs/random/wtay/caps-negociation b/docs/random/wtay/caps-negociation
new file mode 100644
index 0000000000..1207cd9751
--- /dev/null
+++ b/docs/random/wtay/caps-negociation
@@ -0,0 +1,345 @@
+caps negotiation
+================
+
+1) purpose
+----------
+
+The pads expose the media types they can handle using a mime
+type and a set of properties. Before the pad is created or
+used to pass buffers, we only know the global 'range' of media
+data this pad can accept. When the element has had a chance to
+look at the media data, only then it knows the exact values of the
+properties.
+
+example1:
+!
+! The mp3 decoder exposes the capabilities of its src pad
+! with the following caps:
+!
+! 'mpg123_src':
+! MIME type: 'audio/raw':
+! format: Integer: 16
+! depth: Integer: 16
+! rate: Integer range: 11025 - 48000
+! channels: Integer range: 1 - 2
+
+as you can see in example1, the padtemplate has both a range
+(for the audio rate) and a list (for the number of channels)
+for its properties.
+
+only when the mpg123 element has decoded the first mpeg audio
+header, it knows the exact values of the rate and channels
+properties.
+
+suppose that we want to connect this src pad to the sink pad
+of an audiosink with the properties given in example2:
+
+example2:
+!
+! 'audiosink_sink':
+! MIME type: 'audio/raw':
+! format: Integer: 16
+! depth: List:
+! Integer: 8
+! Integer: 16
+! rate: Integer range: 8000 - 44000
+! channels: Integer range: 1 - 2
+
+we can see that connecting the mpg123 src pad with the
+audiosinks sink pad can cause a potential problem with the
+rate property.
+
+When the mpg123 decoder decides to output raw audio with a
+48000Hz samplerate, the audiosink will not be able to handle
+it. The conservative approach would be to disallow the connection
+between the two incompatible pads. This rules out any potential
+problems but severely limits the amount of possible connections
+between the elements.
+
+Another approach would be to allow the connection (and mark it
+as dangerous) and let the two elements figure out a suitable
+media type at runtime. This procedure is called caps negotiation.
+
+
+2) a bit of history
+-------------------
+
+The typing of the data that was attached to a buffer used to be
+done using GstMeta* (and it still is as of 11 feb 2001). With
+the new GstCaps and GstProps system this typing is gradually moved
+to the pads and to the padtemplates. This has several advantages:
+
+ - the typing of the data tends to be static. The type of media
+ doesn't change for every buffer.
+
+ - Moving the typing up to the pad(templates) allows us to save
+ them into the registry and allows us to figure out what pads
+ are compatible.
+
+ - the current metadata implementation needs header files. this may
+ change when we also use properties for metadata.
+
+example3:
+!
+! This is the current GstMeta structure that travels with audio buffers
+!
+! struct _MetaAudioRaw {
+! GstMeta meta;
+!
+! /* formatting information */
+! gint format;
+! gint channels;
+! gint frequency;
+! gint bps;
+! };
+
+
+The question still remains what purpose the metadata will serve
+now that we expose the media type in the pads. Some possibilities:
+
+ - interesting information, not describing the data itself but the
+ context in which the data was generated (suggested buffer size,
+ timestamps, etc...)
+
+ - user app metadata.
+
+In this proposal we also assume that the current use of metadata using
+GstMeta is deprecated and that we move this information to the properties
+of the pads.
+
+
+3) the pad/padtemplates caps
+----------------------------
+
+All elements have to provide a padtemplate for their pads.
+
+The padtemplates provide a range of possible media types this pad can
+src/sink. the main purpose for the padtemplates is to allow a
+rough guess at which pads are compatible before even a single buffer
+has been processed by the element.
+
+pads are usually created from the templates. When the pad is created
+it has no GstCaps* attached to it yet. The possible caps this pad
+can have is exposed in the padtemplate. The caps are filled in by
+the element when it knows the values for the caps.
+
+
+4) the connect function
+-----------------------
+
+when two pads are connected the following steps will take
+placei (not sure, FIXME):
+
+ - if both pads have caps, the caps are checked. If the caps
+ are incompatible, the padtemplates are checked, if they
+ are compatible, caps negotiation is performed.
+
+ - if one of the pads has caps, the caps is checked against
+ the padtemplate of the peer pad. If they are incompatible,
+ the padtemplates are compared, if they are incompatible,
+ caps negotiation is performed.
+
+ - if none of the pads have caps, the padtemplates are checked,
+ if they are incompatible, a warning is issued.
+
+
+5) when the element knows the media type it is handling
+-------------------------------------------------------
+
+When the element has received its first buffer it will know
+the media type it is handling by inspecting the buffer.
+
+before pushing the data out to its peer element(s), the element
+will set its src pad with the appropriate caps and properties.
+These caps must follow the following rules:
+
+ - the caps must be compatible with the padtemplates of this
+ pad.
+
+ - the caps cannot contain ranges or lists.
+
+when the element wants to change the caps of a pad, it has to
+perform gst_pad_renegotiate (GstPad *pad). this will trigger
+the caps negotiation procedure.
+
+this will trigger the class method of the pad and calls the pads
+gst_pad_negotiate function:
+
+ GstCaps *gst_pad_negotiate (GstPad *pad, GstCaps *caps, guint count);
+
+This function takes a GstCaps *structure as an argument (typically the
+current caps of the pad) and a negotiation counter. this counter can be
+used to keep track of the negotiation process.
+
+The pad then creates a new caps structure with the desired caps.
+If the caps are accepted, it just returns the provided input caps. the
+_renegotiate function will set the caps of both pads whenever the
+input caps are the same (pointer wise) as the input caps.
+
+the caps structure is checked against the padtemplate of the peer pad,
+if it is incompatible the gst_pad_negotiate function is called again
+and the element is supposed to create another caps structure.
+
+the gst_pad_renegotiate function then calls the gst_pad_negotiate
+function of the peer pad with the new caps as the argument. The peer
+pad can adjust or create a new caps if it doesn't accept it.
+
+the caps structure keeps on bouncing between the two pads until one
+of the pads negotiation functions returns the caps unmodified.
+
+The element can also return a NULL pointer if it has run out of
+options for the caps structure. When this happens, both pads are set
+the the NULL caps again and the pad connnection is broken.
+
+The negotiation process is stopped after a fixed number of tries,
+when the counter has reached some limit. This limit is typically
+checked by the pads negotiate function.
+
+
+6) caps negotiation function
+----------------------------
+
+the negotiate function of a pad is called whenever the pad or
+peer pad has performed _renegotiate.
+
+example5:
+!
+! this is the caps negotiation function implemented by an element on
+! one of its sink pads.
+!
+! static GstCaps*
+! gst_pad_negotiate (GstPad *pad, GstCaps *caps, guint counter)
+! {
+! /* we don't accept anything else than audio/raw */
+! if (strcmp (gst_caps_get_mime (caps), "audio/raw"))
+! return NULL;
+!
+! if (gst_caps_get_int_prop (caps, "format") != AFMT_S16_LE)
+! return NULL;
+!
+! /* we accept everything else */
+! return caps;
+! }
+
+When the negotiate function returns NULL (it does not accept the
+specified caps of the peer pad), the negotiation process is stopped.
+
+
+
+APPENDIX A: use cases
+=====================
+
+1) mpg123 src!sink audiosink
+----------------------------
+
+When the pads are connected the padtemplates are checked and it
+turns out that the pads might be incompatible (mpg123 can do
+48000Hz while audiosink can do 44000Hz). Nothing happens at
+connect time except for the user app that can mark this connection
+as possibly dangerous and keep some spare elements ready for when
+the pads turn out to be incompatible.
+
+both elements start out with no caps at all (NULL). mpg123 wants
+to output a buffer with specific properties. It calls
+gst_pad_renegotiate (mpg123->srcpad).
+
+The _renegotiate functions calls the negotiate function of the
+mpg123->srcpad. the negotiate function would look like this:
+
+
+/*
+ * The mpg123 element cannot convert the decoded type into something
+ * else so it has to force the caps of the src pad into the specific
+ * type as defined by the mp3.
+ */
+static GstCaps*
+gst_mpeg123_src_negotiate (GstPad *pad, GstCaps *caps, guint counter)
+{
+ GstMpg123 *mpg123;
+
+ mpg123 = GST_MPG123 (gst_pad_get_parent (pad));
+
+ /* we got caps in, check them */
+ if (caps != NULL) {
+ if (!strcmp (gst_caps_get_mime (caps), "audio/raw") &&
+ (gst_caps_get_int_prop (caps, "format") == AFMT_S16_LE) &&
+ (gst_caps_get_int_prop (caps, "depth") == 16) &&
+ (gst_caps_get_int_prop (caps, "rate") == mpg123->rate) &&
+ (gst_caps_get_int_prop (caps, "channels") == mpg123->channels)) {
+ return caps;
+ }
+ }
+ /* we didn't get caps, so we decide */
+ else if (counter != 2) {
+ GstCaps *new;
+
+ /* fill in our desired caps */
+ new = gst_caps_new_with_props (
+ "src_caps", /* name */
+ "audio/raw", /* mime */
+ gst_props_new (
+ "format", GST_PROPS_INT (AFMT_S16_LE),
+ "depth", GST_PROPS_INT (16),
+ "rate", GST_PROPS_INT (mpg123->rate),
+ "channels", GST_PROPS_INT (mpg123->channels),
+ NULL
+ )
+ );
+ return caps;
+ }
+ /* too many attempts at nogotiation, bail out */
+ return NULL;
+}
+
+
+The audiosink pad negotiate function would look like this:
+
+/*
+ * The audiosink has a wide range of possible parameters for
+ * its sink pad, based on the audio card capabilities and
+ * possibly the element configuration.
+ * we assume the audiosink element can be both the initiator of
+ * the negotiations and the negotiated one.
+ */
+static GstCaps*
+gst_audiosink_sink_negotiate (GstPad *pad, GstCaps *caps, guint counter)
+{
+ GstAudiosink *audiosink;
+ gboolean accepted = TRUE;
+
+ audiosink = GST_AUDIOSINK (gst_pad_get_parent (pad));
+
+ /* we got caps in, we know they will match the padtemplate */
+ if (caps != NULL) {
+ return caps;
+ }
+ /* we didn't get caps, so we decide */
+ else if (counter != 2) {
+ GstCaps *new;
+
+ /* fill in our desired caps */
+ new = gst_caps_new_with_props (
+ "sink_caps", /* name */
+ "audio/raw", /* mime */
+ gst_props_new (
+ "format", GST_PROPS_INT (audiosink->format),
+ "depth", GST_PROPS_INT (audiosink->depth),
+ "rate", GST_PROPS_INT (audiosink->rate),
+ "channels", GST_PROPS_INT (audiosink->channels),
+ NULL
+ )
+ );
+ return caps;
+ }
+ /* too many attempts at nogotiation, bail out */
+ return NULL;
+}
+
+
+
+
+
+
+
+
+
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 1b5d86647b..17a14055c2 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -1,4 +1,4 @@
SUBDIRS = autoplug \
helloworld helloworld2 \
queue queue2 queue3 queue4 \
- launch thread xml plugins
+ launch thread xml plugins typefind
diff --git a/examples/plugins/example.c b/examples/plugins/example.c
index b958272bb1..00cf8c19d7 100644
--- a/examples/plugins/example.c
+++ b/examples/plugins/example.c
@@ -17,9 +17,14 @@
* Boston, MA 02111-1307, USA.
*/
+/* First, include the header file for the plugin, to bring in the
+ * object definition and other useful things.
+ */
#include "example.h"
-/* elementfactory information */
+/* The ElementDetails structure gives a human-readable description
+ * of the plugin, as well as author and version data.
+ */
static GstElementDetails example_details = {
"An example plugin",
"Example",
@@ -29,30 +34,47 @@ static GstElementDetails example_details = {
"(C) 2000",
};
-/* Example signals and args */
+/* These are the signals that this element can fire. They are zero-
+ * based because the numbers themselves are private to the object.
+ * LAST_SIGNAL is used for initialization of the signal array.
+ */
enum {
+ ASDF,
/* FILL ME */
LAST_SIGNAL
};
+/* Arguments are identified the same way, but cannot be zero, so you
+ * must leave the ARG_0 entry in as a placeholder.
+ */
enum {
ARG_0,
- ARG_ACTIVE
+ ARG_ACTIVE,
+ /* FILL ME */
};
+/* The PadFactory structures describe what pads the element has or
+ * can have. They can be quite complex, but for this example plugin
+ * they are rather simple.
+ */
static GstPadFactory sink_factory = {
- "sink", /* the name of the pads */
- GST_PAD_FACTORY_SINK, /* type of the pad */
- GST_PAD_FACTORY_ALWAYS, /* ALWAYS/SOMETIMES */
- GST_PAD_FACTORY_CAPS(
- "example_sink", /* the name of the caps */
- "unknown/unknown", /* the mime type of the caps */
- "something", GST_PROPS_INT (1), /* a property */
- "foo", GST_PROPS_BOOLEAN (TRUE) /* another property */
+ "sink", /* The name of the pad */
+ GST_PAD_FACTORY_SINK, /* Direction of the pad */
+ GST_PAD_FACTORY_ALWAYS, /* The pad exists for every instance */
+ GST_PAD_FACTORY_CAPS( /* This factory has specific capabilities */
+ "example_sink", /* The name of the caps */
+ "unknown/unknown", /* The overall MIME/type */
+ "foo", GST_PROPS_INT (1), /* An integer property */
+ "bar", GST_PROPS_BOOLEAN (TRUE), /* A boolean */
+ "baz", GST_PROPS_LIST ( /* A list of values for */
+ GST_PROPS_INT (1),
+ GST_PROPS_INT (3)
+ )
),
- NULL
+ NULL /* All factories must be NULL-terminated */
};
+/* This factory is much simpler, and defines the source pad. */
static GstPadFactory src_factory = {
"src",
GST_PAD_FACTORY_SRC,
@@ -65,19 +87,35 @@ static GstPadFactory src_factory = {
};
-static void gst_example_class_init (GstExampleClass *klass);
-static void gst_example_init (GstExample *example);
+/* A number of functon prototypes are given so we can refer to them later. */
+static void gst_example_class_init (GstExampleClass *klass);
+static void gst_example_init (GstExample *example);
-static void gst_example_chain (GstPad *pad, GstBuffer *buf);
+static void gst_example_chain (GstPad *pad, GstBuffer *buf);
-static void gst_example_set_arg (GtkObject *object,GtkArg *arg,guint id);
-static void gst_example_get_arg (GtkObject *object,GtkArg *arg,guint id);
+static void gst_example_set_arg (GtkObject *object,GtkArg *arg,guint id);
+static void gst_example_get_arg (GtkObject *object,GtkArg *arg,guint id);
-GstPadTemplate *src_template, *sink_template;
+/* These hold the constructed pad templates, which are created during
+ * plugin load, and used during element instantiation.
+ */
+static GstPadTemplate *src_template, *sink_template;
+/* The parent class pointer needs to be kept around for some object
+ * operations.
+ */
static GstElementClass *parent_class = NULL;
-//static guint gst_example_signals[LAST_SIGNAL] = { 0 };
+/* This array holds the ids of the signals registered for this object.
+ * The array indexes are based on the enum up above.
+ */
+static guint gst_example_signals[LAST_SIGNAL] = { 0 };
+
+/* This function is used to register and subsequently return the type
+ * identifier for this object class. On first invocation, it will
+ * register the type, providing the name of the class, struct sizes,
+ * and pointers to the various functions that define the class.
+ */
GtkType
gst_example_get_type(void)
{
@@ -90,8 +128,8 @@ gst_example_get_type(void)
sizeof(GstExampleClass),
(GtkClassInitFunc)gst_example_class_init,
(GtkObjectInitFunc)gst_example_init,
- (GtkArgSetFunc)gst_example_set_arg,
- (GtkArgGetFunc)gst_example_get_arg,
+ (GtkArgSetFunc)NULL, /* These last three are depracated */
+ (GtkArgGetFunc)NULL,
(GtkClassInitFunc)NULL,
};
example_type = gtk_type_unique(GST_TYPE_ELEMENT,&example_info);
@@ -99,70 +137,166 @@ gst_example_get_type(void)
return example_type;
}
+/* In order to create an instance of an object, the class must be
+ * initialized by this function. GtkObject will take care of running
+ * it, based on the pointer to the function provided above.
+ */
static void
gst_example_class_init (GstExampleClass *klass)
{
+ /* Class pointers are needed to supply pointers to the private
+ * implementations of parent class methods.
+ */
GtkObjectClass *gtkobject_class;
GstElementClass *gstelement_class;
+ /* Since the example class contains the parent classes, you can simply
+ * cast the pointer to get access to the parent classes.
+ */
gtkobject_class = (GtkObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
+ /* The parent class is needed for class method overrides. */
parent_class = gtk_type_class(GST_TYPE_ELEMENT);
+ /* Here we add an argument to the object. This argument is an integer,
+ * and can be both read and written.
+ */
gtk_object_add_arg_type("GstExample::active", GTK_TYPE_INT,
GTK_ARG_READWRITE, ARG_ACTIVE);
+ /* Here we add a signal to the object. This is avery useless signal
+ * called asdf. The signal will also pass a pointer to the listeners
+ * which happens to be the example element itself */
+ gst_example_signals[ASDF] =
+ gtk_signal_new("asdf", GTK_RUN_LAST, gtkobject_class->type,
+ GTK_SIGNAL_OFFSET (GstExampleClass, asdf),
+ gtk_marshal_NONE__POINTER, GTK_TYPE_NONE, 1,
+ GST_TYPE_EXAMPLE);
+
+ gtk_object_class_add_signals (gtkobject_class, gst_example_signals,
+ LAST_SIGNAL);
+
+ /* The last thing is to provide the functions that implement get and set
+ * of arguments.
+ */
gtkobject_class->set_arg = gst_example_set_arg;
gtkobject_class->get_arg = gst_example_get_arg;
}
+/* This function is responsible for initializing a specific instance of
+ * the plugin.
+ */
static void
gst_example_init(GstExample *example)
{
+ /* First we create the sink pad, which is the input to the element.
+ * We will use the sink_template constructed in the plugin_init function
+ * (below) to quickly generate the pad we need.
+ */
example->sinkpad = gst_pad_new_from_template (sink_template, "sink");
- gst_element_add_pad(GST_ELEMENT(example),example->sinkpad);
+ /* Setting the chain function allows us to supply the function that will
+ * actually be performing the work. Without this, the element would do
+ * nothing, with undefined results (assertion failures and such).
+ */
gst_pad_set_chain_function(example->sinkpad,gst_example_chain);
+ /* We then must add this pad to the element's list of pads. The base
+ * element class manages the list of pads, and provides accessors to it.
+ */
+ gst_element_add_pad(GST_ELEMENT(example),example->sinkpad);
+ /* The src pad, the output of the element, is created and registered
+ * in the same way, with the exception of the chain function. Source
+ * pads don't have chain functions, because they can't accept buffers,
+ * they only produce them.
+ */
example->srcpad = gst_pad_new_from_template (src_template, "src");
gst_element_add_pad(GST_ELEMENT(example),example->srcpad);
+ /* Initialization of element's private variables. */
example->active = FALSE;
}
+/* The chain function is the heart of the element. It's where all the
+ * work is done. It is passed a pointer to the pad in question, as well
+ * as the buffer provided by the peer element.
+ */
static void
gst_example_chain (GstPad *pad, GstBuffer *buf)
{
GstExample *example;
+ GstBuffer *outbuf;
+ /* Some of these checks are of dubious value, since if there were not
+ * already true, the chain function would never be called.
+ */
g_return_if_fail(pad != NULL);
g_return_if_fail(GST_IS_PAD(pad));
g_return_if_fail(buf != NULL);
- //g_return_if_fail(GST_IS_BUFFER(buf));
+ /* We need to get a pointer to the element this pad belogs to. */
example = GST_EXAMPLE(gst_pad_get_parent (pad));
+ /* A few more sanity checks to make sure that the element that owns
+ * this pad is the right kind of element, in case something got confused.
+ */
g_return_if_fail(example != NULL);
g_return_if_fail(GST_IS_EXAMPLE(example));
+ /* If we are supposed to be doing something, here's where it happens. */
if (example->active) {
- /* DO STUFF */
- }
+ /* In this example we're going to copy the buffer to another one,
+ * so we need to allocate a new buffer first. */
+ outbuf = gst_buffer_new();
+
+ /* We need to copy the size and offset of the buffer at a minimum. */
+ GST_BUFFER_SIZE (outbuf) = GST_BUFFER_SIZE (buf);
+ GST_BUFFER_OFFSET (outbuf) = GST_BUFFER_OFFSET (buf);
+
+ /* Then allocate the memory for the new buffer */
+ GST_BUFFER_DATA (outbuf) = (guchar *)g_malloc (GST_BUFFER_SIZE (outbuf));
+
+ /* Then copy the data in the incoming buffer into the new buffer. */
+ memcpy (GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (outbuf));
+
+ /* When we're done with the buffer, we push it on to the next element
+ * in the pipeline, through the element's source pad, which is stored
+ * in the element's structure.
+ */
+ gst_pad_push(example->srcpad,outbuf);
- gst_pad_push(example->srcpad,buf);
+ /* For fun we'll emit our useless signal here */
+ gtk_signal_emit (GTK_OBJECT (example), gst_example_signals[ASDF],
+ example);
+
+ /* If we're not doing something, just send the original incoming buffer. */
+ } else {
+ gst_pad_push(example->srcpad,buf);
+ }
}
+/* Arguments are part of the Gtk+ object system, and these functions
+ * enable the element to respond to various arguments.
+ */
static void
gst_example_set_arg (GtkObject *object,GtkArg *arg,guint id)
{
GstExample *example;
- /* it's not null if we got it, but it might not be ours */
+ /* It's not null if we got it, but it might not be ours */
g_return_if_fail(GST_IS_EXAMPLE(object));
+
+ /* Get a pointer of the right type. */
example = GST_EXAMPLE(object);
- switch(id) {
+ /* Check the argument id to see which argument we're setting. */
+ switch (id) {
case ARG_ACTIVE:
+ /* Here we simply copy the value of the argument to our private
+ * storage. More complex operations can be done, but beware that
+ * they may occur at any time, possibly even while your chain function
+ * is running, if you are using threads.
+ */
example->active = GTK_VALUE_INT(*arg);
g_print("example: set active to %d\n",example->active);
break;
@@ -171,12 +305,13 @@ gst_example_set_arg (GtkObject *object,GtkArg *arg,guint id)
}
}
+/* The set function is simply the inverse of the get fuction. */
static void
gst_example_get_arg (GtkObject *object,GtkArg *arg,guint id)
{
GstExample *example;
- /* it's not null if we got it, but it might not be ours */
+ /* It's not null if we got it, but it might not be ours */
g_return_if_fail(GST_IS_EXAMPLE(object));
example = GST_EXAMPLE(object);
@@ -190,25 +325,45 @@ gst_example_get_arg (GtkObject *object,GtkArg *arg,guint id)
}
}
+/* This is the entry into the plugin itself. When the plugin loads,
+ * this function is called to register everything that the plugin provides.
+ */
GstPlugin*
plugin_init (GModule *module)
{
GstPlugin *plugin;
GstElementFactory *factory;
+ /* First we try to create a new Plugin structure. */
plugin = gst_plugin_new("example");
+ /* If we get a NULL back, chances are we're already loaded. */
g_return_val_if_fail(plugin != NULL, NULL);
+ /* We need to create an ElementFactory for each element we provide.
+ * This consists of the name of the element, the GtkType identifier,
+ * and a pointer to the details structure at the top of the file.
+ */
factory = gst_elementfactory_new("example", GST_TYPE_EXAMPLE, &example_details);
g_return_val_if_fail(factory != NULL, NULL);
+ /* The pad templates can be easily generated from the factories above,
+ * and then added to the list of padtemplates for the elementfactory.
+ * Note that the generated padtemplates are stored in static global
+ * variables, for the gst_example_init function to use later on.
+ */
sink_template = gst_padtemplate_new (&sink_factory);
gst_elementfactory_add_padtemplate (factory, sink_template);
src_template = gst_padtemplate_new (&src_factory);
gst_elementfactory_add_padtemplate (factory, src_template);
+ /* The very last thing is to register the elementfactory with the plugin. */
gst_plugin_add_factory (plugin, factory);
+ /* Now we can return the pointer to the newly created Plugin object. */
return plugin;
+
+ /* At this point, the GStreamer core registers the plugin, its
+ * elementfactories, padtemplates, etc., for use in you application.
+ */
}
diff --git a/examples/plugins/example.h b/examples/plugins/example.h
index d7f19a3f99..840b8a3d18 100644
--- a/examples/plugins/example.h
+++ b/examples/plugins/example.h
@@ -28,36 +28,61 @@ extern "C" {
#endif /* __cplusplus */
-/* Definition of structure storing data for this element. */
+/* This is the definition of the element's object structure. */
typedef struct _GstExample GstExample;
+/* The structure itself is derived from GstElement, as can be seen by the
+ * fact that there's a complete instance of the GstElement structure at
+ * the beginning of the object. This allows the element to be cast to
+ * an Element or even an Object.
+ */
struct _GstExample {
GstElement element;
+ /* We need to keep track of our pads, so we do so here. */
GstPad *sinkpad,*srcpad;
- gint8 active;
+ /* We'll use this to decide whether to do anything to the data we get. */
+ gboolean active;
};
-/* Standard definition defining a class for this element. */
+/* The other half of the object is its class. The class also derives from
+ * the same parent, though it must be the class structure this time.
+ * Function pointers for polymophic methods and signals are placed in this
+ * structure. */
typedef struct _GstExampleClass GstExampleClass;
+
struct _GstExampleClass {
GstElementClass parent_class;
+
+ /* signals */
+ void (*asdf) (GstElement *element, GstExample *example);
};
-/* Standard macros for defining types for this element. */
+/* Five standard preprocessing macros are used in the Gtk+ object system.
+ * The first uses the object's _get_type function to return the GtkType
+ * of the object.
+ */
#define GST_TYPE_EXAMPLE \
(gst_example_get_type())
+/* The second is a checking cast to the correct type. If the object passed
+ * is not the right type, a warning will be generated on stderr.
+ */
#define GST_EXAMPLE(obj) \
(GTK_CHECK_CAST((obj),GST_TYPE_EXAMPLE,GstExample))
+/* The third is a checking cast of the class instead of the object. */
#define GST_EXAMPLE_CLASS(klass) \
(GTK_CHECK_CLASS_CAST((klass),GST_TYPE_EXAMPLE,GstExample))
+/* The last two simply check to see if the passed pointer is an object or
+ * class of the correct type. */
#define GST_IS_EXAMPLE(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_EXAMPLE))
#define GST_IS_EXAMPLE_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_EXAMPLE))
-/* Standard function returning type information. */
+/* This is the only prototype needed, because it is used in the above
+ * GST_TYPE_EXAMPLE macro.
+ */
GtkType gst_example_get_type(void);
diff --git a/gst/Makefile.am b/gst/Makefile.am
index 5c6c686431..84be380e69 100644
--- a/gst/Makefile.am
+++ b/gst/Makefile.am
@@ -43,29 +43,48 @@ libgst_la_SOURCES = \
gstparse.c \
$(GSTARCH_SRCS)
+
+##### Oh this sucks so badly. This isn't funny. #####
+
# the compiler shoots cothreads.c in the head at -O6
# FIXME: these manual rules break the dependency generation, so we have a
# nasty hack here.
-LTCOMPILE2=$(LTCOMPILE) -O2
-COMPILE2=$(COMPILE) -O2
-cothreads.lo: cothreads.c
- @echo '$(LTCOMPILE2) -c $<'; \
- $(LTCOMPILE2) -Wp,-MD,.deps/$(*F).pp -c $<
- @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
- < .deps/$(*F).pp > .deps/$(*F).P; \
- tr ' ' '\012' < .deps/$(*F).pp \
- | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
- >> .deps/$(*F).P; \
- rm -f .deps/$(*F).pp
-cothreads.o: cothreads.c
- @echo '$(COMPILE2) -c $<'; \
- $(COMPILE2) -Wp,-MD,.deps/$(*F).pp -c $<
- @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
- < .deps/$(*F).pp > .deps/$(*F).P; \
- tr ' ' '\012' < .deps/$(*F).pp \
- | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
- >> .deps/$(*F).P; \
- rm -f .deps/$(*F).pp
+#LTCOMPILE2=$(LTCOMPILE) -O2
+#COMPILE2=$(COMPILE) -O2
+
+cothreads.lo: cothreads.c cothreads.h gst_private.h ../config.h gstinfo.c \
+gstarch.h gsti386.h
+ $(LIBTOOL) --mode=compile $(COMPILE) -O2 -c $<
+cothreads.o: cothreads.c cothreads.h gst_private.h ../config.h gstinfo.c \
+gstarch.h gsti386.h
+ $(COMPILE) -O2 -c $<
+
+# NOTDEPEND.cothreads.lo: cothreads.c
+# NOTDEPEND $(LTCOMPILE2) -c $<
+# NOTDEPEND.cothreads.o: cothreads.c
+# NOTDEPEND $(COMPILE2) -c $<
+
+#cothreads.lo: cothreads.c
+# @echo '$(LTCOMPILE2) -c $<'; \
+# $(LTCOMPILE2) -Wp,-MD,.deps/$(*F).pp -c $<
+# @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
+# < .deps/$(*F).pp > .deps/$(*F).P; \
+# tr ' ' '\012' < .deps/$(*F).pp \
+# | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+# >> .deps/$(*F).P; \
+# rm -f .deps/$(*F).pp
+#cothreads.o: cothreads.c
+# @echo '$(COMPILE2) -c $<'; \
+# $(COMPILE2) -Wp,-MD,.deps/$(*F).pp -c $<
+# @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
+# < .deps/$(*F).pp > .deps/$(*F).P; \
+# tr ' ' '\012' < .deps/$(*F).pp \
+# | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+# >> .deps/$(*F).P; \
+# rm -f .deps/$(*F).pp
+
+##### end immense suckage #####
+
libgstincludedir = $(includedir)/gst
libgstinclude_HEADERS = \
diff --git a/gst/autoplug/gststaticautoplug.c b/gst/autoplug/gststaticautoplug.c
index dc2e730faa..3eab16d77c 100644
--- a/gst/autoplug/gststaticautoplug.c
+++ b/gst/autoplug/gststaticautoplug.c
@@ -171,6 +171,33 @@ gst_autoplug_pads_autoplug_func (GstElement *src, GstPad *pad, GstElement *sink)
return connected;
}
+typedef struct {
+ GstElement *result;
+ GList *endcap;
+ gint i;
+} dynamic_pad_struct;
+
+static void
+autoplug_dynamic_pad (GstElement *element, GstPad *pad, gpointer data)
+{
+ dynamic_pad_struct *info = (dynamic_pad_struct *)data;
+ GList *pads = gst_element_get_pad_list (element);
+
+ GST_DEBUG (0,"attempting to dynamically create a ghostpad for %s=%s\n", GST_ELEMENT_NAME (element),
+ GST_PAD_NAME (pad));
+
+ while (pads) {
+ GstPad *pad = GST_PAD (pads->data);
+ pads = g_list_next (pads);
+
+ if (gst_caps_list_check_compatibility (gst_pad_get_caps_list (pad), info->endcap)) {
+ gst_element_add_ghost_pad (info->result, pad, g_strdup_printf("src_%02d", info->i));
+ GST_DEBUG (0,"gstpipeline: new dynamic pad %s\n", GST_PAD_NAME (pad));
+ break;
+ }
+ }
+}
+
static void
gst_autoplug_pads_autoplug (GstElement *src, GstElement *sink)
{
@@ -455,17 +482,34 @@ differ:
{
GList *endcap = (GList *)(endcaps->data);
GList *pads = gst_element_get_pad_list (thesrcelement);
+ gboolean have_pad = FALSE;
endcaps = g_list_next (endcaps);
+ GST_DEBUG (0,"attempting to create a ghostpad for %s\n", GST_ELEMENT_NAME (thesrcelement));
+
while (pads) {
GstPad *pad = GST_PAD (pads->data);
pads = g_list_next (pads);
if (gst_caps_list_check_compatibility (gst_pad_get_caps_list (pad), endcap)) {
gst_element_add_ghost_pad (result, pad, g_strdup_printf("src_%02d", i));
+ have_pad = TRUE;
break;
}
}
+ if (!have_pad) {
+ dynamic_pad_struct *data = g_new0(dynamic_pad_struct, 1);
+
+ data->result = result;
+ data->endcap = endcap;
+ data->i = i;
+
+ GST_DEBUG (0,"delaying the creation of a ghostpad for %s\n", GST_ELEMENT_NAME (thesrcelement));
+ gtk_signal_connect (GTK_OBJECT (thesrcelement), "new_pad",
+ autoplug_dynamic_pad, data);
+ gtk_signal_connect (GTK_OBJECT (thesrcelement), "new_ghost_pad",
+ autoplug_dynamic_pad, data);
+ }
}
}
diff --git a/gst/elements/gstdisksrc.c b/gst/elements/gstdisksrc.c
index 1978a15b56..9e81eb9b73 100644
--- a/gst/elements/gstdisksrc.c
+++ b/gst/elements/gstdisksrc.c
@@ -32,7 +32,7 @@
GstElementDetails gst_disksrc_details = {
- "asynchronous Disk Source",
+ "Disk Source",
"Source/File",
"Read from arbitrary point in a file",
VERSION,
diff --git a/gst/elements/gstelements.c b/gst/elements/gstelements.c
index 1621fd20b4..62b5a9288f 100644
--- a/gst/elements/gstelements.c
+++ b/gst/elements/gstelements.c
@@ -48,18 +48,17 @@ struct _elements_entry {
};
static struct _elements_entry _elements[] = {
- { "fakesrc", gst_fakesrc_get_type, &gst_fakesrc_details, NULL },
- { "fakesink", gst_fakesink_get_type, &gst_fakesink_details, NULL },
- { "asyncdisksrc", gst_disksrc_get_type, &gst_disksrc_details, NULL },
- { "audiosink", gst_audiosink_get_type, &gst_audiosink_details, gst_audiosink_factory_init },
- { "audiosrc", gst_audiosrc_get_type, &gst_audiosrc_details, NULL },
- { "disksrc", gst_disksrc_get_type, &gst_disksrc_details, NULL },
- { "identity", gst_identity_get_type, &gst_identity_details, NULL },
- { "fdsink", gst_fdsink_get_type, &gst_fdsink_details, NULL },
- { "fdsrc", gst_fdsrc_get_type, &gst_fdsrc_details, NULL },
- { "pipefilter", gst_pipefilter_get_type, &gst_pipefilter_details, NULL },
- { "sinesrc", gst_sinesrc_get_type, &gst_sinesrc_details, NULL },
- { "tee", gst_tee_get_type, &gst_tee_details, gst_tee_factory_init },
+ { "fakesrc", gst_fakesrc_get_type, &gst_fakesrc_details, NULL },
+ { "fakesink", gst_fakesink_get_type, &gst_fakesink_details, NULL },
+ { "audiosink", gst_audiosink_get_type, &gst_audiosink_details, gst_audiosink_factory_init },
+ { "audiosrc", gst_audiosrc_get_type, &gst_audiosrc_details, NULL },
+ { "disksrc", gst_disksrc_get_type, &gst_disksrc_details, NULL },
+ { "identity", gst_identity_get_type, &gst_identity_details, NULL },
+ { "fdsink", gst_fdsink_get_type, &gst_fdsink_details, NULL },
+ { "fdsrc", gst_fdsrc_get_type, &gst_fdsrc_details, NULL },
+ { "pipefilter", gst_pipefilter_get_type, &gst_pipefilter_details, NULL },
+ { "sinesrc", gst_sinesrc_get_type, &gst_sinesrc_details, NULL },
+ { "tee", gst_tee_get_type, &gst_tee_details, gst_tee_factory_init },
#if HAVE_LIBGHTTP
{ "httpsrc", gst_httpsrc_get_type, &gst_httpsrc_details, NULL },
diff --git a/gst/gst.c b/gst/gst.c
index a8aa7958fd..d46aeba2b9 100644
--- a/gst/gst.c
+++ b/gst/gst.c
@@ -35,11 +35,13 @@
#include "gsttypefind.h"
+#define MAX_PATH_SPLIT 16
gchar *_gst_progname;
extern gint _gst_trace_on;
+extern gboolean _gst_plugin_spew;
static gboolean gst_init_check (int *argc, gchar ***argv);
@@ -88,6 +90,31 @@ gst_init (int *argc, char **argv[])
}
}
+static void
+gst_add_paths_func (gchar *pathlist)
+{
+ gchar **paths;
+ gint j = 0;
+ gchar *lastpath = g_strdup (pathlist);
+
+ while (lastpath) {
+ paths = g_strsplit (lastpath, G_SEARCHPATH_SEPARATOR_S, MAX_PATH_SPLIT);
+ g_free (lastpath);
+ lastpath = NULL;
+
+ while (paths[j]) {
+ GST_INFO (GST_CAT_GST_INIT, "Adding plugin path: \"%s\"", paths[j]);
+ gst_plugin_add_path (paths[j]);
+ if (++j == MAX_PATH_SPLIT) {
+ lastpath = g_strdup (paths[j]);
+ g_strfreev (paths);
+ j=0;
+ break;
+ }
+ }
+ }
+}
+
/* returns FALSE if the program can be aborted */
static gboolean
gst_init_check (int *argc,
@@ -128,6 +155,16 @@ gst_init_check (int *argc,
(*argv)[i] = NULL;
}
+ else if (!strncmp ("--gst-plugin-spew", (*argv)[i], 17)) {
+ _gst_plugin_spew = TRUE;
+
+ (*argv)[i] = NULL;
+ }
+ else if (!strncmp ("--gst-plugin-path=", (*argv)[i], 17)) {
+ gst_add_paths_func ((*argv)[i]+18);
+
+ (*argv)[i] = NULL;
+ }
else if (!strncmp ("--help", (*argv)[i], 6)) {
showhelp = TRUE;
}
@@ -147,20 +184,33 @@ gst_init_check (int *argc,
}
}
+
+ /* check for ENV variables */
+ {
+ gchar *plugin_path = g_getenv("GST_PLUGIN_PATH");
+
+ gst_add_paths_func (plugin_path);
+ }
+
if (showhelp) {
guint i;
- g_print ("usage %s [OPTION...]\n", (*argv)[0]);
+ g_print ("usage %s [OPTION...]\n", _gst_progname);
g_print ("\nGStreamer options\n");
- g_print (" --gst-info-mask=FLAGS Gst info flags to set (current %08x)\n", gst_info_get_categories());
- g_print (" --gst-debug-mask=FLAGS Gst debugging flags to set\n");
+ g_print (" --gst-info-mask=FLAGS GST info flags to set (current %08x)\n", gst_info_get_categories());
+ g_print (" --gst-debug-mask=FLAGS GST debugging flags to set\n");
+ g_print (" --gst-plugin-spew Enable printout of errors while loading GST plugins\n");
+ g_print (" --gst-plugin-path=PATH Add directories separated with '%s' to the plugin search path\n",
+ G_SEARCHPATH_SEPARATOR_S);
- g_print ("\nGStreamer info/debug FLAGS (to be OR'ed)\n");
+ g_print ("\n Mask (to be OR'ed) info/debug FLAGS \n");
+ g_print ("--------------------------------------------------------\n");
for (i = 0; i<GST_CAT_MAX_CATEGORY; i++) {
- g_print (" 0x%08x %s %s\n", 1<<i,
+ g_print (" 0x%08x %s%s %s\n", 1<<i,
(gst_info_get_categories() & (1<<i)?"(enabled)":" "),
+ (gst_debug_get_categories() & (1<<i)?"/(enabled)":"/ "),
gst_get_category_name (i));
}
diff --git a/gst/gst.h b/gst/gst.h
index a2d98c6a7c..98e27aac25 100644
--- a/gst/gst.h
+++ b/gst/gst.h
@@ -49,12 +49,20 @@
#include <gst/gstparse.h>
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
/* initialize GST */
void gst_init(int *argc,char **argv[]);
void gst_main (void);
void gst_main_quit (void);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
#include <gst/gstlog.h>
#endif /* __GST_H__ */
diff --git a/gst/gstbin.c b/gst/gstbin.c
index 4e70873d03..00e9acfe13 100644
--- a/gst/gstbin.c
+++ b/gst/gstbin.c
@@ -770,9 +770,9 @@ gst_bin_create_plan_func (GstBin *bin)
gst_bin_schedule(bin);
- g_print ("gstbin \"%s\", eos providers:%d\n",
- GST_ELEMENT_NAME (bin),
- bin->num_eos_providers);
+// g_print ("gstbin \"%s\", eos providers:%d\n",
+// GST_ELEMENT_NAME (bin),
+// bin->num_eos_providers);
GST_DEBUG_LEAVE("(\"%s\")",GST_ELEMENT_NAME (bin));
}
@@ -805,11 +805,27 @@ gst_bin_iterate_func (GstBin *bin)
if (!chain->need_scheduling) continue;
if (chain->need_cothreads) {
+ GList *entries;
+
// all we really have to do is switch to the first child
// FIXME this should be lots more intelligent about where to start
GST_DEBUG (0,"starting iteration via cothreads\n");
- entry = GST_ELEMENT (chain->elements->data);
+ entries = chain->elements;
+ entry = NULL;
+
+ // find an element with a threadstate to start with
+ while (entries) {
+ entry = GST_ELEMENT (entries->data);
+
+ if (entry->threadstate)
+ break;
+ entries = g_list_next (entries);
+ }
+ // if we couldn't find one, bail out
+ if (entries == NULL)
+ GST_ERROR(GST_ELEMENT(bin),"no cothreaded elements found!");
+
GST_FLAG_SET (entry, GST_ELEMENT_COTHREAD_STOPPING);
GST_DEBUG (0,"set COTHREAD_STOPPING flag on \"%s\"(@%p)\n",
GST_ELEMENT_NAME (entry),entry);
diff --git a/gst/gstcaps.c b/gst/gstcaps.c
index d9268e48d7..ebdaccc301 100644
--- a/gst/gstcaps.c
+++ b/gst/gstcaps.c
@@ -252,11 +252,11 @@ gst_caps_get_type_id (GstCaps *caps)
* Set the type id of the caps.
*/
void
-gst_caps_set_type_id (GstCaps *caps, guint16 typeid)
+gst_caps_set_type_id (GstCaps *caps, guint16 type_id)
{
g_return_if_fail (caps != NULL);
- caps->id = typeid;
+ caps->id = type_id;
}
/**
diff --git a/gst/gstcaps.h b/gst/gstcaps.h
index eebaab82d1..dffa1cd3d5 100644
--- a/gst/gstcaps.h
+++ b/gst/gstcaps.h
@@ -37,7 +37,11 @@
typedef struct _GstCaps GstCaps;
typedef gpointer GstCapsFactoryEntry;
+#ifdef __cplusplus
+typedef GstCapsFactoryEntry * GstCapsFactory;
+#else // C++ was unable to compile with this
typedef GstCapsFactoryEntry GstCapsFactory[];
+#endif
struct _GstCaps {
gchar *name; /* the name of this caps */
@@ -62,7 +66,7 @@ const gchar* gst_caps_get_mime (GstCaps *caps);
void gst_caps_set_mime (GstCaps *caps, const gchar *mime);
guint16 gst_caps_get_type_id (GstCaps *caps);
-void gst_caps_set_type_id (GstCaps *caps, guint16 typeid);
+void gst_caps_set_type_id (GstCaps *caps, guint16 type_id);
GstCaps* gst_caps_set_props (GstCaps *caps, GstProps *props);
GstProps* gst_caps_get_props (GstCaps *caps);
diff --git a/gst/gstcpu.c b/gst/gstcpu.c
index 22a77d0897..d286bf7487 100644
--- a/gst/gstcpu.c
+++ b/gst/gstcpu.c
@@ -63,14 +63,23 @@ _gst_cpu_initialize (void)
}
if (edx & (1<<25)) {
_gst_cpu_flags |= GST_CPU_FLAG_SSE;
+ _gst_cpu_flags |= GST_CPU_FLAG_MMXEXT;
featurelist = stringcat(featurelist,"SSE ");
}
+ if (edx & (1<<24)) {
+ _gst_cpu_flags |= GST_CPU_FLAG_MMXEXT;
+ featurelist = stringcat(featurelist,"MMXEXT ");
+ }
+ if (edx & (1<<31)) {
+ _gst_cpu_flags |= GST_CPU_FLAG_3DNOW;
+ featurelist = stringcat(featurelist,"3DNOW ");
+ }
if (!_gst_cpu_flags) {
featurelist = stringcat(featurelist,"NONE");
}
- GST_INFO (GST_CAT_GST_INIT, "CPU features: %s",featurelist);
+ GST_INFO (GST_CAT_GST_INIT, "CPU features: (%08lx) %s",edx, featurelist);
g_free(featurelist);
}
diff --git a/gst/gstcpu.h b/gst/gstcpu.h
index f31e709256..e79b9c916a 100644
--- a/gst/gstcpu.h
+++ b/gst/gstcpu.h
@@ -27,6 +27,8 @@
typedef enum {
GST_CPU_FLAG_MMX = (1<<0),
GST_CPU_FLAG_SSE = (1<<1),
+ GST_CPU_FLAG_MMXEXT = (1<<2),
+ GST_CPU_FLAG_3DNOW = (1<<3),
} GstCPUFlags;
void _gst_cpu_initialize (void);
diff --git a/gst/gstelement.h b/gst/gstelement.h
index 398fb78391..655d18fafe 100644
--- a/gst/gstelement.h
+++ b/gst/gstelement.h
@@ -58,11 +58,11 @@ typedef enum {
static inline char *_gst_print_statename(int state) {
switch (state) {
- case GST_STATE_NONE_PENDING: return "none pending";break;
- case GST_STATE_NULL: return "null";break;
- case GST_STATE_READY: return "ready";break;
- case GST_STATE_PLAYING: return "playing";break;
- case GST_STATE_PAUSED: return "paused";break;
+ case GST_STATE_NONE_PENDING: return "NONE_PENDING";break;
+ case GST_STATE_NULL: return "NULL";break;
+ case GST_STATE_READY: return "READY";break;
+ case GST_STATE_PLAYING: return "PLAYING";break;
+ case GST_STATE_PAUSED: return "PAUSED";break;
default: return "";
}
return "";
diff --git a/gst/gstinfo.h b/gst/gstinfo.h
index cb11ca1ead..507b36b218 100644
--- a/gst/gstinfo.h
+++ b/gst/gstinfo.h
@@ -139,7 +139,7 @@ _gst_debug_register_funcptr (void *ptr, gchar *ptrname)
static inline gchar *
_gst_debug_nameof_funcptr (void *ptr)
{
- gchar *ptrname = __gst_function_pointers ? g_hash_table_lookup(__gst_function_pointers,ptr) : NULL;
+ gchar *ptrname = (gchar*)( __gst_function_pointers ? g_hash_table_lookup(__gst_function_pointers,ptr) : NULL );
// FIXME this must go away, it's a major leak
if (!ptrname) return g_strdup_printf("%p",ptr);
else return ptrname;
diff --git a/gst/gstpad.c b/gst/gstpad.c
index 74568b89bf..b28bdcfdbd 100644
--- a/gst/gstpad.c
+++ b/gst/gstpad.c
@@ -819,7 +819,7 @@ void
gst_pad_load_and_connect (xmlNodePtr self,
GstObject *parent)
{
- xmlNodePtr field = self->childs;
+ xmlNodePtr field = self->xmlChildrenNode;
GstPad *pad = NULL, *targetpad;
guchar *peer = NULL;
gchar **split;
@@ -927,22 +927,49 @@ gst_pad_ghost_save_thyself (GstPad *pad,
}
#ifndef gst_pad_push
-void gst_pad_push(GstPad *pad,GstBuffer *buf) {
- GstRealPad *peer = GST_RPAD_PEER(pad);
- GST_DEBUG_ENTER("(%s:%s)",GST_DEBUG_PAD_NAME(pad));
+/**
+ * gst_pad_push:
+ * @pad: the pad to push
+ * @buf: the buffer to push
+ *
+ * Push a buffer to the peer of the pad.
+ */
+void
+gst_pad_push (GstPad *pad, GstBuffer *buf)
+{
+ GstRealPad *peer = GST_RPAD_PEER (pad);
+
+ g_return_if_fail (peer != NULL);
+
+ GST_DEBUG_ENTER ("(%s:%s)", GST_DEBUG_PAD_NAME (pad));
+
if (peer->pushfunc) {
- GST_DEBUG (0,"calling pushfunc &%s of peer pad %s:%s\n",
- GST_DEBUG_FUNCPTR_NAME(peer->pushfunc),GST_DEBUG_PAD_NAME(((GstPad*)peer)));
- (peer->pushfunc)(((GstPad*)peer),buf);
+ GST_DEBUG (0, "calling pushfunc &%s of peer pad %s:%s\n",
+ GST_DEBUG_FUNCPTR_NAME (peer->pushfunc), GST_DEBUG_PAD_NAME (((GstPad*)peer)));
+ (peer->pushfunc) (((GstPad*)peer), buf);
} else
- GST_DEBUG (0,"no pushfunc\n");
+ GST_DEBUG (0, "no pushfunc\n");
}
#endif
#ifndef gst_pad_pull
-GstBuffer *gst_pad_pull(GstPad *pad) {
+/**
+ * gst_pad_pull:
+ * @pad: the pad to pull
+ *
+ * Pull a buffer from the peer pad.
+ *
+ * Returns: a new buffer from the peer pad.
+ */
+GstBuffer*
+gst_pad_pull (GstPad *pad)
+{
GstRealPad *peer = GST_RPAD_PEER(pad);
+
+ g_return_val_if_fail (peer != NULL, NULL);
+
GST_DEBUG_ENTER("(%s:%s)",GST_DEBUG_PAD_NAME(pad));
+
if (peer->pullfunc) {
GST_DEBUG (0,"calling pullfunc &%s (@%p) of peer pad %s:%s\n",
GST_DEBUG_FUNCPTR_NAME(peer->pullfunc),&peer->pullfunc,GST_DEBUG_PAD_NAME(((GstPad*)peer)));
@@ -955,9 +982,29 @@ GstBuffer *gst_pad_pull(GstPad *pad) {
#endif
#ifndef gst_pad_pullregion
-GstBuffer *gst_pad_pullregion(GstPad *pad,GstRegionType type,guint64 offset,guint64 len) {
+/**
+ * gst_pad_pullregion:
+ * @pad: the pad to pull the region from
+ * @type: the regiontype
+ * @offset: the offset/start of the buffer to pull
+ * @len: the length of the buffer to pull
+ *
+ * Pull a buffer region from the peer pad. The region to pull can be
+ * specified with a offset/lenght pair or with a start/legnth time
+ * indicator as specified by the type parameter.
+ *
+ * Returns: a new buffer from the peer pad with data in the specified
+ * region.
+ */
+GstBuffer*
+gst_pad_pullregion (GstPad *pad, GstRegionType type, guint64 offset, guint64 len)
+{
GstRealPad *peer = GST_RPAD_PEER(pad);
+
+ g_return_val_if_fail (peer != NULL, NULL);
+
GST_DEBUG_ENTER("(%s:%s,%d,%lld,%lld)",GST_DEBUG_PAD_NAME(pad),type,offset,len);
+
if (peer->pullregionfunc) {
GST_DEBUG (0,"calling pullregionfunc &%s of peer pad %s:%s\n",
GST_DEBUG_FUNCPTR_NAME(peer->pullregionfunc),GST_DEBUG_PAD_NAME(((GstPad*)peer)));
@@ -1278,23 +1325,6 @@ gst_pad_set_eos(GstPad *pad)
return TRUE;
}
-/*
-GstPad *
-gst_pad_select(GstPad *nextpad, ...) {
- va_list args;
- GstPad *pad;
- GSList *pads = NULL;
-
- // construct the list of pads
- va_start (args, nextpad);
- while ((pad = va_arg (args, GstPad*)))
- pads = g_slist_prepend (pads, pad);
- va_end (args);
-
- // now switch to the nextpad
-*/
-
-
/**
* gst_pad_set_element_private:
* @pad: the pad to set the private data to
diff --git a/gst/gstpad.h b/gst/gstpad.h
index 9d0e9012e6..ef21617fdd 100644
--- a/gst/gstpad.h
+++ b/gst/gstpad.h
@@ -26,6 +26,13 @@
#include <parser.h> // NOTE: This is xml-config's fault
+// Include compatability defines: if libxml hasn't already defined these,
+// we have an old version 1.x
+#ifndef xmlChildrenNode
+#define xmlChildrenNode childs
+#define xmlRootNode root
+#endif
+
#include <gst/gstobject.h>
#include <gst/gstbuffer.h>
#include <gst/cothreads.h>
@@ -283,7 +290,7 @@ void gst_pad_connect (GstPad *srcpad, GstPad *sinkpad);
void gst_pad_disconnect (GstPad *srcpad, GstPad *sinkpad);
#if 1
-void gst_pad_push (GstPad *pad, GstBuffer *buffer);
+void gst_pad_push (GstPad *pad, GstBuffer *buf);
#else
#define gst_pad_push(pad,buf) G_STMT_START{ \
if ((pad)->peer->pushfunc) ((pad)->peer->pushfunc)((pad)->peer,(buf)); \
@@ -299,8 +306,6 @@ GstBuffer* gst_pad_pullregion (GstPad *pad, GstRegionType type, guint64 offset
(((pad)->peer->pullregionfunc) ? ((pad)->peer->pullregionfunc)((pad)->peer,(type),(offset),(len)) : NULL)
#endif
-GstPad * gst_pad_select (GstPad *nextpad, ...);
-
#define gst_pad_eos(pad) (GST_RPAD_EOSFUNC(GST_RPAD_PEER(pad))(GST_PAD(GST_RPAD_PEER(pad))))
gboolean gst_pad_set_eos (GstPad *pad);
diff --git a/gst/gstplugin.c b/gst/gstplugin.c
index 9012bec2f6..f372fb920a 100644
--- a/gst/gstplugin.c
+++ b/gst/gstplugin.c
@@ -66,6 +66,8 @@ _gst_plugin_initialize (void)
_gst_libraries = NULL;
_gst_libraries_seqno = 0;
+ /* add the main (installed) library path */
+ _gst_plugin_paths = g_list_prepend (_gst_plugin_paths, PLUGINS_DIR);
/* if this is set, we add build-directory paths to the list */
#ifdef PLUGINS_USE_SRCDIR
@@ -82,9 +84,6 @@ _gst_plugin_initialize (void)
PLUGINS_SRCDIR "/gst/types");
_gst_plugin_paths = g_list_prepend (_gst_plugin_paths,
PLUGINS_SRCDIR "/gst/autoplug");
-#else /* PLUGINS_USE_SRCDIR */
- /* add the main (installed) library path */
- _gst_plugin_paths = g_list_prepend (_gst_plugin_paths, PLUGINS_DIR);
#endif /* PLUGINS_USE_SRCDIR */
doc = xmlParseFile (GST_CONFIG_DIR"/reg.xml");
@@ -101,6 +100,18 @@ _gst_plugin_initialize (void)
xmlFreeDoc (doc);
}
+/**
+ * gst_plugin_add_path:
+ * @path: the directory to add to the search path
+ *
+ * Add a directory to the path searched for plugins.
+ */
+void
+gst_plugin_add_path (const gchar *path)
+{
+ _gst_plugin_paths = g_list_prepend (_gst_plugin_paths,g_strdup(path));
+}
+
static time_t
get_time(const char * path)
{
@@ -216,7 +227,7 @@ gst_plugin_load_all(void)
path = _gst_plugin_paths;
while (path != NULL) {
- GST_DEBUG (GST_CAT_PLUGIN_LOADING,"loading plugins from %s\n",(gchar *)path->data);
+ GST_INFO (GST_CAT_PLUGIN_LOADING,"loading plugins from %s\n",(gchar *)path->data);
gst_plugin_load_recurse(path->data,NULL);
path = g_list_next(path);
}
@@ -366,7 +377,8 @@ gst_plugin_load_absolute (const gchar *name)
}
return TRUE;
} else if (_gst_plugin_spew) {
- gst_info("error loading plugin: %s, reason: %s\n", name, g_module_error());
+ // FIXME this should be some standard gst mechanism!!!
+ g_printerr ("error loading plugin %s, reason: %s\n", name, g_module_error());
}
return FALSE;
diff --git a/gst/gstplugin.h b/gst/gstplugin.h
index 545ce05fce..94e7824974 100644
--- a/gst/gstplugin.h
+++ b/gst/gstplugin.h
@@ -64,6 +64,8 @@ void _gst_plugin_initialize (void);
GstPlugin* gst_plugin_new (const gchar *name);
+void gst_plugin_add_path (const gchar *path);
+
const gchar* gst_plugin_get_name (GstPlugin *plugin);
void gst_plugin_set_name (GstPlugin *plugin, const gchar *name);
const gchar* gst_plugin_get_longname (GstPlugin *plugin);
diff --git a/gst/gstprops.c b/gst/gstprops.c
index b5b11386ab..d3ca3cf8b0 100644
--- a/gst/gstprops.c
+++ b/gst/gstprops.c
@@ -54,23 +54,23 @@ gst_props_create_entry (GstPropsFactory factory, gint *skipped)
tag = factory[i++];
switch (GPOINTER_TO_INT (tag)) {
- case GST_PROPS_INT_ID:
+ case GST_PROPS_INT_ID_NUM:
entry->propstype = GST_PROPS_INT_ID_NUM;
entry->data.int_data = GPOINTER_TO_INT (factory[i++]);
break;
- case GST_PROPS_INT_RANGE_ID:
+ case GST_PROPS_INT_RANGE_ID_NUM:
entry->propstype = GST_PROPS_INT_RANGE_ID_NUM;
entry->data.int_range_data.min = GPOINTER_TO_INT (factory[i++]);
entry->data.int_range_data.max = GPOINTER_TO_INT (factory[i++]);
break;
- case GST_PROPS_FOURCC_ID:
+ case GST_PROPS_FOURCC_ID_NUM:
entry->propstype = GST_PROPS_FOURCC_ID_NUM;
entry->data.fourcc_data = GPOINTER_TO_INT (factory[i++]);
break;
- case GST_PROPS_LIST_ID:
+ case GST_PROPS_LIST_ID_NUM:
g_print("gstprops: list not allowed in list\n");
break;
- case GST_PROPS_BOOL_ID:
+ case GST_PROPS_BOOL_ID_NUM:
entry->propstype = GST_PROPS_BOOL_ID_NUM;
entry->data.bool_data = GPOINTER_TO_INT (factory[i++]);
break;
@@ -154,7 +154,7 @@ gst_props_register_count (GstPropsFactory factory, guint *counter)
tag = factory[i];
switch (GPOINTER_TO_INT (tag)) {
- case GST_PROPS_LIST_ID:
+ case GST_PROPS_LIST_ID_NUM:
{
GstPropsEntry *list_entry;
@@ -241,13 +241,13 @@ gst_props_new (GstPropsFactoryEntry entry, ...)
value = va_arg (var_args, GstPropsFactoryEntry);
}
switch (GPOINTER_TO_INT (value)) {
- case GST_PROPS_END_ID:
+ case GST_PROPS_END_ID_NUM:
g_assert (inlist == TRUE);
inlist = FALSE;
skip = 0;
break;
- case GST_PROPS_LIST_ID:
+ case GST_PROPS_LIST_ID_NUM:
{
g_assert (inlist == FALSE);
diff --git a/gst/gstqueue.c b/gst/gstqueue.c
index ba91043b08..a500f9189a 100644
--- a/gst/gstqueue.c
+++ b/gst/gstqueue.c
@@ -251,11 +251,15 @@ gst_queue_chain (GstPad *pad, GstBuffer *buf)
static GstBuffer *
gst_queue_get (GstPad *pad)
{
- GstQueue *queue = GST_QUEUE (GST_OBJECT_PARENT (pad));
+ GstQueue *queue;
GstBuffer *buf = NULL;
GSList *front;
const guchar *name;
+ g_return_val_if_fail (pad != NULL, NULL);
+ g_return_val_if_fail (GST_IS_PAD (pad), NULL);
+
+ queue = GST_QUEUE (GST_OBJECT_PARENT (pad));
name = GST_ELEMENT_NAME (queue);
/* have to lock for thread-safety */
diff --git a/gst/gstscheduler.c b/gst/gstscheduler.c
index b2230b2fa5..cc6fe46d0e 100644
--- a/gst/gstscheduler.c
+++ b/gst/gstscheduler.c
@@ -105,6 +105,7 @@ gst_bin_src_wrapper (int argc,char *argv[])
// fprintf(stderr,"error, no getregionfunc in \"%s\"\n", name);
// else
buf = (GST_RPAD_GETREGIONFUNC(realpad))((GstPad*)realpad,realpad->regiontype,realpad->offset,realpad->len);
+ realpad->regiontype = GST_REGION_NONE;
} else {
g_return_val_if_fail (GST_RPAD_GETFUNC(realpad) != NULL, 0);
// if (GST_RPAD_GETFUNC(realpad) == NULL)
diff --git a/gst/gstthread.c b/gst/gstthread.c
index 04e695c603..ca269b0032 100644
--- a/gst/gstthread.c
+++ b/gst/gstthread.c
@@ -282,6 +282,7 @@ gst_thread_change_state (GstElement *element)
GST_FLAG_SET (thread, GST_THREAD_STATE_REAPING);
gst_thread_signal_thread (thread);
+ pthread_join(thread->thread_id,NULL);
break;
default:
break;
@@ -324,7 +325,8 @@ gst_thread_main_loop (void *arg)
}
GST_FLAG_UNSET (thread, GST_THREAD_STATE_REAPING);
- //pthread_join (thread->thread_id, 0);
+// FIXME this should be removed (why's it here???)
+// //pthread_join (thread->thread_id, 0);
GST_INFO (GST_CAT_THREAD, "gstthread: thread \"%s\" is stopped",
GST_ELEMENT_NAME (thread));
diff --git a/gst/gsttype.c b/gst/gsttype.c
index 7b7b34efd3..437da194df 100644
--- a/gst/gsttype.c
+++ b/gst/gsttype.c
@@ -80,6 +80,7 @@ gst_type_register (GstTypeFactory *factory)
_gst_types = g_list_prepend (_gst_types, type);
id = type->id;
+ GST_DEBUG (0,"gsttype: new mime type '%s', id %d\n", type->mime, type->id);
} else {
type = gst_type_find_by_id (id);
diff --git a/gst/gstutils.h b/gst/gstutils.h
index a6465fee08..3f15ed2c9d 100644
--- a/gst/gstutils.h
+++ b/gst/gstutils.h
@@ -26,6 +26,10 @@
#include <gtk/gtk.h>
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
gint gst_util_get_int_arg (GtkObject *object, guchar *argname);
gboolean gst_util_get_bool_arg (GtkObject *object, guchar *argname);
glong gst_util_get_long_arg (GtkObject *object, guchar *argname);
@@ -37,4 +41,8 @@ GtkWidget* gst_util_get_widget_arg (GtkObject *object, guchar *argname);
void gst_util_dump_mem (guchar *mem, guint size);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
#endif /* __GST_UTILS_H__ */
diff --git a/gstplay/gstmediaplay.c b/gstplay/gstmediaplay.c
index 49276c6af1..24be408f5e 100644
--- a/gstplay/gstmediaplay.c
+++ b/gstplay/gstmediaplay.c
@@ -412,6 +412,8 @@ gst_media_play_frame_displayed (GstPlay *play,
size = gst_play_get_media_size (play);
current_offset = gst_play_get_media_offset (play);
+ //g_print ("%lu %lu %lu %lu\n", current_time, total_time, size, current_offset);
+
if (current_time != mplay->last_time) {
gdk_threads_enter ();
gst_media_play_update_status_area (mplay, current_time, total_time);
diff --git a/gstplay/gstplay.c b/gstplay/gstplay.c
index 660c02e8d6..3ce0457c79 100644
--- a/gstplay/gstplay.c
+++ b/gstplay/gstplay.c
@@ -316,18 +316,20 @@ gst_play_typefind (GstBin *bin, GstElement *element)
}
static gboolean
-connect_pads (GstElement *new_element, GstElement *target)
+connect_pads (GstElement *new_element, GstElement *target, gboolean add)
{
GList *pads = gst_element_get_pad_list (new_element);
+ GstPad *targetpad = gst_element_get_pad (target, "sink");
while (pads) {
GstPad *pad = GST_PAD (pads->data);
- GstPad *targetpad = gst_element_get_pad (target, "sink");
if (gst_pad_check_compatibility (pad, targetpad)) {
- gst_bin_add (GST_BIN (gst_element_get_parent (
- GST_ELEMENT (gst_pad_get_real_parent (pad)))),
- target);
+ if (add) {
+ gst_bin_add (GST_BIN (gst_element_get_parent (
+ GST_ELEMENT (gst_pad_get_real_parent (pad)))),
+ target);
+ }
gst_pad_connect (pad, targetpad);
return TRUE;
}
@@ -336,6 +338,27 @@ connect_pads (GstElement *new_element, GstElement *target)
return FALSE;
}
+static void
+dynamic_connect_pads (GstElement *new_element, GstPad *pad, gpointer data)
+{
+ GstPlay *play = (GstPlay *)data;
+ GstPlayPrivate *priv;
+
+ priv = (GstPlayPrivate *)play->priv;
+
+ gdk_threads_enter();
+ if (!(play->flags & GST_PLAY_TYPE_AUDIO) &&
+ (connect_pads (new_element, priv->audio_queue, FALSE))) {
+ play->flags |= GST_PLAY_TYPE_AUDIO;
+ }
+ if (!(play->flags & GST_PLAY_TYPE_VIDEO) &&
+ (connect_pads (new_element, priv->video_queue, FALSE))) {
+ play->flags |= GST_PLAY_TYPE_VIDEO;
+ gtk_widget_show (priv->video_widget);
+ }
+ gdk_threads_leave();
+}
+
GstPlayReturn
gst_play_set_uri (GstPlay *play,
const guchar *uri)
@@ -392,15 +415,25 @@ gst_play_set_uri (GstPlay *play,
gst_element_connect (priv->src, "src", new_element, "sink");
- if (connect_pads (new_element, priv->video_queue)) {
+ if (connect_pads (new_element, priv->video_queue, TRUE)) {
gst_bin_add (GST_BIN (priv->bin), priv->video_show),
play->flags |= GST_PLAY_TYPE_VIDEO;
gtk_widget_show (priv->video_widget);
}
- if (connect_pads (new_element, priv->audio_queue)) {
+ else {
+ gst_bin_add (GST_BIN (priv->bin), priv->video_show),
+ gtk_signal_connect (GTK_OBJECT (new_element), "new_pad", dynamic_connect_pads, play);
+ gtk_signal_connect (GTK_OBJECT (new_element), "new_ghost_pad", dynamic_connect_pads, play);
+ }
+ if (connect_pads (new_element, priv->audio_queue, TRUE)) {
gst_bin_add (GST_BIN (priv->bin), priv->audio_play),
play->flags |= GST_PLAY_TYPE_AUDIO;
}
+ else {
+ gst_bin_add (GST_BIN (priv->bin), priv->audio_play),
+ gtk_signal_connect (GTK_OBJECT (new_element), "new_pad", dynamic_connect_pads, play);
+ gtk_signal_connect (GTK_OBJECT (new_element), "new_ghost_pad", dynamic_connect_pads, play);
+ }
gst_bin_add (GST_BIN (priv->thread), priv->bin);
gtk_signal_connect (GTK_OBJECT (priv->thread), "eos", GTK_SIGNAL_FUNC (gst_play_eos), play);
diff --git a/gstreamer-config.in b/gstreamer-config.in
index 6811a7feee..8cd2df8e76 100644
--- a/gstreamer-config.in
+++ b/gstreamer-config.in
@@ -47,14 +47,14 @@ while test $# -gt 0; do
elif test @includedir@ != /usr/include ; then
includes=-I@includedir@
fi
- echo $includes `gtk-config --cflags gtk gthread`
+ echo $includes @CORE_CFLAGS@
;;
--libs)
if test $prefix -ef @builddir@ ; then
- echo @builddir@/libgst.la `gtk-config --libs gtk gthread`
+ echo @builddir@/libgst.la @CORE_LIBS@
else
libdirs=-L@libdir@
- echo $libdirs -lgst `gtk-config --libs gtk gthread`
+ echo $libdirs -lgst @CORE_LIBS@
fi
;;
*)
diff --git a/include/Makefile.am b/include/Makefile.am
index 0039492811..6414a20d39 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -1,8 +1,5 @@
SUBDIRS = wine
noinst_HEADERS = \
- avifmt.h \
- default.h \
mmx.h \
- registry.h \
sse.h
diff --git a/include/default.h b/include/default.h
deleted file mode 100644
index b12e9c1fb0..0000000000
--- a/include/default.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _DEFAULT_H
-#define _DEFAULT_H
-
-typedef long HRESULT;
-typedef unsigned int offset_t;
-#define E_NOTIMPL -158
-#define E_FAIL -1
-#define E_ERROR -2
-
-#define fccDIV3 mmioFOURCC('D', 'I', 'V', '3')
-#define fccDIV4 mmioFOURCC('D', 'I', 'V', '4')
-#define fccIV50 mmioFOURCC('I', 'V', '5', '0')
-
-#endif
-
diff --git a/include/wine/msacm.h b/include/wine/msacm.h
index 18f1d855c7..b76c1095a8 100644
--- a/include/wine/msacm.h
+++ b/include/wine/msacm.h
@@ -13,7 +13,7 @@
extern "C" {
#endif /* defined(__cplusplus) */
-typedef WORD VERSION; /* major (high byte), minor (low byte) */
+//typedef WORD VERSION; /* major (high byte), minor (low byte) */
typedef UINT16 MMVERSION16;
typedef UINT MMVERSION;
diff --git a/libs/Makefile.am b/libs/Makefile.am
index b77eea6fc8..7b895f0bc5 100644
--- a/libs/Makefile.am
+++ b/libs/Makefile.am
@@ -1,9 +1,9 @@
if HAVE_CPU_I386
-GSTARCH_SUBDS = videoscale winloader
+GSTARCH_SUBDS = winloader
else
GSTARCH_SUBDS =
endif
-SUBDIRS = riff colorspace getbits putbits idct $(GSTARCH_SUBDS)
+SUBDIRS = riff colorspace getbits putbits idct videoscale $(GSTARCH_SUBDS)
DIST_SUBDIRS = riff colorspace getbits putbits videoscale winloader idct
diff --git a/libs/colorspace/rgb2rgb.c b/libs/colorspace/rgb2rgb.c
index 43f06ce943..d5e788f090 100644
--- a/libs/colorspace/rgb2rgb.c
+++ b/libs/colorspace/rgb2rgb.c
@@ -26,6 +26,7 @@ static void gst_colorspace_rgb_to_rgb_identity(GstColorSpaceConverter *space, un
static void gst_colorspace_rgb24_to_bgr24(GstColorSpaceConverter *space, unsigned char *src, unsigned char *dest);
static void gst_colorspace_rgb32_to_bgr32(GstColorSpaceConverter *space, unsigned char *src, unsigned char *dest);
static void gst_colorspace_rgb555_to_rgb565(GstColorSpaceConverter *space, unsigned char *src, unsigned char *dest);
+static void gst_colorspace_bgr565_to_rgb32(GstColorSpaceConverter *space, unsigned char *src, unsigned char *dest);
GstColorSpaceConvertFunction gst_colorspace_rgb2rgb_get_converter(GstColorSpaceConverter *space, GstColorSpaceType src, GstColorSpaceType dest) {
switch(src) {
@@ -93,6 +94,17 @@ GstColorSpaceConvertFunction gst_colorspace_rgb2rgb_get_converter(GstColorSpaceC
default:
break;
}
+ break;
+ case GST_COLORSPACE_BGR565:
+ space->insize = space->width*space->height*2;
+ switch(dest) {
+ case GST_COLORSPACE_RGB32 :
+ space->outsize = space->width*space->height*4;
+ return gst_colorspace_bgr565_to_rgb32;
+ default:
+ break;
+ };
+ break;
default:
break;
}
@@ -183,3 +195,27 @@ static void gst_colorspace_rgb555_to_rgb565(GstColorSpaceConverter *space, unsig
}
}
}
+
+static void gst_colorspace_bgr565_to_rgb32(GstColorSpaceConverter *space, unsigned char *src, unsigned char *dest)
+{
+ gint size;
+ guint16 *srcptr = (guint16 *)src;
+ guint32 *destptr = (guint32 *)dest;
+ size = space->outsize >> 2;
+
+ g_assert (src != dest); /* todo */
+ while (size--) {
+ /* in detail I do this
+ red=(unsigned char)(*srcptr)&0x1f;
+ green=(unsigned char)(((*srcptr)&0x07E0)>>5);
+ blue=(unsigned char)(((*srcptr)&0xf800)>>11);
+ *destptr++ = (((guint32)blue) << 3)
+ | (((guint32)green) << (8+2))
+ | (((guint32)red) << (16+3));
+ */
+ *destptr++ = (((*srcptr)&0xf800)>>8)|(((*srcptr)&0x07E0)<<5)|(((*srcptr)&0x1f)<<19);
+ srcptr++;
+ }
+}
+
+
diff --git a/libs/getbits/gstgetbits.c b/libs/getbits/gstgetbits.c
index 5ebb042621..1a04acb52b 100644
--- a/libs/getbits/gstgetbits.c
+++ b/libs/getbits/gstgetbits.c
@@ -166,7 +166,7 @@ void gst_getbits_init(gst_getbits_t *gb, GstGetbitsCallback callback, void *data
gb->getbits = _gst_getbits_mmx;
// gb->backbits = _gst_getbits_back_mmx;
// gb->backbytes = _gst_getbits_byteback_mmx;
- printf("gstgetbits: using MMX optimized versions\n");
+// printf("gstgetbits: using MMX optimized versions\n");
} else
#endif /* HAVE_LIBMMX */
{
@@ -175,7 +175,7 @@ void gst_getbits_init(gst_getbits_t *gb, GstGetbitsCallback callback, void *data
gb->showbits = _gst_showbits_int;
gb->flushbits = _gst_flushbits_int;
gb->backbits = _gst_getbits_back_int;
- printf("gstgetbits: using callback versions\n");
+// printf("gstgetbits: using callback versions\n");
}
else {
#ifdef HAVE_CPU_I386
@@ -187,7 +187,7 @@ void gst_getbits_init(gst_getbits_t *gb, GstGetbitsCallback callback, void *data
gb->showbits = _gst_showbits_i386;
gb->flushbits = _gst_flushbits_i386;
gb->backbits = _gst_getbits_back_i386;
- printf("gstgetbits: using i386 optimized versions\n");
+// printf("gstgetbits: using i386 optimized versions\n");
#else
gb->get1bit = _gst_get1bit_int;
gb->getbits = _gst_getbits_int;
@@ -197,7 +197,7 @@ void gst_getbits_init(gst_getbits_t *gb, GstGetbitsCallback callback, void *data
gb->showbits = _gst_showbits_int;
gb->flushbits = _gst_flushbits_int;
gb->backbits = _gst_getbits_back_int;
- printf("gstgetbits: using normal versions\n");
+// printf("gstgetbits: using normal versions\n");
#endif
}
}
diff --git a/libs/getbits/gstgetbits.h b/libs/getbits/gstgetbits.h
index 7e56796c39..79b29f3de0 100644
--- a/libs/getbits/gstgetbits.h
+++ b/libs/getbits/gstgetbits.h
@@ -17,22 +17,7 @@
#include <sse.h>
#endif /* HAVE_LIBSSE */
-#ifdef WORDS_BIGENDIAN
-# define swab32(x) (x)
-#else
-# if defined (__i386__)
-# define swab32(x) __i386_swab32(x)
- static inline const unsigned long __i386_swab32(unsigned long x)
- {
- __asm__("bswap %0" : "=r" (x) : "0" (x));
- return x;
- }
-# else
-# define swab32(x)\
- ((((guint8*)&x)[0] << 24) | (((guint8*)&x)[1] << 16) | \
- (((guint8*)&x)[2] << 8) | (((guint8*)&x)[3]))
-# endif
-#endif
+#define swab32(x) GUINT32_FROM_BE(x)
typedef struct _gst_getbits_t gst_getbits_t;
typedef void (*GstGetbitsCallback) (gst_getbits_t *gb, void *data);
diff --git a/libs/getbits/gstgetbits_inl.h b/libs/getbits/gstgetbits_inl.h
index 2e025c7aaa..0fcbc3b590 100644
--- a/libs/getbits/gstgetbits_inl.h
+++ b/libs/getbits/gstgetbits_inl.h
@@ -73,22 +73,7 @@
#define checklength2(src, dst)
#endif
-#ifdef WORDS_BIGENDIAN
-# define swab32(x) (x)
-#else
-# if defined (__i386__)
-# define swab32(x) __i386_swab32(x)
- static inline const guint32 __i386_swab32(guint32 x)
- {
- __asm__("bswap %0" : "=r" (x) : "0" (x));
- return x;
- }
-# else
-# define swab32(x)\
- ((((guint8*)&x)[0] << 24) | (((guint8*)&x)[1] << 16) | \
- (((guint8*)&x)[2] << 8) | (((guint8*)&x)[3]))
-# endif
-#endif
+#define swab32(x) GUINT32_FROM_BE(x)
/* External declarations for bitstream i/o operations. */
extern unsigned long gst_getbits_nBitMask[];
diff --git a/libs/videoscale/Makefile.am b/libs/videoscale/Makefile.am
index 64adf794e8..640722ba31 100644
--- a/libs/videoscale/Makefile.am
+++ b/libs/videoscale/Makefile.am
@@ -16,4 +16,4 @@ libgstvideoscaleinclude_HEADERS = gstvideoscale.h
noinst_HEADERS = gstscale_x86.h
#CFLAGS += -S -O1 $(FOMIT_FRAME_POINTER) -funroll-all-loops -finline-functions -ffast-math
-CFLAGS = $(GLIB_CFLAGS) $(LIBGST_CFLAGS) $(XML_CFLAGS) -O5 -fomit-frame-pointer -ffast-math
+CFLAGS = $(GLIB_CFLAGS) $(GTK_CFLAGS) $(GST_CFLAGS) $(XML_CFLAGS) -O5 -fomit-frame-pointer -ffast-math
diff --git a/libs/winloader/Makefile.am b/libs/winloader/Makefile.am
index 75d0f2b16f..ececec29c8 100644
--- a/libs/winloader/Makefile.am
+++ b/libs/winloader/Makefile.am
@@ -3,12 +3,12 @@ filterdir = $(libdir)/gst
filter_LTLIBRARIES = libwinloader.la
# compiler manages to screw something up here... must reduce optimizations
-CFLAGS += -O2
+CFLAGS += -O0 -funroll-loops
-libwinloader_la_SOURCES = driver.c elfdll.c ext.c externals.c module.c \
+libwinloader_la_SOURCES = win32.c driver.c elfdll.c ext.c module.c \
pe_image.c pe_resource.c registry.c resource.c stubs.s vfl.c afl.c
-noinst_HEADERS = externals.h wineacm.h
+noinst_HEADERS = wineacm.h win32.h registry.h avifmt.h
DEFINES=-rdynamic -fPIC -D__WINE__ -Ddbg_printf=__vprintf -DTRACE=__vprintf
CFLAGS += $(DEFINES)
diff --git a/libs/winloader/afl.c b/libs/winloader/afl.c
index 72546f3b49..df4187f6d8 100644
--- a/libs/winloader/afl.c
+++ b/libs/winloader/afl.c
@@ -304,6 +304,7 @@ void MSACM_RegisterAllDrivers(void)
MSACM_RegisterDriver("divxa32", (LPSTR)0x161, 0);
MSACM_RegisterDriver("msadp32", (LPSTR)0x2, 0);
+ MSACM_RegisterDriver("l3codeca", (LPSTR)0x55, 0);
}
/***********************************************************************
diff --git a/include/avifmt.h b/libs/winloader/avifmt.h
index d11a663a85..d11a663a85 100644
--- a/include/avifmt.h
+++ b/libs/winloader/avifmt.h
diff --git a/libs/winloader/driver.c b/libs/winloader/driver.c
index 8fdb435e42..3dfd0ffa8e 100644
--- a/libs/winloader/driver.c
+++ b/libs/winloader/driver.c
@@ -6,7 +6,7 @@
#include <wine/vfw.h>
#include <registry.h>
-#include <config.h>
+#include "config.h"
#define STORE_ALL \
__asm__ ( \
@@ -25,6 +25,7 @@
"pop %%ebx\n\t"::)
+#define WIN32_PATH GST_WIN32_LIBDIR
typedef struct {
UINT uDriverSignature;
@@ -86,18 +87,21 @@ typedef struct
int usage;
}codec_t;
-//#define Win32Path "/usr/lib/win32/"
-#define Win32Path GST_WIN32_LIBDIR
static codec_t avi_codecs[]={
- {0, Win32Path"/divxc32.dll", 0}, //0
- {0, Win32Path"/ir50_32.dll", 0},
- {0, Win32Path"/ir41_32.dll", 0},
- {0, Win32Path"/ir32_32.dll", 0},
- {0, Win32Path"/mpg4c32.dll", 0},
- {0, Win32Path"/iccvid.dll", 0}, //5
- {0, Win32Path"/libvideodll.so", 0},
- {0, Win32Path"/divxa32.acm", 0}, //7
- {0, Win32Path"/msadp32.acm", 0},
+ {0, WIN32_PATH"/divxc32.dll", 0}, //0
+ {0, WIN32_PATH"/ir50_32.dll", 0},
+ {0, WIN32_PATH"/ir41_32.dll", 0},
+ {0, WIN32_PATH"/ir32_32.dll", 0},
+ {0, WIN32_PATH"/mpg4c32.dll", 0},
+ {0, WIN32_PATH"/iccvid.dll", 0}, //5
+ {0, WIN32_PATH"/libvideodll.so", 0},
+ {0, WIN32_PATH"/divxa32.acm", 0},
+ {0, WIN32_PATH"/msadp32.acm", 0},
+ {0, WIN32_PATH"/ativcr1.dll", 0},
+ {0, WIN32_PATH"/ativcr2.dll", 0}, //10
+ {0, WIN32_PATH"/i263_32.drv", 0},
+ {0, WIN32_PATH"/l3codeca.acm", 0},
+// {0, WIN32_PATH"/atiyvu9.dll", 0},
};
@@ -155,6 +159,9 @@ DrvOpen(LPARAM lParam2)
case mmioFOURCC('D', 'I', 'V', '4'):
case mmioFOURCC('d', 'i', 'v', '3'):
case mmioFOURCC('d', 'i', 'v', '4'):
+ case mmioFOURCC('M', 'P', '4', '1'):
+ case mmioFOURCC('M', 'P', '4', '2'):
+ case mmioFOURCC('M', 'P', '4', '3'):
printf("Video in DivX ;-) format\n");
drv_id=0;
break;
@@ -178,9 +185,6 @@ DrvOpen(LPARAM lParam2)
case mmioFOURCC('m', 'p', '4', '2'):
case mmioFOURCC('m', 'p', '4', '3'):
case mmioFOURCC('M', 'P', 'G', '4'):
- case mmioFOURCC('M', 'P', '4', '1'):
- case mmioFOURCC('M', 'P', '4', '2'):
- case mmioFOURCC('M', 'P', '4', '3'):
printf("Video in Microsoft MPEG-4 format\n");
drv_id=4;
break;
@@ -188,6 +192,19 @@ DrvOpen(LPARAM lParam2)
printf("Video in Cinepak format\n");
drv_id=5;
break;
+ case mmioFOURCC('V', 'C', 'R', '1'):
+ drv_id=9;
+ break;
+ case mmioFOURCC('V', 'C', 'R', '2'):
+ drv_id=10;
+ break;
+ case mmioFOURCC('i', '2', '6', '3'):
+ case mmioFOURCC('I', '2', '6', '3'):
+ drv_id=11;
+ break;
+// case mmioFOURCC('Y', 'V', 'U', '9'):
+// drv_id=12;
+// break;
default:
printf("Unknown codec %X='%c%c%c%c'\n", fccHandler,
fccHandler&0xFF, (fccHandler&0xFF00)>>8,
@@ -204,6 +221,10 @@ DrvOpen(LPARAM lParam2)
case 0x2://MS ADPCM
drv_id=8;
break;
+ case 0x55://MPEG Layer 3
+ printf("MPEG Layer 3 ( 0x55 )\n");
+ drv_id=12;
+ break;
default:
printf("Unknown ACM codec 0x%X\n", fccHandler);
return (HDRVR)0;
diff --git a/libs/winloader/elfdll.c b/libs/winloader/elfdll.c
index f78ad8ca36..b65e2287c2 100644
--- a/libs/winloader/elfdll.c
+++ b/libs/winloader/elfdll.c
@@ -45,8 +45,7 @@ extern DWORD fixup_imports(WINE_MODREF *wm);
extern void dump_exports(HMODULE hModule);
/*---------------- END HACKS ---------------*/
-//char *extra_ld_library_path = "/usr/lib/win32";
-char *extra_ld_library_path = GST_WIN32_LIBDIR;
+char *extra_ld_library_path = "/usr/lib/win32";
struct elfdll_image
{
diff --git a/libs/winloader/module.c b/libs/winloader/module.c
index eda45d13ea..945c5b5083 100644
--- a/libs/winloader/module.c
+++ b/libs/winloader/module.c
@@ -14,7 +14,7 @@
#include <sys/mman.h>
#include <sys/types.h>
-
+/*
#ifdef __linux__
#include <asm/unistd.h>
#include <asm/ldt.h>
@@ -40,7 +40,7 @@ struct modify_ldt_ldt_s {
#define __NR_modify_ldt 123
#endif
-
+*/
#include <wine/windef.h>
#include <wine/winerror.h>
#include <wine/heap.h>
@@ -64,7 +64,7 @@ modref_list;
*
* Convert an ldt_entry structure to the raw bytes of the descriptor.
*/
-static void LDT_EntryToBytes( unsigned long *buffer, const struct modify_ldt_ldt_s *content )
+/*static void LDT_EntryToBytes( unsigned long *buffer, const struct modify_ldt_ldt_s *content )
{
*buffer++ = ((content->base_addr & 0x0000ffff) << 16) |
(content->limit & 0x0ffff);
@@ -77,7 +77,7 @@ static void LDT_EntryToBytes( unsigned long *buffer, const struct modify_ldt_ldt
((content->limit_in_pages != 0) << 23) |
0xf000;
}
-
+*/
//
// funcs:
@@ -86,6 +86,7 @@ static void LDT_EntryToBytes( unsigned long *buffer, const struct modify_ldt_ldt
// 1 write old mode
// 0x11 write
//
+/*
static int modify_ldt( int func, struct modify_ldt_ldt_s *ptr,
unsigned long count )
{
@@ -107,7 +108,7 @@ static int modify_ldt( int func, struct modify_ldt_ldt_s *ptr,
"b" (func),
"c" (ptr),
"d" (sizeof(struct modify_ldt_ldt_s)*count) );
-#endif /* __PIC__ */
+#endif
if (res >= 0) return res;
errno = -res;
return -1;
@@ -147,7 +148,7 @@ static int install_fs()
perror("install_fs");
MESSAGE("Couldn't install fs segment, expect segfault\n");
}
-#endif /*linux*/
+#endif
#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
{
@@ -161,11 +162,11 @@ static int install_fs()
MESSAGE("Did you reconfigure the kernel with \"options USER_LDT\"?\n");
}
}
-#endif /* __NetBSD__ || __FreeBSD__ || __OpenBSD__ */
+#endif
__asm__
(
"movl $0xf,%eax\n\t"
- "pushw %ax\n\t"
+// "pushw %ax\n\t"
"movw %ax, %fs\n\t"
);
prev_struct=malloc(8);
@@ -178,13 +179,15 @@ static int install_fs()
};
static int uninstall_fs()
{
+ printf("Uninstalling FS segment\n");
if(fs_seg==0)
return -1;
munmap(fs_seg, 0x30000);
+ fs_installed=0;
return 0;
}
-
+*/
//WINE_MODREF *local_wm=NULL;
modref_list* local_wm=NULL;
@@ -216,7 +219,7 @@ void MODULE_RemoveFromList(WINE_MODREF *mod)
{
free(list);
local_wm=NULL;
- uninstall_fs();
+// uninstall_fs();
return;
}
for(;list;list=list->prev)
@@ -412,8 +415,8 @@ HMODULE WINAPI LoadLibraryExA(LPCSTR libname, HANDLE hfile, DWORD flags)
SetLastError(ERROR_INVALID_PARAMETER);
return 0;
}
- if(fs_installed==0)
- install_fs();
+// if(fs_installed==0)
+// install_fs();
wm = MODULE_LoadLibraryExA( libname, hfile, flags );
diff --git a/libs/winloader/pe_image.c b/libs/winloader/pe_image.c
index a98529a2cc..6342d1f15e 100644
--- a/libs/winloader/pe_image.c
+++ b/libs/winloader/pe_image.c
@@ -55,7 +55,7 @@
#include <wine/module.h>
#include <wine/debugtools.h>
-#include "externals.h"
+#include "win32.h"
#define RVA(x) ((void *)((char *)load_addr+(unsigned int)(x)))
diff --git a/include/registry.h b/libs/winloader/registry.h
index 44026e93b7..94f45fc64a 100644
--- a/include/registry.h
+++ b/libs/winloader/registry.h
@@ -15,11 +15,11 @@ extern "C" {
long RegOpenKeyExA(long key, const char* subkey, long reserved, long access, int* newkey);
long RegCloseKey(long key);
long RegQueryValueExA(long key, const char* value, int* reserved, int* type, int* data, int* count);
-long RegCreateKeyExA(long key, const char* name, long reserved,
- void* classs, long options, long security,
+long RegCreateKeyExA(long key, const char* name, long reserved,
+ void* classs, long options, long security,
void* sec_attr, int* newkey, int* status) ;
long RegSetValueExA(long key, const char* name, long v1, long v2, void* data, long size);
#ifdef __cplusplus
};
#endif
-#endif
+#endif \ No newline at end of file
diff --git a/libs/winloader/vfl.c b/libs/winloader/vfl.c
index b6e26a4d8b..c0b17d107a 100644
--- a/libs/winloader/vfl.c
+++ b/libs/winloader/vfl.c
@@ -338,6 +338,13 @@ ICSendMessage(HIC hic,unsigned int msg,long lParam1,long lParam2) {
// printf("private=%x\n", whic->private);
__asm__ __volatile__ ("fsave (%0)\n\t": :"r"(&qw));
STORE_ALL;
+ /*__asm__
+ (
+ "pushl %eax\n\t"
+ "movl $0xf,%eax\n\t"
+ "movw %ax, %fs\n\t"
+ "popl %eax\n\t"
+ );*/
ret = whic->driverproc(whic->private,1,msg,lParam1,lParam2);
REST_ALL;
__asm__ __volatile__ ("frstor (%0)\n\t": :"r"(&qw));
diff --git a/libs/winloader/externals.c b/libs/winloader/win32.c
index 00b8c60a31..0c23b932c9 100644
--- a/libs/winloader/externals.c
+++ b/libs/winloader/win32.c
@@ -1,4 +1,14 @@
-#include "externals.h"
+/***********************************************************
+
+ Win32 emulation code. Functions that emulate
+ responses from corresponding Win32 API calls.
+ Since we are not going to be able to load
+ virtually any DLL, we can only implement this
+ much, adding needed functions with each new codec.
+
+************************************************************/
+
+#include "win32.h"
#include <stdio.h>
#include <pthread.h>
#include <malloc.h>
@@ -120,16 +130,24 @@ int my_release(char* memory)
#else
void* my_mreq(int size, int to_zero)
{
+ void* answer;
if(to_zero)
- return calloc(size, 1);
- else
- return malloc(size);
+ answer=calloc(size+4, 1);
+ else
+ answer=malloc(size+4);
+ *(int*)answer=size;
+ return (int*)answer+1;
}
int my_release(char* memory)
{
- free(memory);
+ if(memory==0)return 0;
+ free(memory-4);
return 0;
}
+int my_size(char* memory)
+{
+ return *(int*)(memory-4);
+}
#endif
extern int unk_exp1;
@@ -526,7 +544,14 @@ long WINAPI expHeapFree(int arg1, int arg2, void* ptr)
my_release(ptr);
return 1;
}
-
+long WINAPI expHeapSize(int heap, int flags, void* pointer)
+{
+ return my_size(pointer);
+}
+long WINAPI expGetProcessHeap(void)
+{
+ return 1;
+}
void* WINAPI expVirtualAlloc(void* v1, long v2, long v3, long v4)
{
void* z;
@@ -972,8 +997,11 @@ LPCSTR WINAPI expGetEnvironmentStrings()
int WINAPI expGetStartupInfoA(STARTUPINFOA *s)
{
+ int i;
dbgprintf("GetStartupInfoA\n");
- return 1;
+ for(i=0; i<sizeof(STARTUPINFOA)/4; i++)
+ ((int*)s)[i]=i+0x200;
+ return 1;
}
int WINAPI expGetStdHandle(int z)
@@ -1123,6 +1151,25 @@ int WINAPI expGetPrivateProfileIntA(char* appname, char* keyname, int default_va
free(fullname);
return default_value;
}
+int WINAPI expGetPrivateProfileStringA(const char* appname, const char* keyname,
+ const char* hz1, char* hz2, int default_value, const char* filename)
+{
+ int size=4;
+ char* fullname;
+ dbgprintf("GetPrivateProfileStringA(%s, %s, %s, %X, %X, %s)\n", appname, keyname, hz1, hz2, default_value, filename );
+ if(!(appname && keyname && filename) ) return default_value;
+ fullname=(char*)malloc(50+strlen(appname)+strlen(keyname)+strlen(filename));
+ strcpy(fullname, "Software\\IniFileMapping\\");
+ strcat(fullname, appname);
+ strcat(fullname, "\\");
+ strcat(fullname, keyname);
+ strcat(fullname, "\\");
+ strcat(fullname, filename);
+// RegQueryValueExA(HKEY_LOCAL_MACHINE, fullname, NULL, NULL, &default_value, &size);
+ printf("GetPrivateProfileStringA(%s, %s, %s, %X, %X, %s)\n", appname, keyname, hz1, hz2, default_value, filename );
+ free(fullname);
+ return default_value;
+}
int WINAPI expDefDriverProc(int _private, int id, int msg, int arg1, int arg2)
{
@@ -1191,6 +1238,26 @@ extern void WINAPI expOutputDebugStringA( const char* string )
fprintf(stderr, "DEBUG: %s\n", string);
}
+int WINAPI expGetDC(int hwnd)
+{
+ return 0;
+}
+
+int WINAPI expGetDesktopWindow()
+{
+ return 0;
+}
+
+int WINAPI expReleaseDC(int hwnd, int hdc)
+{
+ return 0;
+}
+
+int WINAPI expGetSystemPaletteEntries(int hdc, int iStartIndex, int nEntries, void* lppe)
+{
+ return 0;
+}
+
struct exports
{
char name[64];
@@ -1223,6 +1290,8 @@ FF(HeapCreate, 461)
FF(HeapAlloc, -1)
FF(HeapDestroy, -1)
FF(HeapFree, -1)
+FF(HeapSize, -1)
+FF(GetProcessHeap, -1)
FF(VirtualAlloc, -1)
FF(VirtualFree, -1)
FF(InitializeCriticalSection, -1)
@@ -1278,6 +1347,7 @@ FF(UnmapViewOfFile, -1)
FF(Sleep, -1)
FF(GetModuleHandleA, -1)
FF(GetPrivateProfileIntA, -1)
+FF(GetPrivateProfileStringA, -1)
FF(GetLastError, -1)
FF(SetLastError, -1)
FF(InterlockedIncrement, -1)
@@ -1302,6 +1372,9 @@ FF(DefDriverProc, -1)
struct exports exp_user32[]={
FF(LoadStringA, -1)
FF(wsprintfA, -1)
+FF(GetDC, -1)
+FF(GetDesktopWindow, -1)
+FF(ReleaseDC, -1)
};
struct exports exp_advapi32[]={
FF(RegOpenKeyA, -1)
@@ -1315,6 +1388,7 @@ struct exports exp_gdi32[]={
FF(CreateCompatibleDC, -1)
FF(GetDeviceCaps, -1)
FF(DeleteDC, -1)
+FF(GetSystemPaletteEntries, -1)
};
struct exports exp_version[]={
FF(GetFileVersionInfoSizeA, -1)
diff --git a/libs/winloader/externals.h b/libs/winloader/win32.h
index 327cfb2989..327cfb2989 100644
--- a/libs/winloader/externals.h
+++ b/libs/winloader/win32.h
diff --git a/plugins/elements/gstdisksrc.c b/plugins/elements/gstdisksrc.c
index 1978a15b56..9e81eb9b73 100644
--- a/plugins/elements/gstdisksrc.c
+++ b/plugins/elements/gstdisksrc.c
@@ -32,7 +32,7 @@
GstElementDetails gst_disksrc_details = {
- "asynchronous Disk Source",
+ "Disk Source",
"Source/File",
"Read from arbitrary point in a file",
VERSION,
diff --git a/plugins/elements/gstelements.c b/plugins/elements/gstelements.c
index 1621fd20b4..62b5a9288f 100644
--- a/plugins/elements/gstelements.c
+++ b/plugins/elements/gstelements.c
@@ -48,18 +48,17 @@ struct _elements_entry {
};
static struct _elements_entry _elements[] = {
- { "fakesrc", gst_fakesrc_get_type, &gst_fakesrc_details, NULL },
- { "fakesink", gst_fakesink_get_type, &gst_fakesink_details, NULL },
- { "asyncdisksrc", gst_disksrc_get_type, &gst_disksrc_details, NULL },
- { "audiosink", gst_audiosink_get_type, &gst_audiosink_details, gst_audiosink_factory_init },
- { "audiosrc", gst_audiosrc_get_type, &gst_audiosrc_details, NULL },
- { "disksrc", gst_disksrc_get_type, &gst_disksrc_details, NULL },
- { "identity", gst_identity_get_type, &gst_identity_details, NULL },
- { "fdsink", gst_fdsink_get_type, &gst_fdsink_details, NULL },
- { "fdsrc", gst_fdsrc_get_type, &gst_fdsrc_details, NULL },
- { "pipefilter", gst_pipefilter_get_type, &gst_pipefilter_details, NULL },
- { "sinesrc", gst_sinesrc_get_type, &gst_sinesrc_details, NULL },
- { "tee", gst_tee_get_type, &gst_tee_details, gst_tee_factory_init },
+ { "fakesrc", gst_fakesrc_get_type, &gst_fakesrc_details, NULL },
+ { "fakesink", gst_fakesink_get_type, &gst_fakesink_details, NULL },
+ { "audiosink", gst_audiosink_get_type, &gst_audiosink_details, gst_audiosink_factory_init },
+ { "audiosrc", gst_audiosrc_get_type, &gst_audiosrc_details, NULL },
+ { "disksrc", gst_disksrc_get_type, &gst_disksrc_details, NULL },
+ { "identity", gst_identity_get_type, &gst_identity_details, NULL },
+ { "fdsink", gst_fdsink_get_type, &gst_fdsink_details, NULL },
+ { "fdsrc", gst_fdsrc_get_type, &gst_fdsrc_details, NULL },
+ { "pipefilter", gst_pipefilter_get_type, &gst_pipefilter_details, NULL },
+ { "sinesrc", gst_sinesrc_get_type, &gst_sinesrc_details, NULL },
+ { "tee", gst_tee_get_type, &gst_tee_details, gst_tee_factory_init },
#if HAVE_LIBGHTTP
{ "httpsrc", gst_httpsrc_get_type, &gst_httpsrc_details, NULL },
diff --git a/plugins/elements/gstqueue.c b/plugins/elements/gstqueue.c
index ba91043b08..a500f9189a 100644
--- a/plugins/elements/gstqueue.c
+++ b/plugins/elements/gstqueue.c
@@ -251,11 +251,15 @@ gst_queue_chain (GstPad *pad, GstBuffer *buf)
static GstBuffer *
gst_queue_get (GstPad *pad)
{
- GstQueue *queue = GST_QUEUE (GST_OBJECT_PARENT (pad));
+ GstQueue *queue;
GstBuffer *buf = NULL;
GSList *front;
const guchar *name;
+ g_return_val_if_fail (pad != NULL, NULL);
+ g_return_val_if_fail (GST_IS_PAD (pad), NULL);
+
+ queue = GST_QUEUE (GST_OBJECT_PARENT (pad));
name = GST_ELEMENT_NAME (queue);
/* have to lock for thread-safety */
diff --git a/test/videotest.c b/test/videotest.c
index 2012e3c66b..3bd4ad7c3c 100644
--- a/test/videotest.c
+++ b/test/videotest.c
@@ -6,17 +6,21 @@ extern gboolean _gst_plugin_spew;
gboolean idle_func(gpointer data);
GstElement *videosink;
+GstElement *videosink2;
GstElement *src;
int main(int argc,char *argv[]) {
GstElement *bin;
+ GstElement *tee;
GstElementFactory *srcfactory;
GstElementFactory *videosinkfactory;
GtkWidget *appwindow;
+ GtkWidget *appwindow2;
GtkWidget *vbox1;
GtkWidget *button;
GtkWidget *draw;
+ GtkWidget *draw2;
//_gst_plugin_spew = TRUE;
@@ -34,17 +38,33 @@ int main(int argc,char *argv[]) {
g_return_if_fail(videosinkfactory != NULL);
src = gst_elementfactory_create(srcfactory,"src");
+ //gtk_object_set(GTK_OBJECT(src),"format",3,NULL);
+ gtk_object_set(GTK_OBJECT(src),"width",320,"height",240,NULL);
+
videosink = gst_elementfactory_create(videosinkfactory,"videosink");
+ gtk_object_set(GTK_OBJECT(videosink),"xv_enabled",FALSE,NULL);
gtk_object_set(GTK_OBJECT(videosink),"width",320,"height",240,NULL);
+ videosink2 = gst_elementfactory_create(videosinkfactory,"videosink2");
+ gtk_object_set(GTK_OBJECT(videosink2),"xv_enabled",FALSE,NULL);
+ gtk_object_set(GTK_OBJECT(videosink2),"width",320,"height",240,NULL);
+
+ tee = gst_elementfactory_make ("tee", "tee");
gst_bin_add(GST_BIN(bin),GST_ELEMENT(src));
+ gst_bin_add(GST_BIN(bin),GST_ELEMENT(tee));
gst_bin_add(GST_BIN(bin),GST_ELEMENT(videosink));
+ gst_bin_add(GST_BIN(bin),GST_ELEMENT(videosink2));
gst_pad_connect(gst_element_get_pad(src,"src"),
+ gst_element_get_pad(tee,"sink"));
+ gst_pad_connect(gst_element_request_pad_by_name (tee,"src%d"),
gst_element_get_pad(videosink,"sink"));
+ gst_pad_connect(gst_element_request_pad_by_name (tee,"src%d"),
+ gst_element_get_pad(videosink2,"sink"));
appwindow = gnome_app_new("Videotest","Videotest");
+ appwindow2 = gnome_app_new("Videotest2","Videotest2");
vbox1 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox1);
@@ -60,15 +80,20 @@ int main(int argc,char *argv[]) {
draw,
TRUE, TRUE, 0);
gtk_widget_show (draw);
+
+ draw2 = gst_util_get_widget_arg(GTK_OBJECT(videosink2),"widget"),
+ gtk_widget_show (draw2);
gnome_app_set_contents(GNOME_APP(appwindow), vbox1);
+ gnome_app_set_contents(GNOME_APP(appwindow2), draw2);
+
gtk_object_set(GTK_OBJECT(appwindow),"allow_grow",TRUE,NULL);
gtk_object_set(GTK_OBJECT(appwindow),"allow_shrink",TRUE,NULL);
gtk_widget_show_all(appwindow);
+ gtk_widget_show_all(appwindow2);
- gst_element_set_state(GST_ELEMENT(bin),GST_STATE_READY);
gst_element_set_state(GST_ELEMENT(bin),GST_STATE_PLAYING);
//gtk_object_set(GTK_OBJECT(src),"tune",133250,NULL);
diff --git a/tests/old/examples/Makefile.am b/tests/old/examples/Makefile.am
index 1b5d86647b..17a14055c2 100644
--- a/tests/old/examples/Makefile.am
+++ b/tests/old/examples/Makefile.am
@@ -1,4 +1,4 @@
SUBDIRS = autoplug \
helloworld helloworld2 \
queue queue2 queue3 queue4 \
- launch thread xml plugins
+ launch thread xml plugins typefind
diff --git a/tests/old/examples/plugins/example.c b/tests/old/examples/plugins/example.c
index b958272bb1..00cf8c19d7 100644
--- a/tests/old/examples/plugins/example.c
+++ b/tests/old/examples/plugins/example.c
@@ -17,9 +17,14 @@
* Boston, MA 02111-1307, USA.
*/
+/* First, include the header file for the plugin, to bring in the
+ * object definition and other useful things.
+ */
#include "example.h"
-/* elementfactory information */
+/* The ElementDetails structure gives a human-readable description
+ * of the plugin, as well as author and version data.
+ */
static GstElementDetails example_details = {
"An example plugin",
"Example",
@@ -29,30 +34,47 @@ static GstElementDetails example_details = {
"(C) 2000",
};
-/* Example signals and args */
+/* These are the signals that this element can fire. They are zero-
+ * based because the numbers themselves are private to the object.
+ * LAST_SIGNAL is used for initialization of the signal array.
+ */
enum {
+ ASDF,
/* FILL ME */
LAST_SIGNAL
};
+/* Arguments are identified the same way, but cannot be zero, so you
+ * must leave the ARG_0 entry in as a placeholder.
+ */
enum {
ARG_0,
- ARG_ACTIVE
+ ARG_ACTIVE,
+ /* FILL ME */
};
+/* The PadFactory structures describe what pads the element has or
+ * can have. They can be quite complex, but for this example plugin
+ * they are rather simple.
+ */
static GstPadFactory sink_factory = {
- "sink", /* the name of the pads */
- GST_PAD_FACTORY_SINK, /* type of the pad */
- GST_PAD_FACTORY_ALWAYS, /* ALWAYS/SOMETIMES */
- GST_PAD_FACTORY_CAPS(
- "example_sink", /* the name of the caps */
- "unknown/unknown", /* the mime type of the caps */
- "something", GST_PROPS_INT (1), /* a property */
- "foo", GST_PROPS_BOOLEAN (TRUE) /* another property */
+ "sink", /* The name of the pad */
+ GST_PAD_FACTORY_SINK, /* Direction of the pad */
+ GST_PAD_FACTORY_ALWAYS, /* The pad exists for every instance */
+ GST_PAD_FACTORY_CAPS( /* This factory has specific capabilities */
+ "example_sink", /* The name of the caps */
+ "unknown/unknown", /* The overall MIME/type */
+ "foo", GST_PROPS_INT (1), /* An integer property */
+ "bar", GST_PROPS_BOOLEAN (TRUE), /* A boolean */
+ "baz", GST_PROPS_LIST ( /* A list of values for */
+ GST_PROPS_INT (1),
+ GST_PROPS_INT (3)
+ )
),
- NULL
+ NULL /* All factories must be NULL-terminated */
};
+/* This factory is much simpler, and defines the source pad. */
static GstPadFactory src_factory = {
"src",
GST_PAD_FACTORY_SRC,
@@ -65,19 +87,35 @@ static GstPadFactory src_factory = {
};
-static void gst_example_class_init (GstExampleClass *klass);
-static void gst_example_init (GstExample *example);
+/* A number of functon prototypes are given so we can refer to them later. */
+static void gst_example_class_init (GstExampleClass *klass);
+static void gst_example_init (GstExample *example);
-static void gst_example_chain (GstPad *pad, GstBuffer *buf);
+static void gst_example_chain (GstPad *pad, GstBuffer *buf);
-static void gst_example_set_arg (GtkObject *object,GtkArg *arg,guint id);
-static void gst_example_get_arg (GtkObject *object,GtkArg *arg,guint id);
+static void gst_example_set_arg (GtkObject *object,GtkArg *arg,guint id);
+static void gst_example_get_arg (GtkObject *object,GtkArg *arg,guint id);
-GstPadTemplate *src_template, *sink_template;
+/* These hold the constructed pad templates, which are created during
+ * plugin load, and used during element instantiation.
+ */
+static GstPadTemplate *src_template, *sink_template;
+/* The parent class pointer needs to be kept around for some object
+ * operations.
+ */
static GstElementClass *parent_class = NULL;
-//static guint gst_example_signals[LAST_SIGNAL] = { 0 };
+/* This array holds the ids of the signals registered for this object.
+ * The array indexes are based on the enum up above.
+ */
+static guint gst_example_signals[LAST_SIGNAL] = { 0 };
+
+/* This function is used to register and subsequently return the type
+ * identifier for this object class. On first invocation, it will
+ * register the type, providing the name of the class, struct sizes,
+ * and pointers to the various functions that define the class.
+ */
GtkType
gst_example_get_type(void)
{
@@ -90,8 +128,8 @@ gst_example_get_type(void)
sizeof(GstExampleClass),
(GtkClassInitFunc)gst_example_class_init,
(GtkObjectInitFunc)gst_example_init,
- (GtkArgSetFunc)gst_example_set_arg,
- (GtkArgGetFunc)gst_example_get_arg,
+ (GtkArgSetFunc)NULL, /* These last three are depracated */
+ (GtkArgGetFunc)NULL,
(GtkClassInitFunc)NULL,
};
example_type = gtk_type_unique(GST_TYPE_ELEMENT,&example_info);
@@ -99,70 +137,166 @@ gst_example_get_type(void)
return example_type;
}
+/* In order to create an instance of an object, the class must be
+ * initialized by this function. GtkObject will take care of running
+ * it, based on the pointer to the function provided above.
+ */
static void
gst_example_class_init (GstExampleClass *klass)
{
+ /* Class pointers are needed to supply pointers to the private
+ * implementations of parent class methods.
+ */
GtkObjectClass *gtkobject_class;
GstElementClass *gstelement_class;
+ /* Since the example class contains the parent classes, you can simply
+ * cast the pointer to get access to the parent classes.
+ */
gtkobject_class = (GtkObjectClass*)klass;
gstelement_class = (GstElementClass*)klass;
+ /* The parent class is needed for class method overrides. */
parent_class = gtk_type_class(GST_TYPE_ELEMENT);
+ /* Here we add an argument to the object. This argument is an integer,
+ * and can be both read and written.
+ */
gtk_object_add_arg_type("GstExample::active", GTK_TYPE_INT,
GTK_ARG_READWRITE, ARG_ACTIVE);
+ /* Here we add a signal to the object. This is avery useless signal
+ * called asdf. The signal will also pass a pointer to the listeners
+ * which happens to be the example element itself */
+ gst_example_signals[ASDF] =
+ gtk_signal_new("asdf", GTK_RUN_LAST, gtkobject_class->type,
+ GTK_SIGNAL_OFFSET (GstExampleClass, asdf),
+ gtk_marshal_NONE__POINTER, GTK_TYPE_NONE, 1,
+ GST_TYPE_EXAMPLE);
+
+ gtk_object_class_add_signals (gtkobject_class, gst_example_signals,
+ LAST_SIGNAL);
+
+ /* The last thing is to provide the functions that implement get and set
+ * of arguments.
+ */
gtkobject_class->set_arg = gst_example_set_arg;
gtkobject_class->get_arg = gst_example_get_arg;
}
+/* This function is responsible for initializing a specific instance of
+ * the plugin.
+ */
static void
gst_example_init(GstExample *example)
{
+ /* First we create the sink pad, which is the input to the element.
+ * We will use the sink_template constructed in the plugin_init function
+ * (below) to quickly generate the pad we need.
+ */
example->sinkpad = gst_pad_new_from_template (sink_template, "sink");
- gst_element_add_pad(GST_ELEMENT(example),example->sinkpad);
+ /* Setting the chain function allows us to supply the function that will
+ * actually be performing the work. Without this, the element would do
+ * nothing, with undefined results (assertion failures and such).
+ */
gst_pad_set_chain_function(example->sinkpad,gst_example_chain);
+ /* We then must add this pad to the element's list of pads. The base
+ * element class manages the list of pads, and provides accessors to it.
+ */
+ gst_element_add_pad(GST_ELEMENT(example),example->sinkpad);
+ /* The src pad, the output of the element, is created and registered
+ * in the same way, with the exception of the chain function. Source
+ * pads don't have chain functions, because they can't accept buffers,
+ * they only produce them.
+ */
example->srcpad = gst_pad_new_from_template (src_template, "src");
gst_element_add_pad(GST_ELEMENT(example),example->srcpad);
+ /* Initialization of element's private variables. */
example->active = FALSE;
}
+/* The chain function is the heart of the element. It's where all the
+ * work is done. It is passed a pointer to the pad in question, as well
+ * as the buffer provided by the peer element.
+ */
static void
gst_example_chain (GstPad *pad, GstBuffer *buf)
{
GstExample *example;
+ GstBuffer *outbuf;
+ /* Some of these checks are of dubious value, since if there were not
+ * already true, the chain function would never be called.
+ */
g_return_if_fail(pad != NULL);
g_return_if_fail(GST_IS_PAD(pad));
g_return_if_fail(buf != NULL);
- //g_return_if_fail(GST_IS_BUFFER(buf));
+ /* We need to get a pointer to the element this pad belogs to. */
example = GST_EXAMPLE(gst_pad_get_parent (pad));
+ /* A few more sanity checks to make sure that the element that owns
+ * this pad is the right kind of element, in case something got confused.
+ */
g_return_if_fail(example != NULL);
g_return_if_fail(GST_IS_EXAMPLE(example));
+ /* If we are supposed to be doing something, here's where it happens. */
if (example->active) {
- /* DO STUFF */
- }
+ /* In this example we're going to copy the buffer to another one,
+ * so we need to allocate a new buffer first. */
+ outbuf = gst_buffer_new();
+
+ /* We need to copy the size and offset of the buffer at a minimum. */
+ GST_BUFFER_SIZE (outbuf) = GST_BUFFER_SIZE (buf);
+ GST_BUFFER_OFFSET (outbuf) = GST_BUFFER_OFFSET (buf);
+
+ /* Then allocate the memory for the new buffer */
+ GST_BUFFER_DATA (outbuf) = (guchar *)g_malloc (GST_BUFFER_SIZE (outbuf));
+
+ /* Then copy the data in the incoming buffer into the new buffer. */
+ memcpy (GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (outbuf));
+
+ /* When we're done with the buffer, we push it on to the next element
+ * in the pipeline, through the element's source pad, which is stored
+ * in the element's structure.
+ */
+ gst_pad_push(example->srcpad,outbuf);
- gst_pad_push(example->srcpad,buf);
+ /* For fun we'll emit our useless signal here */
+ gtk_signal_emit (GTK_OBJECT (example), gst_example_signals[ASDF],
+ example);
+
+ /* If we're not doing something, just send the original incoming buffer. */
+ } else {
+ gst_pad_push(example->srcpad,buf);
+ }
}
+/* Arguments are part of the Gtk+ object system, and these functions
+ * enable the element to respond to various arguments.
+ */
static void
gst_example_set_arg (GtkObject *object,GtkArg *arg,guint id)
{
GstExample *example;
- /* it's not null if we got it, but it might not be ours */
+ /* It's not null if we got it, but it might not be ours */
g_return_if_fail(GST_IS_EXAMPLE(object));
+
+ /* Get a pointer of the right type. */
example = GST_EXAMPLE(object);
- switch(id) {
+ /* Check the argument id to see which argument we're setting. */
+ switch (id) {
case ARG_ACTIVE:
+ /* Here we simply copy the value of the argument to our private
+ * storage. More complex operations can be done, but beware that
+ * they may occur at any time, possibly even while your chain function
+ * is running, if you are using threads.
+ */
example->active = GTK_VALUE_INT(*arg);
g_print("example: set active to %d\n",example->active);
break;
@@ -171,12 +305,13 @@ gst_example_set_arg (GtkObject *object,GtkArg *arg,guint id)
}
}
+/* The set function is simply the inverse of the get fuction. */
static void
gst_example_get_arg (GtkObject *object,GtkArg *arg,guint id)
{
GstExample *example;
- /* it's not null if we got it, but it might not be ours */
+ /* It's not null if we got it, but it might not be ours */
g_return_if_fail(GST_IS_EXAMPLE(object));
example = GST_EXAMPLE(object);
@@ -190,25 +325,45 @@ gst_example_get_arg (GtkObject *object,GtkArg *arg,guint id)
}
}
+/* This is the entry into the plugin itself. When the plugin loads,
+ * this function is called to register everything that the plugin provides.
+ */
GstPlugin*
plugin_init (GModule *module)
{
GstPlugin *plugin;
GstElementFactory *factory;
+ /* First we try to create a new Plugin structure. */
plugin = gst_plugin_new("example");
+ /* If we get a NULL back, chances are we're already loaded. */
g_return_val_if_fail(plugin != NULL, NULL);
+ /* We need to create an ElementFactory for each element we provide.
+ * This consists of the name of the element, the GtkType identifier,
+ * and a pointer to the details structure at the top of the file.
+ */
factory = gst_elementfactory_new("example", GST_TYPE_EXAMPLE, &example_details);
g_return_val_if_fail(factory != NULL, NULL);
+ /* The pad templates can be easily generated from the factories above,
+ * and then added to the list of padtemplates for the elementfactory.
+ * Note that the generated padtemplates are stored in static global
+ * variables, for the gst_example_init function to use later on.
+ */
sink_template = gst_padtemplate_new (&sink_factory);
gst_elementfactory_add_padtemplate (factory, sink_template);
src_template = gst_padtemplate_new (&src_factory);
gst_elementfactory_add_padtemplate (factory, src_template);
+ /* The very last thing is to register the elementfactory with the plugin. */
gst_plugin_add_factory (plugin, factory);
+ /* Now we can return the pointer to the newly created Plugin object. */
return plugin;
+
+ /* At this point, the GStreamer core registers the plugin, its
+ * elementfactories, padtemplates, etc., for use in you application.
+ */
}
diff --git a/tests/old/examples/plugins/example.h b/tests/old/examples/plugins/example.h
index d7f19a3f99..840b8a3d18 100644
--- a/tests/old/examples/plugins/example.h
+++ b/tests/old/examples/plugins/example.h
@@ -28,36 +28,61 @@ extern "C" {
#endif /* __cplusplus */
-/* Definition of structure storing data for this element. */
+/* This is the definition of the element's object structure. */
typedef struct _GstExample GstExample;
+/* The structure itself is derived from GstElement, as can be seen by the
+ * fact that there's a complete instance of the GstElement structure at
+ * the beginning of the object. This allows the element to be cast to
+ * an Element or even an Object.
+ */
struct _GstExample {
GstElement element;
+ /* We need to keep track of our pads, so we do so here. */
GstPad *sinkpad,*srcpad;
- gint8 active;
+ /* We'll use this to decide whether to do anything to the data we get. */
+ gboolean active;
};
-/* Standard definition defining a class for this element. */
+/* The other half of the object is its class. The class also derives from
+ * the same parent, though it must be the class structure this time.
+ * Function pointers for polymophic methods and signals are placed in this
+ * structure. */
typedef struct _GstExampleClass GstExampleClass;
+
struct _GstExampleClass {
GstElementClass parent_class;
+
+ /* signals */
+ void (*asdf) (GstElement *element, GstExample *example);
};
-/* Standard macros for defining types for this element. */
+/* Five standard preprocessing macros are used in the Gtk+ object system.
+ * The first uses the object's _get_type function to return the GtkType
+ * of the object.
+ */
#define GST_TYPE_EXAMPLE \
(gst_example_get_type())
+/* The second is a checking cast to the correct type. If the object passed
+ * is not the right type, a warning will be generated on stderr.
+ */
#define GST_EXAMPLE(obj) \
(GTK_CHECK_CAST((obj),GST_TYPE_EXAMPLE,GstExample))
+/* The third is a checking cast of the class instead of the object. */
#define GST_EXAMPLE_CLASS(klass) \
(GTK_CHECK_CLASS_CAST((klass),GST_TYPE_EXAMPLE,GstExample))
+/* The last two simply check to see if the passed pointer is an object or
+ * class of the correct type. */
#define GST_IS_EXAMPLE(obj) \
(GTK_CHECK_TYPE((obj),GST_TYPE_EXAMPLE))
#define GST_IS_EXAMPLE_CLASS(obj) \
(GTK_CHECK_CLASS_TYPE((klass),GST_TYPE_EXAMPLE))
-/* Standard function returning type information. */
+/* This is the only prototype needed, because it is used in the above
+ * GST_TYPE_EXAMPLE macro.
+ */
GtkType gst_example_get_type(void);
diff --git a/tools/README b/tools/README
index 5d9ffe8fae..71d730c53e 100644
--- a/tools/README
+++ b/tools/README
@@ -1,5 +1,5 @@
-launch
-======
+gstreamer-launch
+================
This is a tool that will construct pipelines based on a command-line
syntax. The syntax is rather complex to enable all the features I want it