Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/GStreamer/gstreamer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2001-03-02 01:36:26 +0300
committerWim Taymans <wim.taymans@gmail.com>2001-03-02 01:36:26 +0300
commit90ac5da6d6fe07dc902502cfed96a779b1717e23 (patch)
tree8744445209d6438a7be507e3c9bbfcbb3f76f993
parent81197b7c0663cf731a4b270fcae7b08e76f2572d (diff)
Merge with the main trunk.BRANCH-AUTOPLUG2-20010301
Original commit message from CVS: Merge with the main trunk. GstPlay needed some changes for the dynamic pads in the avidecoder since the new autoplugger doesn't know about the outher elements. The next version of the autoplugger will also handle the audfio/videosink connections and will do a complete end-to-end autoplugging.
-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