diff options
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->data); - g_print ("element in bin: %s\n", gst_element_get_name (element)); + g_print ("element in bin: %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 %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(&argc, &argv); if (argc != 2) { - g_print ("usage: %s <filename>n", argv[0]); + g_print ("usage: %s <filename>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 <filename>\n", argv[0]); + g_print ("usage: %s <filename>\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->data); - g_print ("pad name %s\n", gst_pad_get_name (pad)); + g_print ("pad name %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 %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 %s\n", gst_pad_get_name (pad)); while (caps) { GstCaps *cap = (GstCaps *) caps->data; - g_print (" Capability name %s, MIME type\n", gst_caps_get_name (cap), + g_print (" Capability name %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->data; - g_print ("plugin: %s\n", gst_plugin_get_name (plugin)); + g_print ("plugin: %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 (&argc,&argv); if (argc != 2) { - g_print ("usage: %s <filename>\n", argv[0]); + g_print ("usage: %s <filename>\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 >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 <filename>\n", argv[0]); + g_print ("usage: %s <filename>\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(&argc,&argv); if (argc != 2) { - g_print("usage: %s <filename>\n", argv[0]); + g_print("usage: %s <filename>\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 (&argc,&argv); if (argc != 2) { - g_print ("usage: %s <filename>\n", argv[0]); + g_print ("usage: %s <filename>\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 <stdlib.h> #include <gst/gst.h> -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 (&argc, &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> + ... + <gst:element> + <gst:name>thread</gst:name> + <gst:type>thread</gst:type> + <gst:version>0.1.0</gst:version> + ... + </gst:children> + <test:comment> + <test:text>decoder thread</test:text> + </test:comment> + </gst:element> + ... + </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->xmlChildrenNode; + + while (children) { + if (!strcmp (children->name, "comment")) { + xmlNodePtr nodes = children->xmlChildrenNode; + + while (nodes) { + if (!strcmp (nodes->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->next; + } + } + children = children->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 }, @@ -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)); } @@ -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 |